Skip to main content
POST
/
verify-account
curl --request POST \ --url https://api.paycrest.io/v2/verify-account \ --header 'Content-Type: application/json' \ --data ' { "institution": "GTBINGLA", "accountIdentifier": "0123456789" } '
{
  "status": "success",
  "message": "Account name was fetched successfully",
  "data": "JOHN DOE"
}
Verify a bank or mobile money account before creating an order. Currency is determined by the institution code (no separate currency field on this endpoint).

Mobile money identifiers

For institutions with type mobile_money, the API normalizes accountIdentifier before calling providers:
  • Strips + and non-digit characters
  • Removes a leading domestic 0 and adds the country dial code when missing
FiatDial code
KES254
UGX256
TZS255
GHS233
MWK265
KES M-Pesa example: 0712345678, +254712345678, and 254712345678 all normalize to 254712345678. You can send local or international MSISDN format; normalization also runs on order create for the same institution types.

KES Till and Paybill

Phone normalization is not applied when:
  • metadata indicates Till or Paybill (same shape as recipient metadata on order create), or
  • The identifier looks like Paybill (businessNumber|reference) or Till (fewer than 9 digits)
Pass optional metadata on the verify request for Till/Paybill validation.

Response data

  • A real name (e.g. "JOHN DOE") — use that exact string as accountName on the order.
  • "OK" — account treated as valid but name lookup is unavailable for that corridor (common for some KES/GHS/UGX/MWK mobile flows). Provide your own accountName on the order.
The same checks run again when you create an order; calling verify first improves checkout UX.

Body

application/json
institution
string
required

Institution code (SWIFT code or custom PayCrest code ending with 'PC'). See Code Standards for details.

accountIdentifier
string
required

Bank account number, mobile wallet MSISDN, Till/Paybill identifier, or other account identifier.

For mobile_money institutions, the API normalizes phone numbers before verification: strips +, removes a leading domestic 0, and adds the country dial code when missing (KES 254, UGX 256, TZS 255, GHS 233, MWK 265). Examples for KES M-Pesa — 0712345678, +254712345678, and 254712345678 all normalize to 254712345678.

KES Till/Paybill identifiers are not normalized when metadata indicates Till/Paybill, or when the value looks like Paybill (business|reference) or Till (fewer than 9 digits).

metadata
object

Optional. Used for KES Till/Paybill verify so phone normalization is not applied. Same semantics as recipient metadata on order create (e.g. channel Till or Paybill, businessNumber).

Response

Account verified

status
string
Example:

"success"

message
string
Example:

"Account name was fetched successfully"

data
string

Resolved account name, or "OK" when valid but name lookup is unavailable

Example:

"JOHN DOE"