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/jsonUser-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
- Use secure HTTPS protocol
- 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:
- The difference between the current server time and the
X-Processing-Timestampheader value does not exceed theX-Processing-RecvWindowheader value - The
X-Processing-Keyheader value matches the value of the client's active public API access key - The
X-Processing-Signatureheader 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 typeid- Transaction identifier in the processing systemstatus- 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
| Attempt | Interval | Total Time |
|---|---|---|
| 1 | 61 sec | 61 sec |
| 2 | 76 sec | 137 sec |
| 3 | 141 sec | 278 sec |
| 4 | 361 sec | 594 sec |
| 5 | 685 sec | 1,279 sec |
| 6 | 1,356 sec | 2,635 sec |
| 7 | 2,461 sec | 5,096 sec |
| 8 | 4,156 sec | 9,252 sec |
| 9 | 6,621 sec | 15,873 sec |
| 10 | 10,060 sec | 25,933 sec (~7.2 hours) |