One-Off Payment Lifecycle

Understand the different states a payment can pass through as it is paid

Each payment progresses through a number of states as it is first authorised by the user, then processed by their bank. This can be tracked via the payment's status attribute, which can be queried at any time using the GET /v1/one-off-payments/{paymentId} endpoint, or by setting up a webhook listener. See Monitoring One-Off Payment Progress for details.

State diagram

Akahu's one-off payment status flow diagram

Statuses and reason codes

For certain payment statuses, more granular information about the reason for that status can be found in the status_reason.code.
The following table lists the various statuses and their possible reason codes:

StatusReason CodeDescription
READY-The payment has been created and is awaiting user authorisation.
AUTHORISED-The user has authorised the payment with their bank.
SUBMITTEDPENDINGThe payment request has been accepted by the user's bank and is undergoing preliminary checks or has been queued for processing.
SETTLEMENT_IN_PROGRESSPreliminary checks have been completed by the bank. A payment in this state is generally expected to execute successfully, however may not be completed in some scenarios such as bank failures and failed fraud assessment.
SENT*-Payment settlement has completed.
CANCELLED*TIMED_OUTThe payment was not authorised by the user before the specified timeout.
USER_CANCELLEDThe user cancelled the payment
APP_CANCELLEDThe payment was cancelled via API call.
FAILED*REJECTEDThe payment was rejected, either by Akahu (i.e. due to a failed fraud check), or by the bank.
BANK_ERRORThe payment has failed due to an error at the bank.
BANK_ERROR_INDETERMINATEThe bank returned an error during payment initiation and it is unclear whether the payment has or will be processed.
INTERNAL_ERRORThe payment has failed due to an internal error at Akahu.

* These statuses are terminal - the payment will not change after reaching this state.


Did this page help you?