Overview

This document defines the Application Programming Interface (API) for the EZPayNow, LLC website. This document explains how to send transactions to EZPayNow, LLC to be processed by your website. A response message will be sent back with the result of the transaction. You should be familiar with the basics of HTML, PHP, and other web and Internet interfaces and protocols.

Real-Time Transaction Processing

EZPayNow, LLC Customer Relationship Management "CRM" payment gateway is more than just a processing platform. Integrated into EZPayNow, LLC CRM is a complete Real-Time transaction reporting system that allows you to see all transactions that are being processed. You can run and download any report to your desktop. You can view and edit your customer's information, see your weekly Settlement Statements, modify your merchant profile, and assign your employees accounts to have a limited access account for their data entry purposes. The EZPayNow, LLC CRM is supported with a complete Application Programming Interface, "API", so you can easily integrate your website to have complete access to all transactional information.

Process Flow

Below you will find the general process flow for transactions processed through the EZPayNow, LLC website. EZPayNow, LLC is a real-time transaction processor and therefore the process flow shown below happens almost instantaneously.

Merchant Services EZPayNow, LLC Website Bank Website
Merchant Notification EZPayNow, LLC Hidden Post

Document Conventions

This document uses the following conventions:
• The monospace font is used for example code and code listings, file names, commands, path names, directory names, Hypertext Markup Language (HTML) tags, and any text that must be typed on the screen.
• The italic font is used in code to represent placeholder parameters (variables) that should be replaced with an actual value, or items that require emphasis.
• Brackets ([]) are used to enclose optional parameters.
• A slash (/) is used to separate directories in a path and to indicate a blank or closing parameter.

Notation

Notation Description
A Alphabetic A-Z, a-z
N Numeric Digits, 0-9
AN Alphanumeric Characters
AS Alphabetic and Special Characters
ANS Alphanumeric and Special Characters
DEC(12,2) Decimal number up to 12 digits with 2 decimal points
DD Day, 01 through 31
MM Month, 01 to 12
YY Year, 00-99 where 00=2000, 01=2001, etc.
HH Hour, 00 to 23
MM Minute, 00 to 59
SS Second, 00 to 59
3 Fixed length of 3 characters
..17 Variable length up to a maximum of 17 characters
C Collection of Elements

Required Fields

Notation Description
Y Field is Always Mandatory
Y-CC Field is Always Mandatory for Credit Card Transactions ONLY
Y-CK Field is Always Mandatory for Check Transactions Only
N Field is Optional

Methods & Modes

This Article explains the Method and Modes in which your website can communicate with EZPayNow, LLC.

Payment Methods

The following are the definitions for the valid payment methods acceptable for transaction method requests:

Method Description
Credit Card Transaction is a Credit Card transaction. This Paymethod requires a valid credit card number, CVV number, and expiration date. *Not required on hosted payment solutions.
Check The Transaction is a Check transaction. This Paymethod requires a valid checking account number, bank routing number, and check number.

Post To the Gateway URL

To send an SSL Secure POST to the gateway, the following URL is the address for the POST:

https://backoffice.ezpaynow.biz/api/transact.php

Post Methods

The default method for the gateway is "Asynchronous" exchanges. In that method transactions are POSTed (sent) the gateway, the gateway processes the transaction, and a response is sent to a specified "Redirect URL". The returned parameters are sent via HTML POST method. In some cases this method is not the preferred method. By setting the POST method to "Synchronous" the browser will "wait" for the response before continuing on. This has the downside that if something goes wrong on the POST the page may hang indefinitely. The returned parameter are output via HTML print to the browser.

Method Description
Async The gateway will redirect the transaction result to the Redirect URL specified in the POST.
Sync The gateway will Return the transaction result to the page that initiated the POST. The Redirect URL is used only in the case of Fatal errors or other system errors.

Processing Modes

The following are the definitions for the valid Processing Modes acceptable for transaction method requests:

Processing Modes Description
pending A pending is used for transactions that are not submitted to the bank in real-time. Typically this applies to banks that process cards in "Batch" mode or for checks. In this case the transaction, should it syntactically be correct is approved as "Pending". The transaction will later be submitted to the bank for actual processing and will either be approved or declined by the bank at that time.
authorize An authorization "Pre-Authorization" is no guarantee of payment. It only confirms that the card exists and that funds are available at the time of Authorization to cover a purchase amount. The funds are not credited at this time however the Pre-Authorization reduces the available credit limit for that card, so in a sense the funds are reserved for the purchase.
sale A sale request both authorizes and settles the requested amount against the card or check indicated.
settlement For a capture Pre-Authorization request, a valid Transaction Number from a former Pre- Authorization request is required. The amount settled may be less than the amount authorized. The amount remaining on the authorization is available for further captures as long as the authorization period does not expire.
void For a void Pre-Authorization request, a valid Transaction Number from a former Pre- Authorization request is required. The amount to be voided must be the exact amount of the Pre- Authorization amount. Preauthorized transactions will normally expire within 10 to 30 days depending on the issuing bank. Voiding a Preauthorized transaction releases the authorized amount to the cardholder's card applied against their credit limit.
refund To post a refund request, a valid Transaction Number from a former Capture or Purchase (sale) transaction is required. It is only possible to credit an amount less than or equal to the initial transaction using the same currency as with the original transaction. A Refund is listed separately on the cardholder's card statement.
gateway_status To post a gateway_status request, a valid paymethod and card_type are required. The gateway will respond as to whether or not the gateway associated with the specified paymethod is active. If it is offline or there is a connection problem an error will be returned.
tracking_update To post a tracking_update request, a valid Transaction Number for a previously submitted transaction is required. You must also include the tracking number, carrier, and the shipping status must be set to "Shipped".
transaction_status To post a transaction_status request, a valid Transaction Number for a previously submitted transaction is required. The gateway will respond with the "status" of that transaction that was originally returned when the transaction was initially processed.
transaction_settled To post a transaction_settled request, a valid Transaction Number for a previously submitted transaction is required. The gateway will respond with the "settle status" of that transaction that was originally returned when the transaction was initially processed.

