Payment statuses
The states a payment moves through, and how to follow them.
A POST returns 202 once the payment is accepted. That is not the outcome. Read the outcome from status.
Collection statuses
| Status | Meaning | Final? |
|---|---|---|
accepted |
We have the request and started it. | No |
dispatched |
Sent to the provider. Waiting for the payer to approve. | No |
in_review |
Stopped for a check before it goes on. | No |
held |
Set aside while it waits. | No |
settled |
The payer paid and the money reached your wallet. | Yes |
failed |
The payment did not go through. failureReason says why. |
Yes |
expired |
It was not completed in time. | Yes |
Payout statuses
| Status | Meaning | Final? |
|---|---|---|
accepted |
We have the request. The amount is reserved from your wallet. | No |
dispatching |
Being sent to the provider. | No |
in_review |
Stopped for a check before it is sent. Common on large payouts. | No |
held |
Set aside while it waits to be sent. | No |
delivered |
The recipient was paid. | Yes |
failed |
The payout did not go through. failureReason says why. |
Ends the attempt; refunded can follow |
refunded |
A failed payout’s money went back to your wallet. | Yes |
in_review and held are normal. They are not errors. Do not retry or cancel a payment because it sits in one of them. Wait for it to move on.
Other values can appear. Do not treat these lists as closed. Treat any status you do not know as still in progress, and keep following the payment.
Follow a payment
Two ways. Use both if you can.
- Webhooks. iSmartPay calls you when the status changes. See Webhooks.
- Polling. Call
GET /v1/collections/{reference}orGET /v1/payouts/{reference}. Start with a few seconds between calls and back off. Stop at a final status.
Webhooks can be late or missed, so poll any payment that has stayed in progress longer than you expect.
Failed payments
To try again after a failed payment, create a new payment with a new reference and a new Idempotency-Key.