Validate payment
Validate IBAN
IBANs follow a specific algorithm to ensure that the chance of an error is minimized. You can query it individually or with other inputs
Validate IBAN and BIC
You might want to check that the IBAN (beneficiary’s account) is from the right BIC (bank). It’s helpful when you ask for both fields in the UI.
Validate bank identifier
When sending local transfers, you might want to ensure that the customer input for the bank identifier (BIC, sort code, ABA routing number,
clearingnummer…) is correct. You need to clarify the country of that local bank identifier, so we know what you’re dealing with.
Validate account number
Some account numbers can be validated through specific algorithms.
Differences in corridor requirements
When working with different providers in various corridors, there can be discrepancies in how they handle inputs. The most common variation occurs when there are two identifiers for the bank—such as a bank code and a branch code. Some providers expect separate fields for each identifier, while others require the two to be combined into a single string. Our API is designed to accommodate these differences and aims to support the well-known formatting patterns used by different providers.
Country | Possible UI fields | Supported patterns |
---|---|---|
Brazil | Bank code (AAA ), branch code (BBBB ) | - Concatenated: clearingSystemMemberId: AAABBBB - Separated: clearingSystemMemberId: AAA , branchId: BBBB |
Canada | Institution number (AAA ), transit number (BBBBB ) | - Concatenated: clearingSystemMemberId: AAABBBBB - Separated: clearingSystemMemberId: AAA , branchId: BBBBB |
Japan | Bank code (AAAA ), branch code (BBB ) | - Concatenated: clearingSystemMemberId: AAAABBB - Separated: clearingSystemMemberId: AAAA , branchId: BBB |
Validate chain of intermediaries
When processing payments that involve an intermediary bank, you might want to ensure that the customer input for the intermediary BICs is correct and appropriate for the creditor agent and currency. By validating this information, we help confirm that the intermediary bank is suitable for the transaction, preventing potential routing errors.
Table with the alert codes
Here’s the list of the alerts with explanations, which you can use in UI localization. In some cases, there can be more than one alert code in our response.
Code | Explanation | Example |
---|---|---|
CREDITOR_IBAN_INVALID_FORMAT | The IBAN doesn’t follow the correct format or structure. | GT01 |
CREDITOR_IBAN_INVALID_COUNTRY_CODE | The IBAN country code is not a valid ISO 3166-1 alpha-2 code. | XY02 |
CREDITOR_IBAN_COUNTRY_NOT_SUPPORTED | The entered country does not support IBAN standards. | US03 |
CREDITOR_IBAN_INVALID_BBAN_STRUCTURE | The IBAN’s BBAN has an incorrect length or contains invalid characters. | GB01DEEL999LETSGO |
CREDITOR_IBAN_INCORRECT_CHECK_DIGITS | The IBAN is incorrect due to check digits. | LT043250045821439861 |
CREDITOR_IBAN_COUNTRY_INCONSISTENCY | The IBAN does not match the selected country. | GB85REVO04007549976222 for US |
CREDITOR_BIC_INVALID_FORMAT | The BIC does not match the correct format. | BOFAUS |
CREDITOR_BIC_INVALID_COUNTRY_CODE | The BIC’s country code is not a valid ISO 3166-1 alpha-2 code. | BOFAXX33 |
CREDITOR_BIC_DOES_NOT_EXIST | The BIC cannot be found in official bank listings — it might be outdated or incorrect. | DEELUS99 |
CREDITOR_BIC_IBAN_INCONSISTENCY | The IBAN and BIC entered are not consistent. Another BIC must be used. | BARCGB2L for GB85REVO04007549976222 |
CREDITOR_BIC_SCHEME_UNSUPPORTED | The BIC does not support the required payment scheme for the transfer. | REVOGB2L for GB85REVO04007549976222 (should be REVOGB21 , as SEPA is preferred to any other payment scheme) |
CREDITOR_BIC_NO_SSI_FOR_CURRENCY | The BIC does not have standing settlement instructions in the selected currency. | KRW to LOYDGB2L |
CREDITOR_BIC_COUNTRY_INCONSISTENCY | The BIC does not match the selected country. | NDEASESSXXX for CH |
CREDITOR_BIC_COMPLIANCE_HIT | The BIC is restricted for compliance reasons. | HAVIGB2LXXX |
CREDITOR_BANK_IDENTIFIER_INVALID_FORMAT | The bank identifier doesn’t follow the correct format for this country. | 0400755 for GB |
CREDITOR_BANK_IDENTIFIER_DOES_NOT_EXIST | The local bank identifier entered does not seem to be present in published bank lists. It could be wrong, deprecated, or has yet to appear. | 040123 for GB |
CREDITOR_BRANCH_IDENTIFIER_INVALID_FORMAT | The branch identifier doesn’t follow the correct format for this country. | 1234 for JP |
CREDITOR_BRANCH_IDENTIFIER_DOES_NOT_EXIST | The branch identifier entered does not seem to be present in published lists for the bank. It could be wrong, deprecated, or has yet to appear. | 999 for Mizuho Bank (JP) |
CREDITOR_ACCOUNT_NUMBER_INVALID_FORMAT | The account number does not match the valid format for this country. | 123456789 for GB |
CREDITOR_ACCOUNT_NUMBER_TOO_SHORT | The account number you entered is too short. It may be truncated, have missing zeroes, or missing the bank identifier. | 947093420 for SE |
CREDITOR_ACCOUNT_NUMBER_TOO_LONG | The account number you entered is too long. It may contain extra digits. | 135000144454 for SE |
CREDITOR_ACCOUNT_NUMBER_INCORRECT_CHECKSUM | The account number fails the checksum validation. | 0270056410000438550018 for AR |
CREDITOR_ACCOUNT_NUMBER_INVALID_BANK_IDENTIFIER | The account number contains an invalid bank identifier. | 0280056110000438550019 for AR (as 028 is not valid bank identifier) or 10011234567 for SE (1001 is not a valid clearingnummer) |
CREDITOR_ACCOUNT_ID_EMAIL_INVALID_FORMAT | The provided email address doesn’t follow the correct format. | user@domain or user.domain.tld |
CREDITOR_ACCOUNT_ID_MSISDN_INVALID_FORMAT | The provided mobile number doesn’t follow the correct format | +12345 or 0011111111 |
CREDITOR_BANK_IDENTIFIER_ACCOUNT_NUMBER_INCONSISTENCY | The account number and bank identifier combination is incorrect. | 040075 and 49976223 for GB |
CREDITOR_BANK_IDENTIFIER_ACCOUNT_NUMBER_SWAP | The bank identifier and account number appear to be swapped | For US, 021000021 as account number and 738278291 as routing number |
CREDITOR_BANK_IDENTIFIER_ACCOUNT_NUMBER_DUPLICATION | The bank identifier and account number are duplicated | For US, 021000021 as both account number and routing number |
INTERMEDIARY_1_INVALID_FORMAT | The intermediary BIC you entered is of invalid format | BOFAUS |
INTERMEDIARY_1_DOES_NOT_EXIST | The intermediary BIC you entered does not exist. | CHASUSMMXXX |
INTERMEDIARY_1_NO_SSI | The intermediary BIC does not have standing settlement instructions for this currency with the next agent in the chain. | USD to REVOGB2LXXX through CITIGB22XXX |
INTERMEDIARY_1_COMPLIANCE_HIT | The intermediary BIC is restricted for compliance reasons. | HAVIGB2LXXX |
INTERMEDIARY_2_INVALID_FORMAT | The intermediary BIC you entered is of invalid format | BOFAUS |
INTERMEDIARY_2_DOES_NOT_EXIST | The intermediary BIC you entered does not exist. | CHASUSMMXXX |
INTERMEDIARY_2_NO_SSI | The intermediary BIC does not have standing settlement instructions for this currency with the next agent in the chain. | USD to RVBKUZ22XXX through IRVTUS3NXXX and SCPEUZ22XXX |
INTERMEDIARY_2_COMPLIANCE_HIT | The intermediary BIC is restricted for compliance reasons. | HAVIGB2LXXX |
INTERMEDIARY_3_INVALID_FORMAT | The intermediary BIC you entered is of invalid format | BOFAUS |
INTERMEDIARY_3_DOES_NOT_EXIST | The intermediary BIC you entered does not exist. | CHASUSMMXXX |
INTERMEDIARY_3_NO_SSI | The intermediary BIC does not have standing settlement instructions for this currency with the next agent in the chain. | USD to REVOGB21XXX through CHASUS33XXX , CHASGB2LXXX and REVOLT21XXX |
INTERMEDIARY_3_COMPLIANCE_HIT | The intermediary BIC is restricted for compliance reasons. | HAVIGB2LXXX |