3D Secure Processing

Overview

In early 2001, VISA introduced a security protocol called 3-D Secure to improve transaction performance online and to accelerate the growth of electronic commerce through increased consumer confidence. The overriding objective of 3-D Secure is to provide Issuers with the ability to actually authenticate cardholders during an online purchase in order to reduce the likelihood of fraudulent usage of payment cards and to improve transaction performance to benefit merchants, consumers and acquirers. VISA's branded 3-D secure program is commonly known as 'Verified By VISA'. MasterCard soon followed suit and introduced their payer authentication program called SecureCode™.

To insure the ultimate security for your cardholders Issuing Bank's supports both 3-D and Non-3-D credit card processing. Not all issuing banks have 3-D cards. Often times corporate debit cards are not 3-D. In other cases cardholders who have 3-D cards have not registered or do not want to register their cards. In this Addendum you will see references to 3-D secure processing.

Please contact our Technical department for specific 3-D secure API's.

Posting Transactions

Posting Overview

EZPayNow, LLC is an SSL Secure site so the prefix of https:// is required in the POST URL to the gateway. If this is a 3-D transaction the merchant must send a POST with either "sale" or "authorize" as the "processing_mode". If this is an eCheck transaction the Post Method must be set to "Check". Otherwise the post method parameter value should be set to, "Credit Card" .If the merchant wishes to receive a notification (i.e. acknowledgement) that the transaction was successfully received then the notification URL must be set. A server-to- server POST will be sent to the merchant's site before the redirection to the Issuing Bank's site so that the merchant will know that EZPayNow, LLC has successfully received the transaction.

Once a valid POST is received by the EZPayNow, LLC gateway, the user is redirected to the Issuing Bank's site to complete the transaction. This will require the user to enter their card information. If the card is a 3-D secure card user will also be required to authenticate their identity with a personal PIN or may be asked to register their card if the cardholder's issuing bank is registered with the Visa or MasterCard Directory Server and they have not already registered their card.

Once the user completes the transaction, the Issuing Bank's site will return control to the EZPayNow, LLC site with the transaction result. EZPayNow, LLC will record the transaction result and then POST the transaction information and result to the Redirect URL provided by the merchant in the initial POST. If the Notification URL was set then a Server-to-Server POST will also be sent to the Notification URL.

POST "AUTHORIZE OR SALE"

Authorize and Sale Messages are sent to the Gateway POST URL with the following fields contained in the message. The gateway uses the standard HTML POST method to retrieve the message and to process the message request. The following are the fields that the gateway sends to your web site:

To insure the integrity and security of your postings, EZPayNow, LLC uses MD5 Hash encryption. MD5 is an industry standard method for encrypting data and requires the two parties to agree on a formula using a secret "Hash Key". The hash key is defined in the Room Profile.. The following data points are use to encrypt its transactions: "order_id:affililate:amount:hash_key" (note: Includes colons ":").

Here is an example:
Hash String: 012345FWM-1:FASTDemo:125.00:My_Hash_Key Hash Result: 74f56bc098cdc4688dcf1e5b75ffa252

Request Message Format

Field Name Type/Length Required Description
affiliate AN..20 Y Assigned Affiliate ID
paymethod AN..32 Y Payment method for this transaction (Credit Card or Check)
post_method AN..32 N Post method for this transaction (async or sync). Asynchronous (async) is the default.
processing_mode AN..32 Y The transaction type for this transaction: authorize or sale
redirect ANS..50 Y The return URL for the Response Message on a successful.
notification_url ANS..50 N The URL for a Server-to-Server POST response to be sent.
order_id AN..32 Y Affiliate Assigned Identifier for tracking transactions by the Affiliate's order processing system.
terminal_name N..12 Y This is the Terminal ID assigned to the website
customer_id N..12 N The gateway generated Customer ID. If Customer ID field is empty the gateway will assign an ID to this customer for use in future transactions.
first_name AN..32 Y Cardholder's first name
last_name AN..32 Y Cardholder's last name
address1 AN..32 Y Cardholder's billing address for their card
address2 AN..32 N Cardholder's billing address for their card
city AN..32 Y Cardholder's billing city for their card
state AN..32 Y Cardholder's billing state for their card
country AN..32 Y Cardholder's billing country for their card
zip AN..15 Y Cardholder's billing zip code for their card
telephone AN..32 Y Cardholder's phone number
shipping_address1 AN..32 N Cardholder's shipping address1
shipping_address2 AN..32 N Cardholder's shipping address2
shipping_city AN..32 N Cardholder's shipping city
shipping_state AN..32 N Cardholder's shipping state
shipping_country AN..32 N Cardholder's shipping country
shipping_zip AN..15 N Cardholder's shipping zip code
amount DEC(12,2) Y Amount to be charged in currency format with dollar sign and commas removed.
currency AN..50 Y Currency to be used in the transaction
email AN..50 Y Cardholder's email address
card_type A..16 Y-CC Card type: Visa, MasterCard, Amex, Discover, LiveKash, CUP.
card_number N..20 Y-CC Credit Card number (up to 20 characters, no spaces or special characters)
cvv N..4 Y-CC CVV2 (for AMEX this is 4 characters)
expiry_mo N..2 Y-CC Expiration Month with leading 0's
expiry_yr N..4 Y-CC Expiration Year (eg. 2010)
check_number N..12 Y-CK Unique Check Number
routing_number N..9 Y-CK 9 digit Routing (ABA) number for bank
account_number N..32 Y-CK Checking Account Number
bank_name N..50 Y-CK Bank Name
bank_phone N..32 Y-CK Bank Phone Number
customer_ip NS..32 N Internet IP address where customer initiated the transaction. NOTE: This parameter MAY be required by the bank.
product_id ANS..12 N Unique Product Identifier
product_description ANS..32 N Product name and description

