Page cover

Callbacks

Description of API notifications

Asynchronous payments are very popular with cryptocurrencies. In the deposit flow, you have to generate an address and pass it to your client. This will be his deposit address which he will be reusing during his lifetime with you. In the payment flow, we will notify you about any incoming payments with callbacks.

The owner of the merchant can set up a callback URL manually in the merchant's settings. Upon processing payments, Citron will send you notifications in JSON format with all required information about the transaction such as amount and status.

Callback retry schedule: 1, 5, 10, 15, 20, 30, 60, 90, 120, 150, 180, 210, 240 minutes. Every time a user makes a deposit or our system sends a withdrawal into the blockchain, you will receive a callback. Callbacks contain all the important information about the transaction:

  • status

  • currency

  • amount

  • blockchain transaction's hash

  • address

  • fees

  • number of confirmations

  • etc

Attention

Attention

In the case of a successful validation of the callback, your system has to respond with HTTP Code: 200 OK. No additional parameters are required in the response body.

Otherwise, we will keep the callback in our sending queue and will continue the attempts according to the schedule.

Attention

Hint 1

When a user sends you the same amount on the same address you will receive very similar callbacks. In order to understand whether you see several callbacks for the one transaction or if there was more than one transaction, you can use the "ID" parameter from the root element in the callback JSON. This parameter is unique for all transactions from our end.

Hint 2

If a user complains that they made a deposit and can't see this deposit on their account we recommend that you do the following steps:

  • check the transaction in our backoffice interface.

  • if it is confirmed, check the "Transaction info" section to see what your system responded to our callbacks.

  • if we can't deliver you the callbacks, check the callback handler on your end.

  • if the transaction is not confirmed in our system, go to a blockchain explorer and check if this transaction has a minimum number of confirmations.

  • if it doesn't have the defined number of confirmations the user needs to wait until the minimum number of confirmations has been reached.

  • if the transaction has the minimum number of confirmations, please contact our support team.

Here you can find the information about the minimum number of confirmations for each cryptocurrency:

Here you can find the examples of the specific callback for each type of operation.

Last updated

Was this helpful?