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. For security, whitelist our IP when you handle our responses. Contact your system admin for additional information on IP Whitelisting.
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 | This pay method requires a valid credit card number, CVV number, and expiration date. |
Check | This pay method requires a valid checking account number, bank routing number, and check number. |
Crypto | This pay method does not require checking account or credit card info, payment detail will be collected on our QR Scan page. Normally users are redirected to our hosted QR Scan page, but by using ‘Post Method’ -> ‘Async’, you can host the payment page on your own site (The payment page URL will be returned in the transaction response variable ‘transaction_memo’). Refer to ‘Posting Transactions’ -> “Sale” for specific post variable requirements. |
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.phpPost 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. |
Hosted Transactions
Hosted Overview
The Hosted API option allows developers to integrate in the most secure manner and with
the least number of parameters. Customer parameters are optional, if none are provided
the checkout page will default to the payment form instead of the customer form. This is a
great option for merchants that want to limit their interaction with credit card detail.
For hosted transactions please send http post reqeust to: https://backoffice.ezpaynow.biz/checkout.php
3D Secure Processing
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.
Hosted "POST"
Field Name | Type/Length | Required | Description |
---|---|---|---|
terminal_name | AN..12 | Y | This is the Terminal ID assigned to the website |
processing_mode | AN..32 | Y | The transaction type for this transaction: authorize or sale |
redirect | ANS..50 | Y | The URL where the customer should be returned after completion. |
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. |
amount | DEC(12,2) | Y | Amount to be charged in currency format with dollar sign and commas removed. |
authentication | AN..32 | Y | MD5 Hash of the following parameters: [order_id+terminal_name+amount+api_key] The API key is found in the terminal profile of the backoffice. |
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 | N | Cardholder's first name |
last_name | AN..32 | N | Cardholder's last name |
address1 | AN..32 | N | Cardholder's billing address for their card |
address2 | AN..32 | N | Cardholder's billing address for their card |
city | AN..32 | N | Cardholder's billing city for their card |
state | AN..32 | N | Cardholder's billing state for their card |
country | AN..32 | N | Cardholder's billing country for their card |
zip | AN..15 | N | Cardholder's billing zip code for their card |
telephone | AN..32 | N | 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 |
AN..50 | N | Cardholder's email address | |
product_id | ANS..12 | N | Unique Product Identifier |
product_description | ANS..32 | N | Product name and description |
Hosted "RESPONSE"
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; REJECTED, FAILED, APPROVED, DECLINED, AUTHORIZED, SETTLED, CAPTURED, RETURNED, REFUNDED, VOIDED, CANCELLED |
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. |
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_description | AN..32 | Bank's billing descriptor to appear on cardholder's statement. |
signature | AN..32 | MD5 Hash of the following parameters: [order_id:affililate:status:amount:currency:api_key] API Key is found in the terminal profile of the backoffice. |
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 "PENDING"
If an Issuing Bank's solution is redirected there is a potential for the transaction to improperly terminate. For example, if after being redirected to the Issuing Bank's payment page the cardholder discontinues the sale process and quits or closes their browser the transaction will not complete. The Processing Mode "pending" is used to confirm that the merchant has successfully submitted the initial transaction to EZPayNow, LLC and that the user has been redirected to the Issuing Bank's payment page.
Transaction Status | Description |
---|---|
PENDING | The transaction status PENDING indicates that the initial step of the transaction processing has completed and the cardholder has been redirected in the case of a 3-D payment or if this is an eCheck transaction the check has been submitted for verification. When the transaction completes a notification will be sent to with the APPROVED or DECLINED transaction information if the Notification URL has been set. See Message Request Format for definition and use of the Notification URL parameter values. |
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 "API Key". The API key is defined in the Terminal Profile and can be updated when you are logged in. The following data points are use to encrypt its transactions: "order_id:affiliate:status:amount:currency:api_key" (note: Includes colons ":").
Here is an example:
Hash String: 012345FWM-1:demo_affiliate:APPROVED:125.00:USD:My_API_Key
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 |
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 | N-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, SETTLED |
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. |
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_description | AN..32 | Bank's billing descriptor to appear on cardholder's statement. |
signature | AN..32 | MD5 Hash of the following parameters: [order_id:affililate:status:amount:currency:api_key] API Key is found in the terminal profile of the backoffice. |
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, SETTLED |
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: credit_request, void |
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, SETTLED |
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_request, refund_request, recurring_sale,void,settlement |
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 name of the bank to be credited. |
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, A list of acceptable cities can be found here: City Codes. Posting the city name or its respective code found in the previous hyperlink are acceptable values. Requirement is dependant on the processing bank. |
bank_province | ANS..50 | Y / N | The province of the bank to be credited, A list of acceptable provences can be found here: Province Codes. Posting the province name or its respective code found in the previous hyperlink are acceptable values. 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 |
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 |
authentication | AN..32 | Y | MD5 Hash of the following parameters: [order_id+terminal_name+amount+api_key] The API key is found in the terminal profile of the backoffice. |
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; APPROVED, DECLINED, FAILED, AUTHORIZED, CAPTURED, REFUNDED, VOIDED, CREDIT REQUEST, SETTLED |
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 "TRACKING UPDATE"
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 |
processing_mode | AN..32 | Y | The transaction type for this transaction: tracking_update |
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 being refunded or captured. |
tracking_no | ANS..32 | Y | Tracking number assigned by the carrier. |
ship_status | A-20 | Y | Shipping Status – MUST BE "Shipped" |
carrier | A-20 | Y | The carrier must be one of the recognized carriers: "DHL", "FedEx", "UPS", "US Mail", "Post/EMS", "IndiaPost/USPS", "CanadaPost", "First FlightUSA", "Parcel Force", "Royal Mail", "Correos", "PAKPO", "Email", "Other" |
ship_date | ANS..32 | Y | The date the product was shipped in a standard date format. Acceptable formats include: 01/05/11, 01/05/2011, Jan. 5, 2011 |
RESPONSE "TRACKING UPDATE"
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, SETTLED |
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. |
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 |
reference_ transaction_no | ANS..32 | Y | The gateway generated unique transaction number for the transaction for which the status is being requested. |
redirect | ANS..50 | N | The return URL for the Response Message on a successful. |
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, SETTLED |
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. |
POST "TRANSACTION SETTLE 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 |
processing_mode | AN..32 | Y | The transaction type for this transaction: transaction_settled |
redirect | ANS..50 | Y | The return URL for the Response Message on a successful. |
reference_ transaction_no | ANS..32 | Y/N | The gateway generated unique transaction number for the transaction for which the status is being requested. |
RESPONSE "TRANSACTION SETTLE 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, SETTLED |
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. |
POST "GATEWAY STATUS"
Messages are sent to the 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 sent to your web site:
REQUEST MESSAGE FORMAT
Field Name | Type/Length | Required | Description |
---|---|---|---|
affiliate | AN..20 | Y | Assigned Affiliate ID |
processing_mode | AN..32 | Y | The transaction type for this transaction: gateway_status |
redirect | ANS..50 | Y | The return URL for the Response Message on a successful. |
RESPONSE "GATEWAY 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, SETTLED |
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. |
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
affiliate | terminal_name |
---|---|
EZPAYTE | EZPAYTEtm1 |
Asyncronous Processing
affiliate | 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
&affiliate=EZPAYTE
&paymethod=credit card
&processing_mode=sale
&redirect=https://backoffice.ezpaynow.biz/customers.php?content=content/VT_resultform.php
¬ification_url=https://backoffice.ezpaynow.biz/api/notification.php
&order_id=EZPAYTE-TestTransaction-21063637
&terminal_name=EZPAYTEtm1
&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
¤cy=USD
&card_type=visa
&card_number=4111111111111111
&cvv=123
&expiry_mo=1
&expiry_yr=2020