RESPONSE "AUTHORIZE OR SALE"

The following are the fields that the gateway POSTs back to your web site (redirect):

RESPONSE MESSAGE

Field Name Type/Length Description
affiliate AN..20 The gateway Assigned Affiliate ID.
terminal_name AN..20 This is the Terminal ID assigned to the website.
transaction_no AN..32 The unique number assigned by The gateway.
approval_no AN..32 The unique number assigned by the processing bank for approved transactions
status AN..50 Transaction result; APPROVED, DECLINED, FAILED, AUTHORIZED, CAPTURED, REFUNDED, VOIDED
reason AN..200 Messages returned by the bank. Error messages of why the transaction was not processed successfully.
status_description AN..200 Additional message returned by the gateway.
order_id AN..32 A unique identifier that is assigned by the Affiliate to this transaction
amount DEC(12,2) Amount charged in decimal format with dollar sign and commas removed.
currency AN..6 Currency to be used in the transaction
transaction_memo AN..50 Merchant provided memo for the transaction.
customer_id N..12 The unique Customer ID.
first_name AN..32 Cardholder's first name.
last_name AN..32 Cardholder's last name.
email AN..50 Cardholder's email address
telephone AN..32 Cardholder's telephone number
address1 AN..32 Cardholder's billing address
city AN..32 Cardholder's billing city
state AN..32 Cardholder's billing address
zip AN..15 Cardholder's billing zip
country AN..32 Cardholder's billing country
product_description ANS..32 Product name and description
gateway_descriptor AN..32 Bank's billing descriptor to appear on cardholder's statement.
redirect ANS..50 The return URL for the Response Message on a successful.
hash_value AN..32 A lowercase MD5 hash of order_id:affiliate:amount:currecy:hash

POSTS "REFUND, VOID & SETTLE"

The following fields contained in the message. The gateway uses the standard HTML POST method to retrieve the message and to process the message request. The following are the fields that the gateway sends to your web site:

REQUEST MESSAGE FORMAT

Field Name Type/Length Required Description
affiliate AN..20 Y Assigned Affiliate ID
paymethod AN..32 Y Payment method for this transaction (Credit Card or Check)
processing_mode AN..32 Y The transaction type for this transaction: refund_request, void, settlement
redirect ANS..50 Y The return URL for the Response Message on a successful.
terminal_name AN..20 Y This is the Terminal ID assigned to the website
amount DEC(12,2) Y Amount to be charged in currency format with dollar sign and commas removed.
currency AN..50 Y Currency to be used in the transaction
reference_ transaction_no ANS..32 Y The gateway generated unique transaction number for the transaction being refunded or captured. This field is required if the Order ID Field is not used.
transaction_memo ANS..50 N Merchant provided memo for the transaction.
product_description ANS..32 N Product name and description

RESPONSE "REFUND, VOID & SETTLE"

The following are the fields that the gateway sends to your web site:

RESPONSE MESSAGE

Field Name Type/Length Description
affiliate AN..20 The gateway Assigned Affiliate ID.
terminal_name AN..20 This is the Terminal ID assigned to the website.
transaction_no AN..32 The unique number assigned by The gateway.
approval_no AN..32 The unique number assigned by the processing bank for approved transactions
status AN..50 Transaction result; APPROVED, DECLINED, FAILED, AUTHORIZED, CAPTURED, REFUNDED, VOIDED
reason AN..200 Messages returned by the bank. Error messages of why the transaction was not processed successfully.
status_description AN..200 Additional message returned by the gateway.
order_id AN..32 A unique identifier that is assigned by the Affiliate to this transaction
amount DEC(12,2) Amount charged in decimal format with dollar sign and commas removed.
currency AN..6 Currency to be used in the transaction
transaction_memo AN..50 Merchant provided memo for the transaction.
product_description ANS..32 Product Name and Description

POST "RECURRING SALE"

The following fields contained in the message. The gateway uses the standard HTML POST method to retrieve the message and to process the message request. The following are the fields that the gateway sends to your web site:

REQUEST MESSAGE FORMAT

