Verify Token Response Codes

The verifyToken API returns a different set of status codes than standard gateway responses. Use this table only for interpreting results from the verifyToken request.

This applies when confirming payment status after token creation
(e.g., webhook failed, reconciliation, status polling).


Result Codes

CodeMeaning
000Transaction paid
001Authorized (not yet captured/settled)
002Overpaid / underpaid
003Pending at bank
005Queued for authorization
007Partially paid / split payment pending
800–899Reserved for platform use
801Missing CompanyToken
802CompanyToken does not exist
803Invalid request name
804XML error
900Transaction not yet paid
901Transaction declined
902Data mismatch — field provided in explanation
903Payment time limit exceeded
904Transaction cancelled
950Missing mandatory field(s) — field name included

Key Response Fields

FieldDescription
ResultStatus code (see table above)
ResultExplanationHuman-readable message
CustomerNameShopper name (returned if paid/failed)
CustomerCreditLast 4 digits of card
CustomerCreditTypeCard type
TransactionApprovalApproval number (if paid)
TransactionCurrencyFinal charged currency
TransactionAmountAmount paid
TransactionNetAmountNet amount after fees
TransactionSettlementDateSettlement date
TransactionRollingReserveAmountReserve held
TransactionRollingReserveDateReserve release date
FraudAlertFraud status indicator (see below)
FraudExplanationFraud detail / reason
CustomerPhonePhone
CustomerCountryCountry
CustomerAddressStreet address
CustomerCityCity
CustomerZipPostal code
MobilePaymentRequestMobile money status
AccRefInternal accounting reference

Not all fields return for all states (e.g. only paid/failed return customer info)


Fraud Codes

CodeMeaning
000Genuine transaction
001Low risk (not checked)
002Suspected fraud
003Fraud cleared (merchant manually cleared)
004Suspect fraud alert
005Fraud cleared (system)
006Blacklisted / confirmed fraud

Notes

  • A result of 900 means the payment hasn't happened yetnot an error
  • 001 means authorized but not yet captured
  • 002 is rare — customer paid a different amount
  • If callback fails, system may email merchant after ~30 min
    (DPO’s fraud/monitoring logic)

Developer Tip

Use this to interpret verifyToken:

If ResultThen…
000Mark as paid
001Await settlement / capture
900Pending — retry later
901Decline — retry allowed
903Token expired — re-initiate checkout
904User canceled checkout
002Flag for manual review (amount mismatch)

Recommended Usage

  • Poll only if webhook fails
  • Log all verifyToken responses for audit
  • Compare CompanyRef, Amount, Currency to your DB before marking paid