Verify Transactions

Never trust a client-side callback or redirect alone. Always verify a transaction on your server using the Monnify API before delivering goods, granting access, or crediting a wallet.

Verification by Payment Reference

Use this endpoint when you know your own paymentReference (the reference you generated and passed when initializing the transaction).

Verification by Transaction Reference

Use this when you have the transactionReference returned by Monnify (e.g. from a webhook payload).

Response Reference

verify-response.json
FieldDescription
paymentStatusThe authoritative payment status. See statuses below.
amountPaidActual amount received. Always verify this equals your expected amount.
totalPayableThe amount the customer was charged (may include fees if fee bearer is customer).
settlementAmountAmount that will be settled to your account after Monnify fees.
paymentMethodMethod used: ACCOUNT_TRANSFER, CARD, USSD, PHONE_NUMBER.
paymentSourceInformationFor bank transfers: the customer's actual account name and number. Useful for reconciliation and fraud checks.

Payment Status Values

StatusMeaningAction
PAIDFull payment received.Fulfill the order / grant access.
PARTIALLY_PAIDCustomer paid less than the required amount.Do not fulfill. Request the balance or issue a refund.
PENDINGPayment initiated but not yet confirmed.Wait for a webhook or re-poll after a short delay.
OVERPAIDCustomer paid more than the required amount.Fulfill the order. Refund the excess or credit the customer's wallet.
FAILEDPayment attempt failed.Do not fulfill. Notify the customer and offer a retry path.
REVERSEDPayment was reversed after confirmation.Suspend access / hold order if not already fulfilled.
EXPIREDThe checkout session expired before payment.Ask the customer to start a new payment session.

Using Webhooks Instead of Polling

Rather than only verifying on the redirect callback, configure your webhook URL to receive real-time payment notifications. This is especially important for:

  1. Customers who close the browser before the redirect completes.
  2. Reserved account payments that happen asynchronously.
  3. Direct debit charges triggered server-to-server.

See Webhooks & Event Types for details on how to validate the webhook signature and handle each event type.

Rate this page

How helpful is the content on this page?

Copyright © 2026 Monnify
instagramfacebookicon