Field Name Type/Length Required Description
affiliate AN..20 Y Assigned Affiliate ID
terminal_name AN..20 Y This is the Terminal ID assigned to the website
paymethod AN..32 Y Payment method for this transaction
processing_mode AN..32 Y The transaction type for this transaction: refund_request, recurring_sale,void,settlement
redirect ANS..50 Y The return URL for the Response Message on a successful.
notification_url ANS..50 Y The URL for a Server-to- Server POST response to be sent.
order_id AN..32 Y Affiliate Assigned Identifier for tracking transactions by the Affiliate's order processing system.
customer_id N..12 Y The gateway generated Customer ID.
amount DEC(12,2) Y Amount to be charged in currency format with dollar sign and commas removed.
currency AN..50 Y Currency to be used in the transaction
reference_ transaction_no ANS..32 Y The gateway generated unique transaction number for the transaction being refunded or captured. This field is required if the Order ID Field is not used.
product_id ANS..12 N Unique Product Identifier
product_description ANS..32 N Product name and description

RESPONSE "RECURRING SALE"

The following are the fields that the gateway sends to your web site:

RESPONSE MESSAGE

Field Name Type/Length Description
affiliate AN..20 The gateway Assigned Affiliate ID.
terminal_name AN..20 This is the Terminal ID assigned to the website.
transaction_no AN..32 The unique number assigned by The gateway.
approval_no AN..32 The unique number assigned by the processing bank for approved transactions
status AN..50 Transaction result; APPROVED, DECLINED, FAILED, AUTHORIZED, CAPTURED, REFUNDED, VOIDED
reason AN..200 Messages returned by the bank. Error messages of why the transaction was not processed successfully.
status_description AN..200 Additional message returned by the gateway.
customer_id N..12 The gateway generated Customer ID.
order_id AN..32 A unique identifier that is assigned by the Affiliate to this transaction
amount DEC(12,2) Amount charged in decimal format with dollar sign and commas removed.
currency AN..6 Currency to be used in the transaction
transaction_memo AN..50 Merchant provided memo for the transaction.
product_description ANS..32 Product Name and Description

POST "CREDITS"

The following fields contained in the message. The gateway uses the standard HTML POST method to retrieve the message and to process the message request. The following are the fields that the gateway sends to your web site:

REQUEST MESSAGE FORMAT

Field Name Type/Length Required Description
affiliate AN..20 Y Assigned Affiliate ID
terminal_name AN..20 Y This is the Terminal ID assigned to the website
paymethod AN..32 Y Payment method for this transaction
processing_mode AN..32 Y The transaction type for this transaction: credit
redirect ANS..50 Y The return URL for the Response Message on a successful.
currency AN..50 Y Currency to be used in the transaction
amount DEC(12,2) Y Amount to be charged in currency format with dollar sign and commas removed.
order_id AN..32 Y Affiliate Assigned Identifier for tracking transactions by the Affiliate's order processing system.
account_number AN..50 Y The account number of the customers bank account.
bank_name ANS..50 Y The bank to be credited, A list of acceptable banks can be found here: Bank Codes. Posting the bank name or its respective code found in the previous hyperlink are acceptable values.
bank_address ANS..50 Y The address of the bank to be credited
bank_city ANS..50 Y / N The city of the bank to be credited. Requirement is dependant on the processing bank.
bank_province ANS..50 Y / N The province of the bank to be credited. Requirement is dependant on the processing bank.
first_name AN..32 Y Cardholder's first name
last_name AN..32 Y Cardholder's last name
email AN..50 Y Cardholder's email address
address1 AN..32 Y Cardholder's billing address for their card
city AN..32 Y Cardholder's billing city for their card
state AN..32 Y Cardholder's billing state for their card
country AN..32 Y Cardholder's billing country for their card
zip AN..15 Y Cardholder's billing zip code for their card
telephone AN..32 Y Cardholder's phone number
transaction_memo ANS..50 N Merchant provided memo for the transaction.
product_description ANS..32 N Product name and description

RESPONSE "CREDITS"

The following fields contained in the message. The gateway uses the standard HTML POST method to retrieve the message and to process the message request. The following are the fields that the gateway sends to your web site:

RESPONSE MESSAGE FORMAT

Field Name Type/Length Description
affiliate AN..20 The gateway Assigned Affiliate ID.
terminal_name AN..20 This is the Terminal ID assigned to the website.
transaction_no AN..32 The unique number assigned by The gateway.
approval_no AN..32 The unique number assigned by the processing bank for approved transactions
status AN..50 Transaction result; CREDITED, DECLINED, FAILED, PENDING
reason AN..200 Messages returned by the bank. Error messages of why the transaction was not processed successfully.
status_description AN..200 Additional message returned by the gateway.
order_id AN..32 A unique identifier that is assigned by the Affiliate to this transaction
amount DEC(12,2) Amount charged in decimal format with dollar sign and commas removed.
currency AN..6 Currency to be used in the transaction
transaction_memo AN..50 Merchant provided memo for the transaction.
product_description ANS..32 Product Name and Description

POST "TRANSACTION STATUS"

Messages are sent to the Gateway POST URL with the following fields contained in the message. The gateway uses the standard HTML POST method to retrieve the message and to process the message request. The following are the fields that the gateway sends to your web site:

REQUEST MESSAGE FORMAT

