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.