Bank Account Verification
Bank account verification allows you to validate recipient bank account details before initiating payout transactions. This helps reduce failed payouts, confirms account holder information when available, and improves reconciliation.
Introduction
When processing bank payouts, recipient account validation is not performed as part of the payout request. Verifying the account beforehand lets you:
- Reduce failed payouts — Confirm the account exists and is open before sending funds
- Match identity — Optionally verify that the account holder name or identity matches (e.g. SA ID, passport, or business registration)
- Improve UX — Show the account holder name for confirmation before disbursement
- Avoid wasted fees — Catch invalid or closed accounts early
Bank account verification is currently available for South Africa (ZAR). Use the same bank codes as for ZAR payouts.
Prerequisites
- CrissCross Integration: You have integrated with CrissCross and have access to the API.
- Authentication: Valid API credentials and Bearer token. See Authentication.
- Merchant ID: Your merchant ID for API requests.
- Supported market: ZAR (South Africa). Contact CrissCross for other markets.
API Endpoint
Endpoint: POST https://api.crisscross.money/v1/verification/bank-account
Authentication: Bearer Token (required)
Request Format
Minimum required fields: accountNumber, bankCode, country, merchantId. Optionally include accountHolder to verify name/identity match.
With optional account holder details (for identity/name matching):
Request Parameters
accountHolder (optional):
- type:
individualorbusiness - Individual (South African ID):
initials,familyName,identityDocument: { country, number }(2-letter country, e.g. ZA) - Individual (passport):
initials,familyName,passport: { country, number }for foreign account holders - Business:
name,registration: { country, number }(business registration number)
Response Format
Response Fields
Example Usage
Success (200 OK):
Unverified (200 OK):
Integration Workflow
- Collect recipient details — Account number, bank code (use ZAR bank codes), and optionally name/identity for matching.
- Verify before payout — Call
POST /verification/bank-accountbefore creating the payout. - Confirm with user — If verified, show
accountHolderNamefor confirmation (e.g. “Send payout to J Clegg?”). - Create payout — If verified (or if you proceed anyway), create the payout with Single Payout or Bulk Payout, using the same
accountNumberandbankCode.
Best Practices
- Verify before processing — Call verification for ZAR bank payouts when you want to reduce failures and show account holder name.
- Use same bank codes — Use the same
bankCodevalues for verification and for the payout request; see South Africa — Bank codes. - Optional identity matching — Send
accountHolderwhen you have SA ID, passport, or business registration to verify the account holder. - Handle unverified — If
verifiedis false, you can still attempt the payout or ask the user to confirm/update details. - Audit trail — Log verification results with payout transactions for reconciliation.
Supported Markets
Bank account verification is currently available for:
- South Africa (ZAF): ZAR bank accounts. Use bank codes from the South Africa payout guide.
Support for additional markets may be available. Contact CrissCross support for your use case.
Related
- South Africa Payouts — ZAR payouts and bank codes
- Bank Transfers — Payout request shape for bank accounts
- Verification API Reference — Full request/response schema