Field Name Type/Length Required Description
affiliate AN..20 Y Assigned Affiliate ID
terminal_name AN..20 Y This is the Terminal ID assigned to the website.
processing_mode AN..32 Y The transaction type for this transaction: transaction_status
redirect ANS..50 Y The return URL for the Response Message on a successful.
reference_ transaction_no ANS..32 Y The gateway generated unique transaction number for the transaction for which the status is being requested.

RESPONSE "TRANSACTION STATUS"

The following are the fields that the gateway sends to your web site:

RESPONSE MESSAGE

Field Name Type/Length Description
affiliate AN..20 The gateway Assigned Affiliate ID.
terminal_name AN..20 This is the Terminal ID assigned to the website.
transaction_no AN..32 The unique number assigned by The gateway.
approval_no AN..32 The unique number assigned by the processing bank for approved transactions
status AN..50 Transaction result; APPROVED, DECLINED, FAILED, AUTHORIZED, CAPTURED, REFUNDED, VOIDED
reason AN..200 Messages returned by the bank. Error messages of why the transaction was not processed successfully.
status_description AN..200 Additional message returned by the gateway.
order_id AN..32 A unique identifier that is assigned by the Merchants to a transaction.
amount DEC(12,2) Amount charged in decimal format with dollar sign and commas removed.
currency AN..6 The currency code of the transaction requested.
hash_value AN..32 A lowercase MD5 hash of order_id:affiliate:amount:currecy:hash

Code Tables

State Codes

The following are the State codes and their associated symbols that are acceptable as defined by the United States Post Office.

Code State
AL ALABAMA
AK ALASKA
AS AMERICAN SAMOA
AZ ARIZONA
AR ARKANSAS
CA CALIFORNIA
CO COLORADO
CT CONNECTICUT
DE DELAWARE
DC DISTRICT OF COLUMBIA
FL FLORIDA
GA GEORGIA
HI HAWAII
Code State
ID IDAHO
IL ILLINOIS
IN INDIANA
IA IOWA
KS KANSAS
KY KENTUCKY
LA LOUISIANA
ME MAINE
MD MARYLAND
MA MASSACHUSETTS
MI MICHIGAN
MN MINNESOTA
MS MISSISSIPPI
Code State
MO MISSOURI
MT MONTANA
NE NEBRASKA
NV NEVADA
NH NEW HAMPSHIRE
NJ NEW JERSEY
NM NEW MEXICO
NY NEW YORK
NC NORTH CAROLINA
ND NORTH DAKOTA
OH OHIO
OK OKLAHOMA
OR OREGON
Code State
PA PENNSYLVANIA
RI RHODE ISLAND
SC SOUTH CAROLINA
SD SOUTH DAKOTA
TN TENNESSEE
TX TEXAS
UT UTAH
VT VERMONT
VA VIRGINIA
WA WASHINGTON
WV WEST VIRGINIA
WI WISCONSIN
WY WYOMING
Code Military State/Territory
AE Armed Forces Africa
AA Armed Forces Americas (except Canada)
AE Armed Forces Canada
AE Armed Forces Europe
AE Armed Forces Middle East
AP Armed Forces Pacific
AS American Samoa
Code Military State/Territory
FM Federated States of Micronesia
GU Guam
MH Marshall Islands
MP Northern Mariana Islands
PW Palau
PR Puerto Rico
VI Virgin Islands

Currency Codes

Code Symbol Currency
USD $ US Dollar
GBP £ Great Britain Pound
EUR European Euro
JPY ¥ Japanese Yen
CNY ¥ Chinese Yuan

Country Codes

