Skip to content
iSmartPay Developers
Esc
↑↓navigate↵open⌘Jpreview
On this page

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} or GET /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.

Was this page helpful?