This document describes integration procedures and POST protocol usage for ecommerce merchants.
POST protocol implements acquiring payments (purchases) using specific API interaction.
Before you get an account to access Payment Platform, you must provide the following data to the Payment Platform administrator.
IP list | List of your IP addresses, from which requests to Payment Platform will be sent. |
Callback URL | URL which will be receiving the notifications of the processing results of your request to Payment Platform. |
Contact email | Client’s contact email |
Note: Callback URL is mandatory if you work in asynchronous mode, or if your account supports 3D-Secure. The length of Callback URL shouldn’t be more than 255 symbols.
With all Payment Platform POST requests at Callback URL the Client must return the string “OK” if he successfully received data or return “ERROR”.
You should get the following information from administrator to begin working with the Payment Platform.
CLIENT_KEY | Unique key to identify the account in Payment Platform (used as request parameter) |
CLIENT_PASS | Password for Client authentication in Payment Platform (used for calculating hash parameter) |
PAYMENT_URL | URL to request the Payment Platform |
When you make request to Payment Platform, you need to specify action, that needs to be done. Possible actions are:
Action | Description |
---|---|
SALE | Creates SALE or AUTH transaction |
CAPTURE | Creates CAPTURE transaction |
CREDITVOID | Creates REVERSAL or REFUND transaction |
GET_TRANS_STATUS | Gets status of transaction in Payment Platform |
GET_TRANS_DETAILS | Gets details of the order from Payment platform |
RECURRING_SALE | Creates SALE transaction using previously used cardholder data |
SCHEDULE | Creates schedule for recurring transactions |
DESCHEDULE | Disables schedule for recurring transactions |
Following actions can’t be made by request, they’re created by Payment Platform in certain circumstances (e.g. issuer initiated chargeback) and you receive callback as a result.
Action | Description |
---|---|
CHARGEBACK | CHARGEBACK transaction was created in Payment Platform |
CHARGEBACK_REVERSAL | CHARGEBACK_REVERSAL transaction was created in Payment Platform |
SECOND_PRESENTMENT | SECOND_PRESENTMENT transaction was created in Payment Platform |
SECOND_PRESENTMENT_REVERSAL | SECOND_PRESENTMENT_REVERSAL transaction was created in Payment Platform |
SECOND_CHARGEBACK | SECOND_CHARGEBACK transaction was created in Payment Platform |
SECOND_CHARGEBACK_REVERSAL | SECOND_CHARGEBACK_REVERSAL transaction was created in Payment Platform |
ARBITRATION | ARBITRATION transaction was created in Payment Platform |
ARBITRATION_REVERSAL | ARBITRATION_REVERSAL transaction was created in Payment Platform |
ARBITRATION_WON | ARBITRATION_WON transaction was created in Payment Platform |
ARBITRATION_LOST | ARBITRATION_LOST transaction was created in Payment Platform |
Result – value that system returns on request. Possible results are:
Result | Description |
---|---|
SUCCESS | Action was successfully completed in Payment Platform |
DECLINED | Result of unsuccessful action in Payment Platform |
REDIRECT | Additional action required from requester. (Redirect to 3ds) |
ACCEPTED | Action was accepted by Payment Platform, but will be completed later. |
ERROR | Request has errors and was not validated by Payment Platform |
Status – actual status of transaction in Payment Platform. Possible statuses are:
Status | Description |
---|---|
3DS | The transaction awaits 3D-Secure validation |
PENDING | The transaction awaits CAPTURE |
SETTLED | Successful transaction |
REVERSAL | Transaction for which reversal was made |
REFUND | Transaction for which refund was made |
CHARGEBACK | Transaction for which chargeback was made |
CHARGEBACK_ REVERSAL | Transaction for which chargeback reversal was made |
SECOND_PRESENTMENT | Transaction for which second presentment was made |
SECOND_PRESENTMENT_ REVERSAL | Transaction for which second presentment reversal was made |
SECOND_CHARGEBACK | Transaction for which second chargeback was made |
SECOND_CHARGEBACK_ REVERSAL | Transaction for which second chargeback reversal was made |
ARBITRATION | Transaction for which Arbitration was made |
ARBITRATION_REVERSAL | Transaction for which Arbitration reversal was made |
ARBITRATION_WON | Transaction for which Arbitration was won |
ARBITRATION_LOST | Transaction for which Arbitration was lost |
DECLINED | Not successful transaction |
Payment Platform supports two main operation type: Single Message System (SMS) and Dual Message System (DMS).
SMS is represented by SALE transaction. It is used for authorization and capture at a time. This operation is commonly used for immediate payments.
DMS is represented by AUTH and CAPTURE transactions. AUTH is used for authorization only, without capture. This operation used to hold the funds on card account (for example to check card validity).
SALE request is used to make both SALE and AUTH transactions.
If you want to make AUTH transaction, you need to use parameter auth with value Y. If you want to send a payment for the specific sub-account (channel), you need to use channel_id, that specified in your Payment Platform account settings.
This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | Sale | SALE | + |
async | Asynchronous or synchronous mode | Y or N (default N) | – |
client_key | Unique client key (CLIENT_KEY) | + | |
channel_id | Payment channel (Sub-account) | String up to 16 characters | – |
order_id | Transaction ID in the Clients system | String up to 255 characters | + |
order_amount | The amount of the transaction | Numbers in the form XXXX.XX (without leading zeros) |
+ |
order_currency | Currency | 3-letter code | + |
order_description | Description of the transaction (product name) | String up to 1024 characters | + |
req_token | Special attribute pointing for further tokenization | Y or N (default N) | – |
gpay_token | Token received by a merchant from Google | Y or N (default N) | – |
card_token | Credit card token value | String 64 characters | – |
card_number | Credit Card Number | +1 | |
card_exp_month | Month of expiry of the credit card | Month in the form XX | +1 |
card_exp_year | Year of expiry of the credit card | Year in the form XXXX | +1 |
card_cvv22 | CVV/CVC2 credit card verification code | 3-4 symbols | +1 |
payer_first_name | Customer’s name | String up to 32 characters | + |
payer_last_name | Customer’s surname | String up to 32 characters | + |
payer_middle_name | Customer’s middle name | String up to 32 characters | + |
payer_birth_date | Customer’s birthday | format yyyy-MM-dd, e.g. 1970-02-17 | + |
payer_address | Customer’s address | String up to 255 characters | + |
payer_address2 | The adjoining road or locality (if required) of the сustomer’s address | String up to 255 characters | + |
payer_country | Customer’s country | 2-letter code | + |
payer_state | Customer’s state | String up to 32 characters | + |
payer_city | Customer’s city | String up to 32 characters | + |
payer_zip | ZIP-code of the Customer | String up to 32 characters | + |
payer_email | Customer’s email | String up to 256 characters | + |
payer_phone | Customer’s phone | String up to 32 characters | + |
payer_ip | IP-address of the Customer | XXX.XXX.XXX.XXX | + |
term_url_3ds | URL to which Customer should be returned after 3D-Secure | String up to 1024 characters | + |
recurring_init | Initialization of the transaction with possible following recurring | Y or N (default N) | – |
ext1 | Client Parameter 1 | – | |
ext… | Client Parameter … | – | |
ext10 | Client Parameter 10 | – | |
auth | Indicates that transaction must be only authenticated, but not captured | Y or N (default N) | – |
hash | Special signature to validate your request to Payment Platform | * (Appendix A) | + |
1 – This field becomes optional if card_token is specified
2 – This field becomes optional if acquirer handles non-CVV2 transactions
If the optional parameter card_token and card data are specified, card_token will be ignored. If the optional parameters req_token and card_token are specified, req_token will be ignored.
If the optional parameters gpay token = Y, fields: card_number, card_exp_month, card_exp_year, card_cvv2 will be not required.
You will get JSON encoded string (see an example on Appendix B) with transaction result. If your account supports 3D-Secure, transaction result will be sent to your Callback URL.
Successful sale response:
Parameter | Description |
---|---|
action | SALE |
result | SUCCESS |
status | PENDING/SETTLED; only PENDING when auth=Y |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank. In most cases, this is the Customers support web-site. |
recurring_token | Recurring token (get if account support recurring sales and was initialization transaction for following recurring) |
amount | Order amount |
currency | Currency |
card_token | If the parameter req_token was enabled Payment Platform returns the token value |
Unsuccessful sale response:
Parameter | Description |
---|---|
action | SALE |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
decline_reason | The reason why the transaction was declined |
3D-Secure transaction response:
Parameter | Description |
---|---|
action | SALE |
result | REDIRECT |
status | 3DS |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
redirect_url | URL to which the Client should redirect the Customer |
redirect_params | Array of specific 3DS parameters |
redirect_method | The method of transferring parameters (POST/GET) |
If you want to use asynchronous mode, you need to use async parameter with value “Y” in your sale request.
Using this mode you will get synchronous response (JSON encoded string) below that transaction is accepted for processing and result will be sent to your Callback URL.
Parameter | Description |
---|---|
action | SALE |
result | ACCEPTED |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
Successful sale response:
Parameter | Description |
---|---|
action | SALE |
result | SUCCESS |
status | PENDING/SETTLED |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank. In most cases, this is the Customers support web-site. |
auth_code | Bank approval code |
recurring_token | Recurring token (get if account support recurring sales and was initialization transaction for following recurring) |
amount | Order amount |
currency | Currency |
card_token | If the parameter req_token was enabled Payment Platform returns the token value |
hash | Special signature, used to validate callback **(Appendix A) |
Unsuccessful sale response:
Parameter | Description |
---|---|
action | SALE |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature, used to validate callback **(Appendix A) |
3D-Secure transaction response:
Parameter | Description |
---|---|
action | SALE |
result | REDIRECT |
status | 3DS |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
redirect_url | URL to which the Client should redirect the Customer |
redirect_params | Array parameters |
redirect_method | The method of transferring parameters (POST/GET) |
hash | Special signature, used to validate callback **(Appendix A) |
CAPTURE request is used to submit previously authorized transaction (created by AUTH request). Hold funds will be transferred to Merchants account.
This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | Capture previously authenticated transaction | CAPTURE | + |
client_key | Unique client key (CLIENT_KEY) | + | |
trans_id | Transaction ID in the Payment Platform | String up to 255 characters | + |
amount | The amount for partial capture. Only one partial capture allowed. | Numbers in the form XXXX.XX (without leading zeros) | – |
hash | Special signature to validate your request to payment platform | **(Appendix A) | + |
Successful capture response:
Parameter | Description |
---|---|
action | CAPTURE |
result | SUCCESS |
status | SETTLED |
amount | Amount of capture. |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
Unsuccessful capture response:
Parameter | Description |
---|---|
action | CAPTURE |
result | DECLINED |
status | PENDING |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
decline_reason | The reason why the capture was declined |
Successful capture response:
Parameter | Description |
---|---|
action | CAPTURE |
result | SUCCESS |
status | SETTLED |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
amount | Amount of capture. |
hash | Special signature, used to validate callback **(Appendix A) |
Unsuccessful capture response:
Parameter | Description |
---|---|
action | CAPTURE |
result | DECLINED |
status | PENDING |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
decline_reason | The reason why the capture was declined |
hash | Special signature, used to validate callback **(Appendix A) |
CREDITVOID request is used to complete both REFUND and REVERSAL transactions.
REVERSAL transaction is used to cancel hold from funds on card account, previously authorized by AUTH transaction.
REFUND transaction is used to return funds to card account, previously submitted by SALE or CAPTURE transactions.
This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | CREDITVOID | CREDITVOID | + |
client_key | Unique client key (CLIENT_KEY) | + | |
trans_id | Transaction ID in the Payment Platform | String up to 255 characters | + |
amount | The amount for partial refund. Several partial refunds allowed. | Numbers in the form XXXX.XX (without leading zeros) | – |
hash | Special signature to validate your request to Payment Platform | **(Appendix A) | + |
Parameter | Description |
---|---|
action | CREDITVOID |
result | ACCEPTED |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
Successful refund/reversal response
Parameter | Description |
---|---|
action | CREDITVOID |
result | SUCCESS |
status | REFUND/REVERSAL |
order_id | Transaction ID in the Client system |
trans_id | Transaction ID in the Payment Platform |
creditvoid_date | Date of the refund/reversal |
amount | Amount of refund. |
hash | Special signature, used to validate callback**(Appendix A) |
Unsuccessful refund/reversal response
Parameter | Description |
---|---|
action | CREDITVOID |
result | DECLINED |
order_id | Transaction ID in the Client system |
trans_id | Transaction ID in the Payment Platform |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature, used to validate callback **(Appendix A) |
Gets order status from Payment Platform. This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | GET_TRANS_STATUS | GET_TRANS_STATUS | + |
client_key | Unique client key (CLIENT_KEY) | + | |
trans_id | Transaction ID in the Payment Platform | String up to 255 characters | + |
hash | Special signature to validate your request to Payment Platform | **(Appendix A) | + |
Parameter | Description |
---|---|
action | GET_TRANS_STATUS |
result | SUCCESS |
status | 3DS/PENDING/DECLINED/SETTLED/REVERSAL/REFUND/CHARGEBACK/SECOND_PRESENTMENT/ ARBITRATION |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
Gets all history of transactions by the order. This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | GET_TRANS_DETAILS | GET_TRANS_DETAILS | + |
client_key | Unique client key (CLIENT_KEY) | + | |
trans_id | Transaction ID in the Payment Platform | String up to 255 characters | + |
hash | Special signature to validate your request to Payment Platform | **(Appendix A) | + |
Parameter | Description |
---|---|
action | GET_TRANS_DETAILS |
result | SUCCESS |
status | 3DS/PENDING/DECLINED/SETTLED/REVERSAL/REFUND/CHARGEBACK/SECOND_PRESENTME ARBITRATION |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
name | Payer name |
Payer mail | |
ip | Payer IP |
amount | Order amount |
currency | Currency |
card | Card in the format XXXXXX****XXXX |
transactions 2 | Array of transactions |
2 – In the array each of transactions has: date, type, status (0-fail, 1-success) and amount. For example:
{"transactions":[
{"date":"2012-01-01 01:10:25","type":"AUTH","status":"1","amount":"1.95"},{"date":"2012-01-01
01:11:30","type":"CAPTURE","status":"1","amount":"1.95"},{"date":"2012-02-06
10:25:06","type":"REFUND","status":"1","amount":"1.95"}
]}
Recurring payments commonly used to create new transactions based on already stored cardholder information from previous operations.
RECURRING_SALE request has same logic as SALE request, the only difference is that you need to provide primary transaction id, and this request will create a secondary transaction with previously used cardholder data from primary transaction.
This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | Recurring sale | RECURRING_SALE | + |
async | Asynchronous or synchronous mode | Y or N (default N) | – |
client_key | Unique client key (CLIENT_KEY) | + | |
order_id | Transaction ID in the clients system | String up to 255 characters | + |
order_amount | The amount of the transaction | Numbers in the form XXXX.XX (without leading zeros) | + |
order_description | Transaction description (product name) | String up to 1024 characters | + |
recurring_first_trans_id | Transaction ID of the primary transaction in the Payment Platform | + | |
recurring_token | Value obtained during the primary transaction | + | |
auth | Indicates that transaction must be only authenticated, but not captured | Y or N (default N) | – |
hash | Special signature to validate your request to payment platform | * (Appendix A) | + |
Response from Payment Platform is the same as by SALE command.
Registers a schedule for the regular SALE secondary transactions. Transactions are created by Payment Platform, based on data taken from primary transaction.
This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | Register recurring schedule | SCHEDULE | + |
client_key | Unique client key (CLIENT_KEY) | + | |
order_amount | The amount of the transaction | Numbers in the form XXXX.XX (without leading zeros) |
+ |
order_description | Transaction description (product name) | String up to 1024 characters | + |
recurring_first_trans_id | Transaction ID of the primary transaction in the Payment Platform |
+ |
|
period | Period in days to perform the payments | Numbers in the form XXX | + |
init_period | Delay in days before performing the first payment. If not provided, the first payment will be done as soon as possible. | Numbers in the form XXX | – |
times | The number of times the payments will be done. Not provided or zero value means unlimited number of payments | Numbers in the form XXX |
– |
hash | Special signature to validate your request to payment platform | ** (Appendix A) |
+ |
Parameter | Description |
---|---|
action | SCHEDULE |
result | SUCCESS |
status | ENABLED |
order_id | Transaction ID of the primary transaction in the Client system |
trans_id | Transaction ID of the primary transaction in the Payment Platform |
After processing each of scheduled RECURRING_SALE transactions, Payment Platform sends response to Client’s Callback URL:
Parameter | Description |
---|---|
action | RECURRING_SALE |
result | SUCCESS |
status | PENDING/SETTLED |
order_id | Transaction ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank.In most cases, this is the Customers support web-site. |
auth_code | Bank approval code |
recurring_token | Recurring token (get if account support recurring sales and was initialization transaction for following recurring) |
hash | Special signature, used to validate callback ** (Appendix A) |
This request disables previously set schedule.
This request is sent by POST in the background (eg, through PHP CURL).
Parameter | Description | Values | Required field |
---|---|---|---|
action | Register recurring schedule | DESCHEDULE | + |
client_key | Unique client key (CLIENT_KEY) | + | |
recurring_first_trans_id | Transaction ID of the primary transaction in the Payment Platform | + | |
recurring_token | Value obtained during the primary transaction | + | |
hash | Special signature to validate your request to payment platform | **(Appendix A) | + |
Parameter | Description |
---|---|
action | DESCHEDULE |
result | SUCCESS |
status | DISABLED |
order_id | Transaction ID of the primary transaction in the Client system |
trans_id | Transaction ID of the primary transaction in the Payment Platform |
CHARGEBACK, SECOND_PRESENTMENT, SECOND_CHARGEBACK transactions are
used to dispute already settled payment. CHARGEBACK, SECOND_CHARGEBACK are initiated by issuer and SECOND_PRESENTMENT is initiated by acquirer.
ARBITRATION is the last step of dispute cycle when decision is made by international payment system and result of Arbitration may be either ARBITRATION_WON or ARBITRATION_LOST.
REVERSAL transactions are used to reverse back previously made CHARGEBACK, SECOND_PRESENTMENT, SECOND_CHARGEBACK or ARBITRATION transactions.
When processing these transactions, Payment Platform sends notification to Client’s Callback URL.
Parameter | Description |
---|---|
action | CHARGEBACK |
result | SUCCESS |
status | CHARGEBACK |
order_id | Transaction ID in the Client system |
trans_id | Transaction ID in the Payment Platform |
amount | The amount of the chargeback |
chargeback_date | System date of the chargeback |
bank_date | Bank date of the chargeback |
reason_code | Reason code of the chargeback |
hash | Special signature, used to validate callback **(Appendix A) |
Parameter | Description |
---|---|
action | SECOND_PRESENTMENT |
result | SUCCESS |
status | SECOND_PRESENTMENT |
order_id | Transaction ID in the Client system |
trans_id | Transaction ID in the Payment Platform |
amount | The amount of the second presentment |
chargeback_date | System date of the second presentment |
bank_date | Bank date of the second presentment |
reason_code | Reason code of the second presentment |
hash | Special signature, used to validate callback **(Appendix A) |
Parameter | Description |
---|---|
action | SECOND_CHARGEBACK |
result | SUCCESS |
status | SECOND_CHARGEBACK |
order_id | Transaction ID in the Client system |
trans_id | Transaction ID in the Payment Platform |
amount | The amount of the second chargeback |
chargeback_date | System date of the second chargeback |
bank_date | Bank date of the second chargeback |
reason_code | Reason code of the second chargeback |
hash | Special signature, used to validate callback **(Appendix A) |
Parameter | Description |
---|---|
action | CHARGEBACK_REVERSAL/SECOND_PRESENTMENT_RE VERSAL/SECOND_CHARGEBACK_REVERSAL/ARBITRATI ON_REVERSAL |
result | SUCCESS |
status | SETTLED/CHARGEBACK/SECOND_PRESENTMENT/ARBIT RATION_REVERSAL |
order_id | Transaction ID in the Client system |
trans_id | Transaction ID in the Payment Platform |
chargeback_date | System date of the reversal transaction |
bank_date | Bank date of the reversal transaction |
reason_code | Reason code of the reversal transaction |
hash | Special signature, used to validate callback **(Appendix A) |
Parameter | Description |
---|---|
action | ARBITRATION/ARBITRATION_WON/ARBITRATION_LOST |
result | SUCCESS |
status | ARBITRATION/ARBITRATION_WON/ARBITRATION_LOST |
order_id | Transaction ID in the Client system |
trans_id | Transaction ID in the Payment Platform |
chargeback_date | System date of the arbitration transaction |
bank_date | Bank date of the arbitration transaction |
reason_code | Reason code of the arbitration transaction |
hash | Special signature, used to validate callback **(Appendix A) |
In case error you get synchronous response from Payment Platform:
Parameter | Description |
---|---|
result | ERROR |
error_message | Error message |
You can make test requests using data below. Please note, that all transactions will be processed using Test engine.
Card number | Card expiration date (MM/YYYY) | Result |
---|---|---|
4111111111111111 | 01/2020 | Successful sale with successful |
4111111111111111 | 02/2020 | Unsuccessful sale/recurring payment |
4111111111111111 | 05/2020 | Successful sale after 3DS verification with a manual sending of the result (HTML form) |
4111111111111111 | 06/2020 | Unsuccessful sale after 3DS verification with a manual sending of the result (HTML form) |
Hash is signature rule used either to validate your requests to payment platform or to validate callback from payment platform to your system. It must be md5 encoded string calculated by rules below:
*hash is calculated by the formula:
md5(strtoupper(strrev(email).CLIENT_PASS. strrev(substr(card_number,0,6).substr(card_number,-4))))
if parameter card_token is specified hash is calculated by the formula:
md5(strtoupper(strrev(email).CLIENT_PASS.strrev(card_token)))
** hash is calculated by the formula:
md5(strtoupper(strrev(email).CLIENT_PASS. trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))
action | SALE |
async | N |
client_key | ZPR2ZH2J2U |
order_id | ORDER-12345 |
order_amount | 1.99 |
order_currency | USD |
order_description | Product |
card_number | 4111111111111111 |
card_exp_month | 01 |
card_exp_year | 2020 |
card_cvv2 | 000 |
payer_first_name | John |
payer_last_name | Doe |
payer_address | Big street |
payer_country | US |
payer_state | CA |
payer_city | City |
payer_zip | 123456 |
payer_email | [email protected] |
payer_phone | 199999999 |
payer_ip | 123.123.123.123 |
term_url_3ds 1 | http://client.site.com/return.php |
recurring_init | Y |
hash | 02cdb60b5c923e06c1b1d71da94b2a39 |
The hash above was calculated for CLIENT_PASS equal to qH0AHYFkgTURksztWZxUZUydwFOmiBHZ
curl -d "action=SALE&client_key=ZPR2ZH2J2U&order_id=ORDER- 12345&order_amount=1.99&order_currency=USD&order_description=Product&card_number
=4111111111111111&card_exp_month=01&card_exp_year=2020&card_cvv2=000&payer_first
_name=John&payer_last_name=Doe&payer_address=Big Street&payer_country=US&payer_state=CA&payer_city=City&payer_zip=123456&payer_em [email protected]&payer_phone=199999999&payer_ip=123.123.123.123&term_url_3ds= http://client.site.com/return.php&recurring_init=Y&hash=02cdb60b5c923e06c1b1d71d a94b2a39" https://test.apiurl.com -k
{"action":"SALE","result":"SUCCESS","status":"SETTLED","trans_id":"03346-89217-70541","order_id":"ORDER-12345","descriptor":"test","trans_date":"2012-04-03 16:02:01","recurring_token":"a1a6de416405ada72bb47a49176471dc"}
{"action":"SALE","result":"DECLINED","status":"DECLINED","trans_id":"03346-89214-54141","order_id":"ORDER-12345","trans_date":"2012-04-03 16:02:01","decline_reason":"Declined by processing"}
{"action":"SALE","result":"REDIRECT","status":"3DS","trans_id":"03346-89225- 87891","order_id":"ORDER-12345","trans_date":"2012-04-03 16:02:02","redirect_url":"https:\/\/server_3ds.com/3ds.php","redirect_params":{" PaReq":"bc5865698ae46de4eba4c51f0359a714","MD":"111111111111111111111","TermUrl"
:"https:\/\/term_url.com/3ds\/67c14e5?trans_id=03346-89225- 87891&hash=8b98db60fb3c24c14a6d7075241da38b"},"redirect_method":"POST"}
{"result":"ERROR","error_message":"Error description"}
{"action":"SALE","result":"ACCEPTED","trans_id":"03346-89211- 86461","order_id":"ORDER-12345","trans_date":"2012-04-03 16:02:01"}
{"result":"ERROR","error_message":"Error description"}
curl -d "action=RECURRING_SALE&client_key=ZPR2ZH2J2U&order_id=ORDER-12345 &order_amount=1.99&order_description=Product&recurring_first_trans_id=03346- 89217-70541&recurring_token=a1a6de416405ada72bb47a49176471dc&hash= 02cdb60b5c923e06c1b1d71da94b2a39" https://test.apiurl.com -k
{"action":"RECURRING_SALE","result":"SUCCESS","status":"SETTLED","trans_id":"033 46-89220-33511","order_id":"ORDER-12345","descriptor":"test","trans_date":"2012- 04-03 16:02:02"}
curl -d "action=SCHEDULE&client_key=ZPR2ZH2J2U&order_id=ORDER-12345 &order_amount=1.99&order_description=Product&recurring_first_trans_id=03346- 89217-70541&recurring_token=a1a6de416405ada72bb47a49176471dc&period=30 &init_period=5×=10&hash=02cdb60b5c923e06c1b1d71da94b2a39" https://test.apiurl.com -k
{"action":"SCHEDULE","result":"SUCCESS","status":"ENABLED","trans_id":"03346- 89220-33511","order_id":"ORDER-12345"}
curl-d "action=DESCHEDULE&client_key=ZPR2ZH2J2U&recurring_first_trans_id=03346- 89217-70541 &recurring_token=a1a6de416405ada72bb47a49176471dc &hash=02cdb60b5c923e06c1b1d71da94b2a39" https://test.apiurl.com -k
{"action":"DESCHEDULE","result":"SUCCESS","status":"DISABLED","trans_id":"03346- 89220-33511","order_id":"ORDER-12345"}
curl -d "action=CREDITVOID&client_key=ZPR2ZH2J2U&trans_id=03346-89211-86461 &amount=10.00&hash=6b957fca41c353ac344fcad47f0cbf97" https://test.apiurl.com -k
{"action":"CREDITVOID","result":"ACCEPTED","trans_id":"03346-89211- 86461","order_id":"ORDER-12345"}