Skip to main content

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​

NAMEREQUIREDTYPEDESCRIPTION
Authorization✅stringbearer jwt token

Peru

HTTP method GET
https://api.msla-id.com/experience-bankaccount-api-v1/api/pe-bank-accounts/{accountNumber}/validation
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request path parameter​

NAMEREQUIREDTYPEDESCRIPTION
accountNumber ✅stringAccount 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​

CodeDescription
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
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request path parameter​

NAMEREQUIREDTYPEDESCRIPTION
accountNumber ✅stringAccount 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​

CodeDescription
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
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request body (JSON)​

NAMEREQUIREDTYPEDESCRIPTION
account_number ✅stringAccount Number
bank_code ✅stringBank Code
document_type ✅stringDocument Type
account_type ✅stringAccount Type
document_number✅stringDocument 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
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request body (JSON)​

NAMEREQUIREDTYPEDESCRIPTION
accountNumber ✅stringAccount Number
documentNumber✅stringDocument 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​

CodeDescription
200OK. data.valid true or false.
400Bad request — IDV-3001 Invalid or incomplete input data
401Unauthorized
403Forbidden — IDV-1004
404Not found — IDV-1002 Data not found.
500Internal server error — IDV-1008
504Gateway 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
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request path parameter​

NAMEREQUIREDTYPEDESCRIPTION
accountNumber ✅stringAccount 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​

CodeDescription
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
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request body (JSON)​

NAMEREQUIREDTYPEDESCRIPTION
account_number ✅stringAccount Number
bank_code ✅stringBank code (see Uruguay Bank Catalog below)

Uruguay Bank Catalog​

bank_codeName Bank
001BROU
091HIPOTECARIO(BHU)
110BANCO BANDES URUGUAY
113BANCO ITAU
128SCOTIABANK
137SANTANDER
153BBVA URUGUAY S.A.
157HSBC BANK URUGUAY
162HERITAGE
205CITIBANK
246NACION ARGENTINA
452PREX
6917NUMMI S.A (MiDinero)
815OCA 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​

CodeDescription
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
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request body (JSON)​

NAMEREQUIREDTYPEDESCRIPTION
accountNumber ✅stringBank account number to be validated.
documentNumber✅stringIdentification document number of the account holder.
documentType ✅stringType of identification document associated with the account holder.
accountType✅stringType of bank account to be validated, such as savings or checking.
bankCode ✅stringUnique 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​

bankCodeName Bank
0010BANCO PICHINCHA
0017BANCO GUAYAQUIL
0029BANCO DE LOJA
0030BANCO PACIFICO
0032BANCO INTERNACIONAL
0035BANCO DEL AUSTRO
0036PRODUBANCO
0037BANCO BOLIVARIANO
0042BANCO GENERAL RUMINAHUI S.A.
0059BANCO SOLIDARIO
0060BANCO PROCREDIT S.A.
0201BANCO DELBANK S.A.
0232BANCO DINERS CLUB

Status code responses​

CodeDescription
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
[SANDBOX Environment]

For testing purposes, use the base domain: apidev.msla-id.com

Request body (JSON)​

NAMEREQUIREDTYPEDESCRIPTION
account_number ✅stringAccount Number
bank_code ✅stringBank Code
document_type ✅stringDocument Type
account_type ✅stringAccount Type
document_number✅stringDocument 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.

Availability​

🇺🇾 Uruguay
100% coverage
🇦🇷 Argentina
100% coverage
🇲🇽 Mexico
100% of SPEI banks
🇧🇷 Brazil
100% coverage
🇨🇱 Chile
100% coverage
🇵🇪 Peru
+95% coverage
🇪🇨 Ecuador
+95% coverage
🇨🇴 Colombia
+80% coverage