Skip to main content
POST
/
verify-account
curl --request POST \
  --url https://api.paycrest.io/v1/verify-account \
  --header 'Content-Type: application/json' \
  --data '
{
  "institution": "GTBINGLA",
  "accountIdentifier": "0123456789"
}
'
{
  "status": "success",
  "message": "Account name was fetched successfully",
  "data": "JOHN DOE"
}
Verify bank or mobile money account details before creating an order (legacy v1 API). Behavior matches v2 for request shape and mobile money normalization — see Verify Account (v2) for mobile MSISDN formats, optional metadata (KES Till/Paybill), and when data is "OK" vs a resolved name.

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"