Code Country
AC Ascension Island
AD Andorra
AE United Arab Emirates
AF Afghanistan
AG Antigua and Barbuda
AI Anguilla
AL Albania
AM Armenia
AN Netherlands Antilles
AO Angola
AQ Antarctica
AR Argentina
AS American Samoa
AT Austria
AU Australia
AW Aruba
AZ Azerbaijan
BA Bosnia and Herzegovina
BB Barbados
BD Bangladesh
BE Belgium
BF Burkina Faso
BG Bulgaria
BH Bahrain
BI Burundi
BJ Benin
BM Bermuda
BN Brunei Darussalam
BO Bolivia
BR Brazil
BS Bahamas
BT Bhutan
BV Bouvet Island
BW Botswana
BY Belarus
BZ Belize
CA Canada
CC Cocos (Keeling Islands)
CF Central African Republic
CA Canada
CG Congo
CA Switzerland
CI Cote D'Ivoire (Ivory Coast)
CK Cook Islands
CL Chile
CM Cameroon
CN China
CO Colombia
CR Costa Rica
CU Cuba
CV Cape Verde
CX Christmas Island
CY Cyprus
CZ Czech Republic
DE Germany
DJ Djibouti
DK Denmark
DM Dominica
DJ Dominican Republic
DZ Algeria
EC Ecuador
Code Country
EE Estonia
EG Egypt
EH Western Sahara
ER Eritrea
ES Spain
ET Ethiopia
FI Finland
FJ Fiji
FK Falkland Islands (Malvinas)
FM Micronesia
FO Faroe Islands
FR France
FX France, Metropolitan
GA Gabon
GD Grenada
GE Georgia
GF French Guiana
GG Guernsey
GH Ghana
GI Gibraltar
GL Greenland
GM Gambia
GN Guinea
GP Guadeloupe
GQ Equatorial Guinea
GR Greece
GM S. Georgia and S. Sandwich Isls.
GT Guatemala
GU Guam
GW Guinea-Bissau
GY Guyana
HK Hong Kong
HM Heard and McDonald Islands
HN Honduras
HR Croatia (Hrvatska)
HT Haiti
HU Hungary
ID Indonesia
IE Ireland
IL Israel
IM Isle of Man
IN India
IO British Indian Ocean Territory
IQ Iraq
IR Iran
IS Iceland
IT Italy
JE Jersey
JM Jamaica
JO Jordan
JP Japan
KE Kenya
KG Kyrgyzstan
KH Cambodia
KI Kiribati
KM Comoros
KN Saint Kitts and Nevis
KP Korea (North)
KR Korea (South)
KW Kuwait
KY Cayman Islands
Code Country
KZ Kazakhstan
LA Laos
LB Lebanon
LC Saint Lucia
LI Liechtenstein
LK Sri Lanka
LR Liberia
LS Lesotho
LT Lithuania
LU Luxembourg
LV Latvia
LY Libya
MA Morocco
MC Monaco
MD Moldova
ME Montenegro
MG Madagascar
MH Marshall Islands
MK Macedonia
ML Mali
MM Myanmar
MN Mongolia
MO Macau
MP Northern Mariana Islands
MR Martinique
MK Mauritania
MS Montserrat
MT Malta
MU Mauritius
MV Maldives
MW Malawi
MX Mexico
MY Malaysia
NA Namibia
NC New Caledonia
NE Niger
NF Norfolk Island
NG Nigeria
NI Nicaragua
NL Netherlands, The
NO Norway
NP Nepal
NR Nauru
NU Niue
NZ New Zealand
OM Oman
PA Panama
PE Peru
PF French Polynesia
PG Papua New Guinea
PH Philippines
PK Pakistan
PL Poland
PM St. Pierre and Miquelon
PN Pitcairn
PR Puerto Rico
PT Portugal
PW Palau
PY Paraguay
QA Qatar
RE Reunion
RO Romania
RS Serbia
RU Russian Federation
RW Rwanda
SA Saudi Arabia
SB Solomon Islands
SC Seychelles
SD Sudan
SE Sweden
SG Singapore
SH St. Helena
SI Slovenia
SJ Svalbard and Jan Mayen Islands
SK Slovak Republic
SL Sierra Leone
SM San Marino
SN Senegal
SO Somalia
SR Suriname
ST Sao Tome and Principe
SV El Salvador
SY Syria
SZ Swaziland
TC Turks and Caicos Islands
TD Chad
TF French Southern Territories
TG Togo
TH Thailand
TJ Tajikistan
TK Tokelau
TM Turkmenistan
TN Tunisia
TO Tonga
TP East Timor
TR Turkey
TT Trinidad and Tobago
TV Tuvalu
TW Taiwan
TZ Tanzania
UA Ukraine
UG Uganda
UK United Kingdom
UM US Minor Outlying Islands
US United States
UY Uruguay
UZ Uzbekistan
VA Vatican City State (Holy See)
VC Saint Vincent and The Grenadines
VE Venezuela
VG Virgin Islands (British)
VI Virgin Islands (US)
VN Vietnam
VU Vanuatu
WF Wallis and Futuna Islands
WS Samoa
YE Yemen
YT Mayotte
ZA South Africa
ZM Zambia
ZR Zaire
ZW Zimbabwe

A list of blocked countries can be found here: Blocked Countries

Test Credentials

Test Accounts

Synchronous Processing

merchant_id terminal_name
EZPAYTE EZPAYTEtm1

Asyncronous Processing

merchant_id terminal_name
EZPAYTE EZPAYTEtm2

Test Cards

Card Type Card Number
American Express 378282246310005
American Express 371449635398431
American Express Corporate 378734493671000
Australian BankCard 5610591081018250
Diners Club 30569309025904
Diners Club 38520000023237
Discover 6011111111111117
Discover 6011000990139424
JCB 3530111333300000
JCB 3566002020360505
MasterCard 5555555555554444
MasterCard 5105105105105100
Visa 4111111111111111
Visa 4012888888881881
Visa 4222222222222222
CUP 6222222222222222
Checking Account x123456789

Sample Code

The sample code below is available to help new affiliates understand the process, when actually put into use, many of the <input> fields should be automatically completed and hidden upon implementation and all of the fields should undergo verification to ensure legitimate data is being transmitted to the processing engine.

Sample Code Validation

It is the Merchants responsibilty to ensure that their card processing terminal is easy to use for the customer and will not send unvalidated data to the EZPayNow, LLC processing engine. Unvalidated data will very likely result and transaction being "Rejected" or "Declined".

Example 1: The amount parameter should have been pre-determined by the time customer reaches the page they enter their card information, therefore the field should be filled out programmatically and transferred to either a hidden or a non-editable field.
Example 2: You may wish to convert the card_type parameter to a <select> field or you may wish to complete the parameter programmatically after the customer submits their card information via "Regular Expression" or a "Case" statement.

Synchronous Processing Demo

As explained in the section "Post Methods" their are two methods in which data can be sent to our processing engine, Synchronously and Asynchronously. When a transaction is sent Synchronously, the processing engine receives the $_REQUEST and the browser then "waits" for a response from the bank. Below you will find some Synchronous processing sample code, in order to use the code simply create a new .php file, copy the content below and paste them into your new file. Once you have the contents below have been pasted into the new file, change the "defined variable", "REDIRECT_URL" (shown below in yellow) to correspond with your domain and new "redirect_url" file name. For example, if your domain name is "https://InternationalCardSolution.com" and the new file you created for the sample code is "virtual_terminal.php" then your new defined variable will be:

