Bank Account Verification
Overview
MSLA´s bank account verification is a necessary part of the transaction process that ensures funds are coming from and going to legitimate bank accounts by confirming that the account being attached is a valid bank account.
¿What is it for?
Use this query to obtain bank account information by entering the account number and personal details, such as:
- Type of document of the account holder
- Currency of the account
- Document number of the account holder
- Account status and validity
- Name of the beneficiary
- Type of account
- Bank name
Endpoints
Request header parameter
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Authorization | ✅ | string | bearer jwt token |
Peru
HTTP method GET
https://api.msla-id.com/experience-bankaccount-api-v1/api/pe-bank-accounts/{accountNumber}/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request path parameter
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| accountNumber | ✅ | string | Account Number |
Response body
{
"traceId":"123456789010101",
"timestamp":"yyyy-mm-dd HH:MM:SS",
"data":{
"valid":true,
"message":"Cuenta valida",
"account_number":"99900000000000000030",
"bank_code":"999",
"country_code":"PE",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":"CARLOS JIMENES BORJA",
"account_currency":"PEN",
"account_type":"SAVINGS"
}
}
A 200 with data.valid=false is a successful validation of an invalid account. It is not HTTP 404. Do not assert on data.message.
{
"traceId":"7d4e8730da3a20f3",
"timestamp":"2026-08-28 05:40:33",
"data":{
"valid":false,
"message":"Cuenta credito invalida (Formato CCI Invalido)",
"account_number":"99900000304000000030",
"bank_code":null,
"country_code":"PE",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":null,
"account_currency":null,
"account_type":null
}
}
Status code responses
| Code | Description |
|---|---|
| 200 | OK. data.valid true or false. |
| 400 | Bad request — IDV-3001 Invalid or incomplete input data |
| 401 | Unauthorized |
| 403 | Forbidden — IDV-1004 |
| 404 | Not found — IDV-1002 Data not found. |
| 500 | Internal server error — IDV-1008 |
| 504 | Gateway timeout — IDV-1100 |
The authentication error codes can be found here.
Response 400 status code
{
"traceId": "542fc743fffda052",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-3001",
"message": "Bad request - Invalid or incomplete input data",
"data": null
}
Response 404 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1002",
"message": "Data not found."
}
Response 500 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1008",
"message": "Error in the source of origin, please contact an administration.",
"data": null
}
Response 504 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1100",
"message": "Gateway Timeout",
"data": null
}
Mexico
HTTP method GET
https://api.msla-id.com/experience-bankaccount-api-v1/api/mx-bank-accounts/{accountNumber}/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request path parameter
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| accountNumber | ✅ | string | Account Number |
Response body
{
"traceId":"123456789010101",
"data":{
"valid":true,
"message":"Cuenta valida",
"account_number":"0000000000",
"bank_code":"999",
"country_code":"MX",
"branch_code":"000",
"document_type":"RFC",
"document_number":"XXX6702109X6",
"beneficiary_name":"CRUZ ROJA MEXICANA",
"account_currency":"MXN",
"account_type":null
}
}
A 200 with data.valid=false is a successful validation of an invalid account. It is not HTTP 404. Do not assert on data.message.
{
"traceId":"0abd976d5d1baf6b",
"timestamp":"2026-08-21 12:29:40",
"data":{
"valid":false,
"message":"Cuenta credito invalida",
"account_number":"00000000000000000000",
"bank_code":null,
"country_code":"MX",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":null,
"account_currency":null,
"account_type":null
}
}
Status code responses
| Code | Description |
|---|---|
| 200 | OK. data.valid true or false. |
| 400 | Bad request — IDV-3001 Invalid or incomplete input data |
| 401 | Unauthorized |
| 403 | Forbidden — IDV-1004 |
| 404 | Not found — IDV-1002 Data not found. |
| 500 | Internal server error — IDV-1008 |
| 504 | Gateway timeout — IDV-1100 |
The authentication error codes can be found here.
Response 400 status code
{
"traceId": "542fc743fffda052",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-3001",
"message": "Bad request - Invalid or incomplete input data",
"data": null
}
Response 404 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1002",
"message": "Data not found."
}
Response 500 status code
{
"traceId": "0dc7f03f3c9a3873",
"timestamp": "2026-09-01 12:39:24",
"code": "IDV-1008",
"message": "Error in the source of origin, please contact an administrator!",
"data": null
}
Response 504 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1100",
"message": "Gateway Timeout",
"data": null
}
Chile
HTTP method POST
https://api.msla-id.com/experience-bankaccount-api-v1/api/ch-bank-accounts/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request body (JSON)
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| account_number | ✅ | string | Account Number |
| bank_code | ✅ | string | Bank Code |
| document_type | ✅ | string | Document Type |
| account_type | ✅ | string | Account Type |
| document_number | ✅ | string | Document Number |
Response body
{
"traceId":"123456789010101",
"data":{
"valid":true,
"message":"Cuenta valida",
"account_number":"000000000000011",
"bank_code":"9999",
"country_code":"CL",
"branch_code":null,
"document_type":"RUT",
"document_number":"14.123.456-9",
"beneficiary_name":"JUAN PEREZ",
"account_currency":"CLP",
"account_type":"CHECKING"
}
}
Brazil
HTTP method POST
https://api.msla-id.com/experience-bankaccount-api-v1/api/br-bank-accounts/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request body (JSON)
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| accountNumber | ✅ | string | Account Number |
| documentNumber | ✅ | string | Document Number |
Response body
{
"traceId":"123456789010101",
"timestamp":"yyyy-mm-dd HH:MM:SS",
"data":{
"valid":true,
"message":"Cuenta valida",
"account_number":"1001",
"bank_code":"999",
"country_code":"BR",
"branch_code":"1010",
"document_type":"CPF/CNPJ",
"document_number":"58.547.642/0001-95",
"beneficiary_name":"JORGE GONCALVES JR",
"account_currency":"BRL",
"account_type":"SAVINGS"
}
}
A 200 with data.valid=false is a successful validation of an invalid account. It is not HTTP 404. Do not assert on data.message.
{
"traceId":"0abd976d5d1baf6b",
"timestamp":"2026-08-21 12:29:40",
"data":{
"valid":false,
"message":null,
"account_number":null,
"bank_code":null,
"country_code":"BR",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":null,
"account_currency":null,
"account_type":null
}
}
Status code responses
| Code | Description |
|---|---|
| 200 | OK. data.valid true or false. |
| 400 | Bad request — IDV-3001 Invalid or incomplete input data |
| 401 | Unauthorized |
| 403 | Forbidden — IDV-1004 |
| 404 | Not found — IDV-1002 Data not found. |
| 500 | Internal server error — IDV-1008 |
| 504 | Gateway timeout — IDV-1100 |
The authentication error codes can be found here.
Response 400 status code
{
"traceId": "542fc743fffda052",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-3001",
"message": "Bad request - Invalid or incomplete input data",
"data": null
}
Response 403 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1004",
"message": "Forbidden",
"data": null
}
Response 404 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1002",
"message": "Data not found."
}
Response 500 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1008",
"message": "Error in the source of origin, please contact an administrator!",
"data": null
}
Response 504 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1100",
"message": "Gateway Timeout",
"data": null
}
Argentina
HTTP method GET
https://api.msla-id.com/experience-bankaccount-api-v1/api/ar-bank-accounts/{accountNumber}/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request path parameter
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| accountNumber | ✅ | string | Account Number |
Response body
{
"traceId":"123456789010101",
"timestamp":"yyyy-mm-dd HH:MM:SS",
"data":{
"valid":true,
"message":"Cuenta valida",
"account_number":"123456789",
"bank_code":"999",
"country_code":"AR",
"branch_code":null,
"document_type":"CUIT",
"document_number":"30715154541",
"beneficiary_name":"ROBERTO CARLOS GONZALES PEREZ",
"account_currency":"ARS",
"account_type":"CHECKING"
}
}
A 200 with data.valid=false is a successful validation of an invalid account. It is not HTTP 404. Do not assert on data.message.
{
"traceId":"0abd976d5d1baf6b",
"timestamp":"2026-08-21 12:29:40",
"data":{
"valid":false,
"message":"Cuenta credito invalida (0111 - CBU NO EXISTE)",
"account_number":"00000000000000000000",
"bank_code":null,
"country_code":"AR",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":null,
"account_currency":null,
"account_type":null
}
}
Status code responses
| Code | Description |
|---|---|
| 200 | OK. data.valid true or false. |
| 400 | Bad request — IDV-3001 Invalid or incomplete input data |
| 401 | Unauthorized |
| 403 | Forbidden — IDV-1004 |
| 404 | Not found — IDV-1002 Data not found. |
| 500 | Internal server error — IDV-1008 |
| 504 | Gateway timeout — IDV-1100 |
The authentication error codes can be found here.
Response 400 status code
{
"traceId": "542fc743fffda052",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-3001",
"message": "Bad request - Invalid or incomplete input data",
"data": null
}
Response 404 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1002",
"message": "Data not found."
}
Response 500 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1008",
"message": "Error in the source of origin, please contact an administration.",
"data": null
}
Response 504 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1100",
"message": "Gateway Timeout",
"data": null
}
Uruguay
HTTP method POST
https://api.msla-id.com/experience-bankaccount-api-v1/api/uy-bank-accounts/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request body (JSON)
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| account_number | ✅ | string | Account Number |
| bank_code | ✅ | string | Bank code (see Uruguay Bank Catalog below) |
Uruguay Bank Catalog
| bank_code | Name Bank |
|---|---|
| 001 | BROU |
| 091 | HIPOTECARIO(BHU) |
| 110 | BANCO BANDES URUGUAY |
| 113 | BANCO ITAU |
| 128 | SCOTIABANK |
| 137 | SANTANDER |
| 153 | BBVA URUGUAY S.A. |
| 157 | HSBC BANK URUGUAY |
| 162 | HERITAGE |
| 205 | CITIBANK |
| 246 | NACION ARGENTINA |
| 452 | PREX |
| 6917 | NUMMI S.A (MiDinero) |
| 815 | OCA BLUE |
Response body
{
"traceId":"123456789010101",
"timestamp":"yyyy-mm-dd HH:MM:SS",
"data":{
"valid":true,
"message":"Cuenta valida",
"account_number":"00001",
"bank_code":"001",
"country_code":"UY",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":"MAR** FLORE**** GORDI**** BENÍ***",
"account_currency":null,
"account_type":null
}
}
A 200 with data.valid=false is a successful validation of an invalid account. It is not HTTP 404. Do not assert on data.message.
{
"traceId":"0abd976d5d1baf6b",
"timestamp":"2026-08-21 12:29:40",
"data":{
"valid":false,
"message":"Cuenta invalida",
"account_number":"00000000000000000000",
"bank_code":null,
"country_code":"UY",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":null,
"account_currency":null,
"account_type":null
}
}
Status code responses
| Code | Description |
|---|---|
| 200 | OK. data.valid true or false. |
| 400 | Bad request — IDV-3001 Invalid or incomplete input data |
| 401 | Unauthorized |
| 403 | Forbidden — IDV-1004 |
| 404 | Not found — IDV-1002 Data not found. |
| 500 | Internal server error — IDV-1008 |
| 504 | Gateway timeout — IDV-1100 |
The authentication error codes can be found here.
Response 400 status code
{
"traceId": "542fc743fffda052",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-3001",
"message": "Bad request - Invalid or incomplete input data",
"data": null
}
Response 404 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1002",
"message": "Data not found."
}
Response 500 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1008",
"message": "Error in the source of origin, please contact an administration.",
"data": null
}
Response 504 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1100",
"message": "Gateway Timeout",
"data": null
}
Ecuador
HTTP method GET
https://api.msla-id.com/experience-bankaccount-api-v1/api/ec-bank-accounts/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request body (JSON)
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| accountNumber | ✅ | string | Bank account number to be validated. |
| documentNumber | ✅ | string | Identification document number of the account holder. |
| documentType | ✅ | string | Type of identification document associated with the account holder. |
| accountType | ✅ | string | Type of bank account to be validated, such as savings or checking. |
| bankCode | ✅ | string | Unique code identifying the bank where the account is held. |
Response body
{
"traceId": "3e76bf0af3055b52",
"timestamp": "2026-09-08 17:49:37",
"data": {
"valid": true,
"message": "Cuenta valida",
"accountNumber": "52803998",
"bankCode": "0017",
"countryCode": "EC",
"branchCode": null,
"documentType": null,
"documentNumber": null,
"beneficiaryName": "PUCHA MACAS WASHINGTON KEN",
"accountCurrency": "USD",
"accountType": "SAVINGS"
}
}
A 200 with data.valid=false is a successful validation of an invalid account. It is not HTTP 404. Do not assert on data.message.
{
"traceId":"0abd976d5d1baf6b",
"timestamp":"2026-08-21 12:29:40",
"data":{
"valid":false,
"message":"Cuenta credito invalida",
"account_number":"00000000000000000000",
"bank_code":null,
"country_code":"MX",
"branch_code":null,
"document_type":null,
"document_number":null,
"beneficiary_name":null,
"account_currency":null,
"account_type":null
}
}
Ecuador Bank Catalog
| bankCode | Name Bank |
|---|---|
| 0010 | BANCO PICHINCHA |
| 0017 | BANCO GUAYAQUIL |
| 0029 | BANCO DE LOJA |
| 0030 | BANCO PACIFICO |
| 0032 | BANCO INTERNACIONAL |
| 0035 | BANCO DEL AUSTRO |
| 0036 | PRODUBANCO |
| 0037 | BANCO BOLIVARIANO |
| 0042 | BANCO GENERAL RUMINAHUI S.A. |
| 0059 | BANCO SOLIDARIO |
| 0060 | BANCO PROCREDIT S.A. |
| 0201 | BANCO DELBANK S.A. |
| 0232 | BANCO DINERS CLUB |
Status code responses
| Code | Description |
|---|---|
| 200 | OK. data.valid true or false. |
| 400 | Bad request — IDV-3001 Invalid or incomplete input data |
| 401 | Unauthorized |
| 403 | Forbidden — IDV-1004 |
| 404 | Not found — IDV-1002 Data not found. |
| 500 | Internal server error — IDV-1008 |
| 504 | Gateway timeout — IDV-1100 |
The authentication error codes can be found here.
Response 400 status code
{
"traceId": "542fc743fffda052",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-3001",
"message": "Bad request - Invalid or incomplete input data",
"data": null
}
Response 404 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1002",
"message": "Data not found."
}
Response 500 status code
{
"traceId": "0dc7f03f3c9a3873",
"timestamp": "2026-09-01 12:39:24",
"code": "IDV-1008",
"message": "Error in the source of origin, please contact an administrator!",
"data": null
}
Response 504 status code
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1100",
"message": "Gateway Timeout",
"data": null
}
Colombia
HTTP method POST
https://api.msla-id.com/experience-bankaccount-api-v1/api/co-bank-accounts/validation
For testing purposes, use the base domain: apidev.msla-id.com
Request body (JSON)
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| account_number | ✅ | string | Account Number |
| bank_code | ✅ | string | Bank Code |
| document_type | ✅ | string | Document Type |
| account_type | ✅ | string | Account Type |
| document_number | ✅ | string | Document Number |
Response body
{
"traceId":"123456789010101",
"data":{
"valid":true,
"message":"Cuenta valida",
"account_number":"000000001",
"bank_code":"999",
"country_code":"CO",
"branch_code":null,
"document_type":"CC",
"document_number":"123456789",
"beneficiary_name":"JU*** ERN*** PE*** ME***",
"account_currency":"COP",
"account_type":"CHECKING"
}
}
Benefits
Given an account number, the existence of the account is checked with the financial institution.
If the account exists, data is returned; if not, you'll be notified. Additional info may include different institution, currency, or closed/disabled account.
If the account accepts multiple currencies, all will be listed separated by commas, e.g., USD, UYU.