Docs
Payment Life Cycle

Payment Life Cycle

Learn about the different states of a Splice Payment.

The Splice payment life cycle refers to the stages a payment moves through, from when a client application creates the payment on the Splice platform to its successful completion or failure.

Where will you see these states?

When you look at Recent Payments in your Splice dashboard, you will see that each payment has a status field that represents the current state of that payment. If you are directly pulling payments from the API, you will see that each payment object has a pay_status field that denotes the state of the payment. Next, let have a look at all the payment states.

Payment states

Created

A payment is in a Created state after its creation on the /payments/new endpoint. During the creation phase of the payment we calculate the FX (Foreign Exchange) for this payment and assign it a timeout of 60 seconds. If you try to process a payment with a timeout'ed FX, we will fail it and move the payment to a Failed state. More about the Failed state below.

Processing

Once you submit a payment for processing on the /payments/process endpoint, we move this payment to a Processing state and get to work processing it.

ReceivingAccepted

We update a payment to this state when the receiving institution has accepted that payment.

DeliverySuccess

Once the receiving institution completets a payout, we update the payment to DeliverySuccess. This means the funds were successfully delivered to the recipient.

Settled

We update the payment to this state after DeliverySuccess, once we have successfully debited the sending institution and credited the receiving institution.

Complete

The API moves a payment to the Complete state after it reaches the Settled state and successfully notifies the sending institution about the settled payment.

Failed

We move a payment to a Failed state for several reasons. First, when processing a payment whose FX rate has expired. Second, when processing a payment without sufficient funds in the sender's account. Third, when attempting a payment where the amount_to_be_received exceeds the max_receiving_limit of the receiving institution. Another instance of payment failure occurs when the receiving institution rejects the payment - this can happen if their system is experiencing downtime or they are temporarily unable to process transactions. In the case of M-PESA, a payment can fail due to a timeout on their platform. Finally, a payment can fail when the receiving institution lacks sufficient funds to execute the payout.