define("REDIRECT_URL", "https://InternationalCardSolution.com/virtual_terminal.php");

Once the "REDIRECT_URL" has been updated, navigate to your new page via your preferred browser and complete the field's. Keep in mind the expected parameter length's and restriction's set in section POST "AUTHORIZE OR SALE"


REDIRECT_URL PAGE

<?php

/***********************************************
		TEST CREDENTIALS 
************************************************/ 

define("GATEWAY_URL", "https://backoffice.ezpaynow.biz/api/transact.php");
define("TERMINAL_NAME", "EZPAYTEtm1");
define("MERCHANT_ID", "EZPAYTE");
define("REDIRECT_URL", "https://yourdomain.com/DEMO_RESULT.php");

/***********************************************
	     GATEWAY PROCESSING MODES 
************************************************/ 

define("PROCESSING_MODE_SALE", "sale");

/***********************************************
	     TRANSACTION TYPES & PAY METHODS 
************************************************/ 

define("TRANS_TYPE_CREDIT_CARD", "Credit Card");

/***********************************************
	CAPTURES GATEWAYS REDIRECT_URL RESPONSE 
************************************************/ 

if ($_POST) {
echo "<pre>";
print_r($_POST);
echo "</pre>";
exit();
}

?>

<style>

/***********************************************
	     	FORM STYLE	 
************************************************/ 

div {
width: 50%;
text-align: left;
font: 12px Courier, sans-serif;
color: #003366;
margin-bottom: 4px;
}
div div {
width: 20%;
display: inline-block;
}

</style>

<!--***********************************************
	     	HTML CODE	 
*************************************************-->

<!DOCTYPE html>
<head><title>EZPayNow, LLC VT</title></head>
<body>
<h3>EZPayNow, LLC Virtual Terminal</h3>
<form id="form" name="form" method="post" action="<?php echo GATEWAY_URL ?>" />
<input type="hidden" id="affiliate" name="affiliate" value="<?php echo MERCHANT_ID ?>" />
<input type="hidden" id="terminal_name" name="terminal_name" value="<?php echo TERMINAL_NAME ?>" />
<input type="hidden" id="processing_mode" name="processing_mode" value="<?php echo PROCESSING_MODE_SALE ?>" />
<input type="hidden" id="paymethod" name="paymethod" value="<?php echo TRANS_TYPE_CREDIT_CARD ?>" />
<input type="hidden" id="redirect" name="redirect" value="<?php echo REDIRECT_URL ?>" />
<input type="hidden" id="order_id" name="order_id" value="<?php echo MERCHANT_ID."-TestTransaction-".date("dHis") ?>" />
<input type="hidden" id="customer_ip" name="customer_ip" value="<?php echo $_SERVER['REMOTE_ADDR'] ?>" />
<div><div>First Name</div><input type="text" id="first_name" name="first_name" /></div>
<div><div>Last Name</div><input type="text" id="last_name" name="last_name" /></div>
<div><div>Email</div><input type="text" id="email" name="email" /></div>
<div><div>Phone</div><input type="text" id="telephone" name="telephone" /></div>
<div><div>Address</div><input type="text" id="address1" name="address1" /></div>
<div><div>City</div><input type="text" id="city" name="city" /></div>
<div><div>State</div><input type="text" id="state" name="state" /></div>
<div><div>Zip</div><input type="text" id="zip" name="zip" /></div>
<div><div>Country</div><input type="text" id="country" name="country" /></div>
<div><div>Currency</div><input type="text" id="currency" name="currency" /></div>
<div><div>Amount</div><input type="text" id="amount" name="amount" /></div>
<div><div>Card Number</div><input type="text" id="card_number" name="card_number" /></div>
<div><div>Card Type</div><input type="text" id="card_type" name="card_type" /></div>
<div><div>CVV</div><input type="text" id="cvv" name="cvv" /></div>
<div><div>Expiration Year</div><input type="text" id="expiry_yr" name="expiry_yr" /></div>
<div><div>Expiration Month</div><input type="text" id="expiry_mo" name="expiry_mo" /></div>
<br /><input type="submit" value="Submit" />
</form>
</body>

Asynchronous Processing Demo

Asycronous processing utilizes the notification_url parameter. The notification_url works as a type of "listener" it sits around and waits for data to be sent to it. In the sample code below, the notification_url page takes the data sent to it, creates an email containing the response from the bank, and sends it to the value of the email parameter sent. When the notificiation_url page is used in a 'live' processing environment it should insert the received data into a database rather than generate emails.

This demonstration for asynchronous processing will require you to create two new .php files. The notification_url page will not require you to make any edits, simply copy the code and paste it into your new file. The redirect_url page is much like the sample code we used for the sync demo with the addition of the notification_url parameter. Change the "defined variable", "REDIRECT_URL" (shown below in yellow) to correspond with your domain and new "redirect_url" file name, also change the "defined variable", "NOTIFICATION_URL" (also shown below in yellow) to correspond with your domain and new "notification_url" file name. Once you have created both of your new files, use your prefered browser to navigate to your "redirect_url" page and complete the form, be sure to enter your email address so you can see the response from the bank that is sent to the "notification_url" page.

