Card Verification
Card Verification
Card verification is used to verify the payment account before payment: to confirm whether the account is valid and to determine whether the cardholder's name matches. Usually with API Payment Use it together, and initiate a payment after the card is verified.
Judgment process
Card inspection results are divided into three layers, which must be judged in order: When the previous floor is inconclusive, do not look at the next floor.
orderStatusPENDINGThe results are undecided, the platform will automatically retry; poll the query interface to get the results, no orders will be placed for the time beingFAILEDThe request itself failed (channel exception, parameter error, etc.) and can be re-initiatedSUCCESSRequest succeeded, proceed to the next level of judgmentaccountStatusJudge only when success
VALIDThe account is valid, proceed to the next level of judgmentINVALIDInvalid account, do not initiate paymentUNKNOWNCan't determine if the account is valid, don't continue to judge the nameaccountNameMatchResultJudge only when success + valid
MATCHName matches, can initiate paymentNOT_MATCHName mismatch, first check account nameUNKNOWNThe channel cannot determine whether the names match, it is recommended to checkFAILED only means that the verification request failed, not that the account is invalid. UNKNOWN means that a name was provided but the channel could not determine a match. When accountNameMatchResult=UNKNOWN, accountName may still be returned, and the platform passes it through unchanged.
Works with API payments
Payments on behalf of others Only identify the account, do not verify the payee name, it is recommended that you perform a card verification before making your first payment to an account:
- Get your payout account info.
- Call the card check and look up the final result.
- The account is valid and the name matches before initiating the payment; the other results are first checked against the account or account name.
Recommended actions for different card verification conclusions:
VALID+MATCH: Payments can be initiated.INVALIDor accountUNKNOWN: Do not pay; verify the account or ask the user to use a different account.NOT_MATCHor nameUNKNOWN: Confirm the account name with the user, then decide according to your risk policy.FAILEDorPENDING: Handle verification first (retry / poll); do not place the order yet.
By validating the card, you only represent that the account is valid and the name matches. Not guaranteed Payments are always successful - payments can still fail due to insufficient funds, channel limits, risk blocking, and more.
Interface Guidelines
- Initiate verification:
POST /open-api/inquiry-account - Query verification result:
POST /open-api/inquiry-account/query
The request structure is consistent with the payment interface (appId / sign / param). Focus on the following parameters:
| Specs | Description |
|---|---|
countryCode | Country code: ID / MY |
mchOrderId | Merchant card verification order identification, unique |
accountType | Account type, e.g. BANK / EWALLET / DUITNOWPROXY |
accountNo | Payout to: bank account, phone number, or DuitNow account |
accountName | Optional; if provided, name matching is performed. If omitted, the result is null. |
The response highlights orderStatus, accountStatus, and accountNameMatchResult; if the request fails, check failedCode / failedMessage.
ID (Indonesia) and MY (Malaysia) are currently supported. Account Verification must be enabled separately; contact your account manager.
For other fields and the complete enumeration, see the Account Verification API and the Query Verification Result API.