External account verification
Use Numeral to verify external accounts, maximise success rate, and reduce fraud
With Numeral, companies can verify their external accounts prior to sending or collecting payments. Verifying external accounts is key to maximising payment success rate and reducing fraud.
Verifications include:
- Account number structure
- Bank code
- Account holder, based on name and / or company registration number
- Account status
This feature is available in the dashboard and through the API.
Verifications
Verification | Description |
---|---|
Account number structurevalid_account_number | Numeral verifies the account number structure, including:
|
Bank codematching_account_number_and_bank_code | Numeral verifies that the bank code matches the account number. In case it does not match, the correct bank code is returned |
Account holdermatching_account_holder | For supported banks, Numeral retrieves the account holder from the bank holding the account and compares it your data. |
Account statusactive_account | For supported banks, Numeral retrieves the account status from the bank holding the account. |
Use the feature
Verify an external account in the dashboard
To verify an external account in the dashboard, create an external account or go to an existing external account and click on Verify account under the Actions menu.
Verify an external account with the API
To verify an external account with the API, use the Verify external account endpoint.
The process is asynchronous, meaning the response indicates pending_verification
with all verifications set to null
.
Numeral then gathers results from the different sources. This process can take up to 30 seconds.
Once all results are available, a verified
event is sent, with all verifications' results. Alternatively, you can retrieve the external_account
to get all verifications' results.
curl --request POST \
--url https://sandbox.numeral.io/v1/external_accounts/39446492-3d63-4a3c-8f96-a8ed8be91c0c/verify \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: Your_API_Key'
{
"id": "39446492-3d63-4a3c-8f96-a8ed8be91c0c",
"object": "external_account",
"type": "legal_entity",
"status": "approved",
"status_details": "",
"name": "Acme Corp. settling account",
"holder_name": "Acme Corp.",
"holder_address": {
"country": "",
"line_1": "",
"line_2": "",
"building_number": "",
"street_name": "",
"postal_code": "",
"region_state": "",
"city": ""
},
"account_number": "FR1212739000506541967515Q48",
"bank_code": "SOMEBIC0XXX",
"counterparty_id": null,
"company_registration_number": "123456789",
"company_registration_number_type": "fr_siren",
"metadata": {},
"custom_fields": {},
"account_verification": {
"result": "pending_verification",
"valid_account_number": null,
"matching_account_number_and_bank_code": null,
"matching_account_holder": null,
"active_account": null,
"created_at": null
},
"created_at": "2024-05-22T12:34:34.721347Z",
"disabled_at": null
}
{
"id": "39446492-3d63-4a3c-8f96-a8ed8be91c0c",
"object": "external_account",
"type": "legal_entity",
"status": "approved",
"status_details": "",
"name": "Acme Corp. settling account",
"holder_name": "Acme Corp.",
"holder_address": {
"country": "",
"line_1": "",
"line_2": "",
"building_number": "",
"street_name": "",
"postal_code": "",
"region_state": "",
"city": ""
},
"account_number": "FR1212739000506541967515Q48",
"bank_code": "SOMEBIC0XXX",
"counterparty_id": null,
"company_registration_number": "123456789",
"company_registration_number_type": "fr_siren",
"metadata": {},
"custom_fields": {},
"account_verification": {
"result": "valid",
"valid_account_number": {
"result": "valid",
"details": {
"reason": "",
"expected_value": "",
"message": ""
}
},
"matching_account_number_and_bank_code": {
"result": "valid",
"details": {
"reason": "",
"expected_value": "",
"message": ""
}
},
"matching_account_holder": {
"result": "valid",
"details": {
"reason": "",
"expected_value": "",
"message": ""
}
},
"active_account": {
"result": "valid",
"details": {
"reason": "",
"expected_value": "",
"message": ""
}
},
"created_at": "2024-05-22T12:35:01.892244399Z"
},
"created_at": "2024-05-22T12:34:34.721347Z",
"disabled_at": null
},
Test cases for sandbox
You will find here all test cases supported in our sandbox environment.
Coverage
Data providers
Numeral supports a number of data providers to verify accounts:
- IBAN.com
- SurePay
- SEPA Mail Diamond
- Swift (planned)
Updated about 1 month ago