S2S CARD callback parameters
Payment Platform sends these parameters to your notification URL as an application/x-www-form-urlencoded POST. Parameters without a value are not sent. How to receive a callback, respond to it and verify it: Callbacks.
Always sent
| Parameter | Description |
|---|---|
action | The action the callback refers to: SALE, RECURRING_SALE, CAPTURE, CREDITVOID, VOID, DEBIT, RECURRING_DEBIT, CREDIT2CARD, CARD2CARD, CHARGEBACK. See Values of action |
result | Result of the operation: SUCCESS, DECLINED, REDIRECT, UNDEFINED. CREDITVOID can also return WAITING. |
status | Actual status of the transaction in Payment Platform: SETTLED, PENDING, PREPARE, 3DS, REDIRECT, DECLINED, REFUND, REVERSAL, VOID, CHARGEBACK. See Transaction results and statuses |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in Payment Platform |
hash | Signature used to validate the callback: Formula 2, or Formula 6 for CREDIT2CARD. See also Hash signature |
Values of action
action | Sent for |
|---|---|
SALE | A SALE payment, including a payment with auth = Y and its redirect or 3DS step |
RECURRING_SALE | A Recurring Sale, a payment created by a schedule, and a RETRY of a recurring payment |
CAPTURE | A CAPTURE of a held payment |
CREDITVOID | A refund or reversal made with CREDITVOID |
VOID | A VOID |
DEBIT | A DEBIT |
RECURRING_DEBIT | A Recurring Debit |
CREDIT2CARD | A CREDIT2CARD payout |
CARD2CARD | A CARD2CARD transfer |
CHARGEBACK | A chargeback registered for the payment. Sent only when the chargeback is successful, with result = SUCCESS. |
Sent depending on the action and result
| Parameter | Sent in | Description |
|---|---|---|
trans_date | All actions except CREDITVOID and CHARGEBACK | Transaction date in Payment Platform |
amount | All actions except VOID | Amount of the operation: the payment amount, or the captured, refunded or charged-back amount for CAPTURE, CREDITVOID and CHARGEBACK. It has as many decimal places as the currency, for example 10.00 for USD |
currency | All actions except CREDITVOID, VOID and CHARGEBACK | Currency |
decline_reason | All actions except CHARGEBACK, when result = DECLINED | Description of the cancellation of the transaction |
descriptor | SALE, RECURRING_SALE, CAPTURE, DEBIT, RECURRING_DEBIT, CARD2CARD, when available | Descriptor from the bank, the same as the cardholder will see in the bank statement |
redirect_url | SALE, RECURRING_SALE, DEBIT, RECURRING_DEBIT, CARD2CARD, CREDIT2CARD, when result = REDIRECT | URL to which the Merchant should redirect the Customer |
redirect_params | Same as redirect_url | Object with the 3DS or redirect parameters received from the acquirer, for example redirect_params[PaReq]. If the acquirer sends none, it is not sent and redirect_method = GET |
redirect_method | Same as redirect_url | The method of transferring parameters: POST, or GET when there are no redirect_params |
card | SALE, RECURRING_SALE, CAPTURE, DEBIT, RECURRING_DEBIT | Card mask. If a digital wallet was used, the value obtained when decrypting the wallet token |
card_expiration_date | Same as card | Card expiration date |
card_token | SALE, RECURRING_SALE, CAPTURE, DEBIT, RECURRING_DEBIT, if req_token was enabled or the payment was made with card_token. Not sent for a declined payment | Card token |
recurring_token | SALE and DEBIT sent with recurring_init = Y, if recurring payments are enabled for your account, once the payment is SETTLED (a SALE also when PENDING). Not sent in the CAPTURE callback | Recurring token to use in the following RECURRING_SALE and RECURRING_DEBIT requests |
schedule_id | SALE, RECURRING_SALE, CAPTURE, if a schedule is used | Schedule ID |
first_recurring_date | Same as schedule_id | Date of the first automatic charge by the schedule. Format: YYYY-MM-DD HH:MM:SS |
schedule_start_date | SALE, RECURRING_SALE, CAPTURE, if schedule_start_date was sent in the initiating request | Date of the first scheduled payment. Format: YYYY-MM-DD HH:MM:SS |
payment_schedule_amount | SALE, RECURRING_SALE, CAPTURE, if payment_schedule_amount was sent in the initiating request | Amount of the payments created later by the schedule |
digital_wallet | SALE, RECURRING_SALE, CAPTURE, for a digital wallet payment | Wallet provider: googlepay (Google Pay) or applepay (Apple Pay) |
pan_type | Same as digital_wallet | Type of the card number obtained when the Apple Pay or Google Pay token is decrypted: DPAN (Digital Primary Account Number) or FPAN (Funding Primary Account Number) |
moto_type | SALE, RECURRING_SALE, CAPTURE, for a MOTO (mail order / telephone order) payment | The moto_type value from the request |
custom_data | SALE, RECURRING_SALE, CAPTURE, if custom_data was sent in the request | Object that duplicates the arbitrary parameters passed in the payment request |
commission | DEBIT, RECURRING_DEBIT | Commission charged on top of the amount |
total_amount | DEBIT, RECURRING_DEBIT | Amount plus commission |
creditvoid_id | CREDITVOID | Refund/reversal transaction ID in Payment Platform. Every refund or reversal transaction, including a partial or declined one, has its own ID. trans_id is the ID of the original payment. |
creditvoid_date | CREDITVOID | Date of the refund/reversal |
chargeback_date | CHARGEBACK | System date of the chargeback |
bank_date | CHARGEBACK, when available | Bank date of the chargeback |
reason_code | CHARGEBACK, when available | Reason code of the chargeback |
The callback for each action, with successful and unsuccessful examples, is in Payment operation types.
Examples
The examples show the decoded body, one parameter per line. On the wire the body is URL-encoded, for example card=411111%2A%2A%2A%2A%2A%2A1111 and redirect_params%5BMD%5D=.... The hashes are calculated with the values from the Formula 2 worked example: payer email [email protected], password m3rch4ntP4ss and card 4111111111111111.
SALE, successful
action=SALE
result=SUCCESS
status=SETTLED
order_id=ORDER-1001
trans_id=1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
trans_date=2026-10-07 10:15:32
amount=10.00
currency=USD
card=411111******1111
card_expiration_date=01/2038
hash=08e0d6cf105fb585e5bfacb0852f6ab3
SALE, 3DS redirect
action=SALE
result=REDIRECT
status=3DS
order_id=ORDER-1002
trans_id=7c1e4f2a-9b3d-4e5f-8a6b-2d4c6e8f0a1b
trans_date=2026-10-07 10:20:05
amount=10.00
currency=USD
redirect_url=https://acs.examplebank.com/3ds
redirect_params[PaReq]=examplePaReqValue
redirect_params[MD]=exampleMDValue
redirect_method=POST
card=411111******1111
card_expiration_date=01/2038
hash=c4ce8a604b765dabe827c4c732a7ba51
The final result of this payment arrives in a later callback with the same trans_id.
SALE, declined
action=SALE
result=DECLINED
status=DECLINED
order_id=ORDER-1003
trans_id=5e8f1a3c-2b4d-4f6e-9a7c-3e5f7a9c1b2d
trans_date=2026-10-07 10:31:47
amount=10.00
currency=USD
decline_reason=Declined by processing.
card=411111******1111
card_expiration_date=01/2038
hash=6646616f389ef7f433b59d159159c540
CREDITVOID, partial refund
action=CREDITVOID
result=SUCCESS
status=SETTLED
order_id=ORDER-1001
trans_id=1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
creditvoid_id=3f6a9c2e-1d4b-4a7e-b5c8-6e9f2a4c7d1b
creditvoid_date=2026-10-08 09:00:12
amount=4.00
hash=08e0d6cf105fb585e5bfacb0852f6ab3
trans_id and hash are those of the original payment, and amount is the refunded amount. status stays SETTLED until the whole amount is refunded.
Optional parameters
The parameters below are sent only if they are selected in the admin panel, under Configuration → Protocol Mapping, option Add Data to: Callback, and only when Payment Platform has a value for them. Ask your account manager to enable the ones you need.
Transaction and merchant data
| Parameter | Description |
|---|---|
connector_name | Connector's name (payment gateway) |
rrn | Retrieval Reference Number value from the acquirer system |
arn | Acquirer Reference Number value from the acquirer system |
approval_code | Approval code value from the acquirer system |
gateway_id | Transaction identifier provided by the payment gateway |
extra_gateway_id | Additional transaction identifier provided by the payment gateway |
merchant_name | Merchant name |
merchant_key | Merchant key (CLIENT_KEY) value |
mid_name | MID name |
issuer_country | Issuer country |
issuer_bank | Issuer bank |
brand | Payment method brand used in the transaction |
payment_method | Payment method of the transaction, for example card or recurring |
extended_data | Transaction extended data |
initial_amount | Amount from the original payment request, before any later change of the amount |
payment_position | Position of the payment in the chain of recurring payments |
exchange_amount | Amount after the currency exchange. SALE, RECURRING_SALE and CAPTURE only, if a currency exchange was applied |
exchange_currency | Currency after the exchange. Same condition as exchange_amount |
exchange_rate | Rate used to make the exchange. Same condition as exchange_amount |
exchange_rate_base | Rate used in the double conversion to convert the original currency to the base currency. Same condition as exchange_amount |
Payer data
| Parameter | Description |
|---|---|
payer_first_name | Payer's first name |
payer_last_name | Payer's last name |
payer_birth_date | Payer's birth date |
payer_email | Payer's email |
payer_phone_country_code | Country code of the payer's phone |
payer_phone | Payer's phone |
payer_ip | Payer's IP address |
payer_country | Payer's country |
payer_state | Payer's state |
payer_city | Payer's city |
payer_district | Payer's district |
payer_address | Payer's address |
payer_address2 | Payer's additional address line |
payer_house_number | Payer's house number |
payer_zip | Payer's ZIP code |
Card-on-File attributes
initiator, sequence and source. See Payment attributes for their values and meaning.
Schedule data
| Parameter | Description |
|---|---|
next_payment_date_by_schedule | Date and time of the next charge by the schedule. Format: YYYY-MM-DD HH:MM:SS. Available when a schedule is applied. |
current_payment_sequence_by_schedule | Sequence number of this payment within the schedule, for example 7. Available when a schedule is applied. |
3DS authentication attributes
The 3DS attributes below can be configured (Protocol Mapping → Add Data to: Callback) and are returned only if Payment Platform receives them from the acquirer, from an MPI service configured for your account, or from your own MPI in mpi_data. Confirm the available fields with your account manager.
| Parameter | Description |
|---|---|
three_ds_server_trans_id | 3DS Server transaction ID. Identifies the authentication session end-to-end. In EMV 3-D Secure: threeDSServerTransID. |
ds_trans_id | Directory server transaction ID (Visa, Mastercard, or other scheme). In EMV 3-D Secure: dsTransID. |
acs_trans_id | ACS (issuing bank) transaction ID. In EMV 3-D Secure: acsTransID. |
xid | Main 3DS v1.0 transaction ID. Empty for 3DS v2 flows. |
trans_status | The authentication result. See trans_status values. In EMV 3-D Secure: transStatus. |
trans_status_reason | Reason code accompanying trans_status. Useful when the status is non-success. In EMV 3-D Secure: transStatusReason. |
eci | Electronic Commerce Indicator. Maps to liability shift conditions per scheme. See ECI values. |
protocol_version | 1.0.2, 2.1.0, 2.2.0, etc. Earlier versions of this documentation named it protocolVersion. |
authentication_flow | 01 for frictionless, 02 for challenge. Earlier versions of this documentation named it authenticationFlow. |
trans_status values
| Value | Meaning | Recommended action |
|---|---|---|
Y | Authenticated successfully. Liability shift to the issuer typically applies; confirm with your scheme rules and the eci value in the callback. | Proceed with the payment. |
N | Not authenticated. Cardholder failed verification. | Treat as declined; do not charge. |
U | Unable to authenticate. ACS could not complete (technical issue). | Decide per risk policy: decline, or fall back to non-3DS with full merchant liability. |
A | Attempted. Issuer not enrolled; merchant attempted authentication. | Liability shift varies by scheme; usually safe to proceed. |
C | Challenge required. The cardholder must complete the ACS challenge. | A follow-up callback arrives once the challenge finishes. |
R | Rejected by issuer. | Treat as declined. |
I | Informational only (3RI / 3DS-Requestor Initiated). | Not used in standard payment flows. |
ECI values
eci works alongside trans_status to determine liability:
05(Visa) /02(Mastercard): fully authenticated, liability shifts.06(Visa) /01(Mastercard): attempted authentication, liability shifts in most cases.07(Visa) /00(Mastercard): no authentication, full merchant liability.
Browser metadata attributes
Also configurable under Protocol Mapping → Add Data to: Callback. These fields carry the payer's browser data collected during the redirect / 3DS flow. If no data was collected, for example in a frictionless authentication without a redirect, the fields are not sent.
| Parameter | Example | Description |
|---|---|---|
browser_color_depth | 24 | Screen color depth in bits. |
browser_screen_height | 1080 | Screen height in pixels. |
browser_screen_width | 1920 | Screen width in pixels. |
browser_java_enabled | 0 | Java support flag, 1 or 0. |
browser_javascript_enabled | 1 | JavaScript availability flag, 1 or 0. |
browser_language | uk-UA | Language set in the browser. |
browser_timezone_offset | -180 | Minutes between UTC and local time. |
browser_user_agent | Mozilla/5.0 ... | User-Agent string. |
browser_accept_headers | text/html, ... | HTTP Accept header. |
browser_platform | Win32 | Payer's operating system. |