Skip to main content
This endpoint allows you to check the status of a payment using the 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.
To confirm a payment, it is essential to verify that the “success” field is true and the status is “SUCCESS”. It is advisable to invoke this function upon receiving a success or failure webhook to confirm the transaction’s status. However, it is important to avoid making multiple successive calls (pings) to prevent rate limiting and potential IP bans.

Path Parameters

string
required
The ID of the payment to verify.

Response Fields

string
required
Payment method used. One of card, wallet (Flouci wallet), mpayment (mobile switch), or NA.
integer
required
Amount paid in millimes.
string
required
Payment status: SUCCESS, PENDING, EXPIRED, FAILURE, PREAUTH_SUCCESS, or SYSTEM_FAILURE.
object
Buyer information. Shape depends on the payment type.
string
Your merchant-supplied reference passed at payment creation. May be null.
string
required
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 a settlement_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:
Wallet, mobile-switch, and POS payments skip PROCESSING and land directly in AVAILABLE on success — they never enter the card payout pipeline.

The five values

Lifecycle by payment type

How to use it

Look for settlement_status == "AVAILABLE".
Once you request a payout, AVAILABLE transactions move to IN_PAYOUT, then to PAID once the wire is sent.
settlement_status == "PAID". This is the terminal state.
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).
For bookkeeping, combine both fields: a transaction is “money that belongs to you” only when status == "SUCCESS" and settlement_status is one of AVAILABLE, IN_PAYOUT, or PAID.