Skip to main content

Callbacks

General Information

  • Represents an HTTP POST request to the client's system at a URL configured in the personal account
  • Data in the request and response body is available in JSON format
  • The request contains headers:
    • Content-Type: application/json
    • User-Agent: information about the calling system
  • Dates are transmitted in UTC in ISO 8601 format. For example: 2024-07-02T12:50:30Z

Callback URL Requirements

  1. Use secure HTTPS protocol
  2. Use domain names, not IP addresses

Authentication

Authentication for callbacks is performed by sending headers in the request, similar to the headers for API request authorization (see Authorization section).

Callback Verification

To avoid fraud, the client's system must verify the specified callback header values as follows:

  1. The difference between the current server time and the X-Processing-Timestamp header value does not exceed the X-Processing-RecvWindow header value
  2. The X-Processing-Key header value matches the value of the client's active public API access key
  3. The X-Processing-Signature header value matches the signature of the request data with the secret key

Callback Handling

Successful Response

If the callback request is successful, the client's system must respond with HTTP code 200 OK.

Idempotency

If after a successful response to a callback request, a similar request arrives again, it is necessary to generate the same response as for the previous one.

Requests are considered similar if they have identical values for the following parameters in the request body:

  • type - Transaction type
  • id - Transaction identifier in the processing system
  • status - Transaction status

Transaction Uniqueness

To determine whether multiple callbacks relate to one transaction or different ones, use the combination of type and id parameters from the root element in the callback JSON. This combination is unique for all transactions.

Retry Policy

Non-Retry Codes

The callback will not be retried when receiving a response from the client's system with the following HTTP codes:

  • 1xx
  • 3xx
  • 4xx

Retry Codes

In case of a response with HTTP code 5xx, the callback remains in the send queue and send attempts continue according to an exponential backoff policy.

Backoff calculation formula:

60 seconds + {number of retries}^4

Maximum number of retry attempts: 10

Retry Intervals

AttemptIntervalTotal Time
161 sec61 sec
276 sec137 sec
3141 sec278 sec
4361 sec594 sec
5685 sec1,279 sec
61,356 sec2,635 sec
72,461 sec5,096 sec
84,156 sec9,252 sec
96,621 sec15,873 sec
1010,060 sec25,933 sec (~7.2 hours)