Pay
Receive notifications about outgoing Pix payments
After you broadcast a transaction with our endpoint, kamiPay will keep you updated on the progress of this payment using our webhooks so you don't need to manually check status endpoints from your backend.
Handling Webhook Responses
The payment process happens in two main steps, and you'll receive different webhook notifications for each:
1. Blockchain Transfer
The first step in the payment process is to send a transaction over the blockchain:
Mined
This status indicates the transaction is confirmed in the blockchain so bank instruction can kick in.
Dropped, not_found or reverted
These are statuses that indicate that the operation won't continue for the broadcasted transaction and you will need to retry. Money won't be deducted from your wallet in this case.
2. Bank Payment Process
The second step of the payment is initiated once the transaction was confirmed and received by our bank. Our webhooks will continue to notify you through that flow:
Processing
This status indicates that the money is received and the bank initiated the payment, which may end up successfully or be rejected. If successful, the receiver's bank will see the notification only a few seconds later.
Done
If payment was successful, you will receive the bank transaction information so you can share with the receiver as proof of payment. It's important to mention that this status is when we already have all the final settlement and the sender and receiver banks have confirmed the payment. In most cases, the receiver already gets the confirmation in their machine if it's a merchant, before this status is received and when the processing status begins.
Failed
This status indicates that the payment attempt failed. This can happen for various reasons, some for instance can be that the QR code expired before you pay, or for any other technical reason.
In all cases, the money is refunded to the wallet, so you will get a deposit in your wallet with the amount of USDT paid.
If external_id
is not provided, all webhooks will come with null
value for that field. We strongly recommend all users to pass an external_id to this endpoint for better tracking and monitoring.