Callback

The merchant can track status changes via asynchronous callbacks.

The callback URL is sent in the request body in the result_url field

A callback is a POST request with an HMAC-authenticated JSON body. Signature is formed exactly like an API request signature. The callback body always matches the response body of the corresponding status response.

Payment callback body example:

{
  "success": true,
  "payment_id": "321",
  "order_id": "123",
  "currency": "USD",
  "create_date": "2021-01-20 16:51:58",
  "result_date": "2021-01-20 16:57:49",
  "card_pan": "444444******1234",
  "transaction_status": "completed",
  "status_code": null,
  "status_description": null,
  "amount": "3.77",
  "amount_gross": "4.00",
  "transactions": [],
  "signature": "d08f44dea934b8d72ce21207f3698006dc7f9ef85655adb3d2a28be72dbc340c"
}

Key deposit callback fields

FieldMeaning
transaction_statusFinal transaction status (see Transaction statuses)
order_idOrder / payment ID on your side
payment_idTransaction ID on our side
amountAmount added to the merchant balance
amount_grossAmount charged from the customer
currencyAlpha currency code (e.g. USD)
status_codecan be null or number (see the Error Codes)
status_descriptioncan be null or string (see the Error Codes)

Invoice callback body example

Invoice callback body example:

{
  "invoice_id": "321",
  "transaction_status": "completed",
  "order_id": "123",
  "amount": "98.00",
  "amount_gross": "100.00",
  "currency": "USD",
  "created_at": null,
  "updated_at": null,
  "status_code": null,
  "status_description": null,
  "signature": "b19e0d164a23b8fcc547795a237075478d23e6963deacec5404cc50caf0ddfc4"
}

Payout callback body example

Payout callback body example:

{
  "order_id": "123",
  "payout_id": "321",
  "payout_status": "payout_completed",
  "amount": "100.00",
  "full_amount": "105.00",
  "amount_gate": "100.00",
  "status_code": null,
  "status_description": null,
  "currency_gate": "USD",
  "success": true,
  "signature": "7f0950cdf9aca9344a4b0506e9e20cc13561546ec63a4373f31d2251d9575f42"
}

Key payout callback fields

FieldMeaning
payout_statusFinal payout status (see Transaction statuses)
order_idOrder / payout ID on your side
payout_idTransaction ID on our side
amountActual amount received by user
full_amountAmount debited from the merchant balance
amount_gateFor a case when processed currency different from request currency. By default same as amount
currency_gateAlpha currency code (e.g. USD)
status_codecan be null or number (see the Error Codes)
status_descriptioncan be null or string (see the Error Codes)

Verifying the callback signature

The signature above was created with the key c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0. When building the string to sign:

exclude fields whose value is an object (null, [], ); convert a boolean true to the string "true".

The resulting string for the example is:

123|2021-01-20T16:51:582Z|2021-01-20T16:57:492Z|3.77|321|4.00|444444******1234|USD|completed|true