NOTIFICATION_URL page

<?php

$notificationData = "***NOTIFICATION_URL POST WAS NOT RECEIVED***";

if ( $_POST ) {
$notificationData = "\t***NOTIFICATION_URL POST RECEIVED***\n";
foreach ( $_POST as $key => $value ) {
$notificationData .= $key ."=" .$value ."\n";
}
}

$headers = 'From: API-ASYNC-RESPONSE <api@noreply.com>' . "\r\n" . 
'Reply-To: <>' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($_REQUEST['email'], "ASYNC DEMO NOTIFICATION", $notificationData, $headers);

?>

REDIRECT_URL page

<?php

/***********************************************
		TEST CREDENTIALS 
************************************************/ 

define("GATEWAY_URL", "https://backoffice.ezpaynow.biz/api/transact.php");
define("TERMINAL_NAME", "EZPAYTEtm2");
define("MERCHANT_ID", "EZPAYTE");
define("REDIRECT_URL", "https://yourdomain.com/DEMO_RESULT.php");
define("NOTIFICATION_URL", "https://yourdomain.com/DEMO_NOTIFICATION.php");

/***********************************************
	     GATEWAY PROCESSING MODES 
************************************************/ 

define("PROCESSING_MODE_SALE", "sale");

/***********************************************
	     TRANSACTION TYPES & PAY METHODS 
************************************************/ 

define("TRANS_TYPE_CREDIT_CARD", "Credit Card");

/***********************************************
	CAPTURES GATEWAYS REDIRECT_URL RESPONSE 
************************************************/ 

if ($_POST) {
echo "<pre>";
print_r($_POST);
echo "</pre>";
exit();
}

?>

<style>

/***********************************************
	     	FORM STYLE	 
************************************************/ 

div {
width: 50%;
text-align: left;
font: 12px Courier, sans-serif;
color: #003366;
margin-bottom: 4px;
}
div div {
width: 20%;
display: inline-block;
}

</style>

<!--***********************************************
	     	HTML CODE	 
*************************************************-->

<!DOCTYPE html>
<head><title>EZPayNow, LLC VT</title></head>
<body>
<h3>EZPayNow, LLC Virtual Terminal</h3>
<form id="form" name="form" method="post" action="<?php echo GATEWAY_URL ?>" />
<input type="hidden" id="affiliate" name="affiliate" value="<?php echo MERCHANT_ID ?>" />
<input type="hidden" id="terminal_name" name="terminal_name" value="<?php echo TERMINAL_NAME ?>" />
<input type="hidden" id="processing_mode" name="processing_mode" value="<?php echo PROCESSING_MODE_SALE ?>" />
<input type="hidden" id="paymethod" name="paymethod" value="<?php echo TRANS_TYPE_CREDIT_CARD ?>" />
<input type="hidden" id="redirect" name="redirect" value="<?php echo REDIRECT_URL ?>" />
<input type="hidden" id="notification_url" name="notification_url" value="<?php echo NOTIFICATION_URL ?>" />
<input type="hidden" id="order_id" name="order_id" value="<?php echo MERCHANT_ID."-TestTransaction-".date("dHis") ?>" />
<input type="hidden" id="customer_ip" name="customer_ip" value="<?php echo $_SERVER['REMOTE_ADDR'] ?>" />
<div><div>First Name</div><input type="text" id="first_name" name="first_name" /></div>
<div><div>Last Name</div><input type="text" id="last_name" name="last_name" /></div>
<div><div>Email</div><input type="text" id="email" name="email" /></div>
<div><div>Phone</div><input type="text" id="telephone" name="telephone" /></div>
<div><div>Address</div><input type="text" id="address1" name="address1" /></div>
<div><div>City</div><input type="text" id="city" name="city" /></div>
<div><div>State</div><input type="text" id="state" name="state" /></div>
<div><div>Zip</div><input type="text" id="zip" name="zip" /></div>
<div><div>Country</div><input type="text" id="country" name="country" /></div>
<div><div>Currency</div><input type="text" id="currency" name="currency" /></div>
<div><div>Amount</div><input type="text" id="amount" name="amount" /></div>
<div><div>Card Number</div><input type="text" id="card_number" name="card_number" /></div>
<div><div>Card Type</div><input type="text" id="card_type" name="card_type" /></div>
<div><div>CVV</div><input type="text" id="cvv" name="cvv" /></div>
<div><div>Expiration Year</div><input type="text" id="expiry_yr" name="expiry_yr" /></div>
<div><div>Expiration Month</div><input type="text" id="expiry_mo" name="expiry_mo" /></div>
<br /><input type="submit" value="Submit" />
</form>
</body>

Sample $_POST

&merchant_id=EZPAYTE
&paymethod=credit card
&processing_mode=sale
&redirect=http://backoffice.ezpaynow.biz/customers.php?content=content/VT_resultform.php
&notification_url=http://backoffice.ezpaynow.biz/api/notification.php
&order_id=EZPAYTE-TestTransaction-12053600
&terminal_name=TEST_TERMINAL
&first_name=John
&last_name=Doe
&address1=1 main st.
&city=miami
&state=FL
&country=US
&zip=12345
&telephone=123 123 1234
&email=johndoe@yahoo.com
&amount=10
&currency=USD
&card_type=visa
&card_number=4111111111111111
&cvv=123
&expiry_mo=1
&expiry_yr=2020