payment_id returned by the Generate Payment endpoint.
In this endpoint, it is crucial to ensure that the “success” field is true before attempting to parse the API’s content. Once confirmed, the payload will reveal the precise status of the transaction at the time of the API call. The transaction status can be one of the following:
- SUCCESS: This indicates that the transaction has been confirmed and the payment was successful.
- PENDING: The session is still active, and a payment can still be confirmed.
- EXPIRED: The session has expired, and no payment is expected.
- FAILURE: The payment has failed, and details regarding the failure, including the reason, are accessible via the API.
Path Parameters
The ID of the payment to verify.
Response Fields
Payment method used. One of
card, wallet (Flouci wallet), mpayment (mobile switch), or NA.Amount paid in millimes.
Payment status:
SUCCESS, PENDING, EXPIRED, FAILURE, PREAUTH_SUCCESS, or SYSTEM_FAILURE.Buyer information. Shape depends on the payment
type.Your merchant-supplied reference passed at payment creation. May be
null.Where this transaction sits in the settlement lifecycle. See Settlement Status below. One of
PROCESSING, AVAILABLE, IN_PAYOUT, PAID, or NOT_APPLICABLE.Settlement Status
Every transaction returned by the Verify endpoint carries asettlement_status field describing where the funds sit between the moment of payment and the moment they reach your bank account.
settlement_status is independent of status. A SUCCESS payment can still be PROCESSING (settling), AVAILABLE (in your balance), IN_PAYOUT (committed to a payout), or PAID (wired to your bank). Existing fields are unchanged — clients that ignore settlement_status see no behavior change.Lifecycle
On the happy path of a card payment, the status moves forward through these stages:PROCESSING and land directly in AVAILABLE on success — they never enter the card payout pipeline.
The five values
| Value | Meaning |
|---|---|
PROCESSING | Card payment succeeded but is inside the T+1 settlement window (the day-after-midnight cutoff). For POS, also used while a payment authorization is still in flight. |
AVAILABLE | Eligible for inclusion in the next payout. Reached automatically once a card payment passes T+1, or immediately for wallet, mobile-switch, and POS payments. |
IN_PAYOUT | Committed to a payout request that has been initiated, but the bank wire has not yet been sent. Brief in-flight window. |
PAID | Payout wire transfer has been sent to your bank account. Terminal state. |
NOT_APPLICABLE | Transaction is outside the settlement lifecycle — failed, expired, refunded, cancelled, pending authorization, or pre-authorized but not finalized. |
Lifecycle by payment type
| Payment type | Possible values |
|---|---|
Online card (type=card) | PROCESSING → AVAILABLE → IN_PAYOUT → PAID, plus NOT_APPLICABLE |
Online wallet (type=wallet) | AVAILABLE on success, NOT_APPLICABLE on failure. Never PROCESSING, IN_PAYOUT, or PAID. |
Online mobile switch (type=mpayment) | Same as wallet. |
| POS | PROCESSING (auth pending), AVAILABLE (settled into wallet), NOT_APPLICABLE (failed / refunded). Never IN_PAYOUT or PAID — POS doesn’t enter the gateway payout pipeline. |
How to use it
Is this payment in my available balance?
Is this payment in my available balance?
Look for
settlement_status == "AVAILABLE".Will this be on my next payout?
Will this be on my next payout?
Once you request a payout,
AVAILABLE transactions move to IN_PAYOUT, then to PAID once the wire is sent.Has this hit my bank account?
Has this hit my bank account?
settlement_status == "PAID". This is the terminal state.Why isn't this showing up in my balance?
Why isn't this showing up in my balance?
Check
status first — if the payment failed, expired, or is still pending, settlement_status will be NOT_APPLICABLE. Otherwise it is most likely PROCESSING (inside the T+1 window for a card payment).