🇵🇪Peru
Check the requirements and validations made over the cashouts on Peru
Required fields
login
String
Cashouts login
pass
String
Cashouts pass
external_id
String (max length: 100)
Transaction's ID on your end
country
PE
The country codes are in ISO 3166-1 alpha-2 format.
currency
PEN
/ USD
The currencies are in ISO 4217 format.
amount
Number with up to 2 decimals
Cashout amount
phone
Number 10-11 digits
Customer's Phone. Mandatory for Yape&Plin
beneficiary_name
String (max length: 100)
Beneficiary's name
beneficiary_lastname
String (max length: 100)
Beneficiary's last name
bank_account
validations
bank_account
validationsAll
-
CCI - Código de Cuenta Interbancaria
Length 20 (with verifying digits - a validation algorithm is ran over these)
00219300153895206813
Yape
901
Empty string
^$
Plin
902
Empty string
^$
CCI validation algorithm
Since the first three digits of the CCI are the bank code, it is not mandatory to send the bank_code
field. However, we validate those 3 first digits to be a valid bank_code
.
public final class Validations {
static Integer CCI_LENGTH_ST = 18;
static Integer CCI_LENGTH_FST = 20;
static String EMPTY_CHECK_DIGITS = "00";
public static boolean validateBankAccount(String bankAccount) {
if (!ValidationsUtils.validateOnlyNumbers(bankAccount)) {
return false;
} else {
int accountLength = bankAccount.length();
String lastDigits = bankAccount.substring(bankAccount.length() - 2);
if (accountLength == CCI_LENGTH_ST && lastDigits.equals(EMPTY_CHECK_DIGITS)) {
return true;
}
return validateCCI(bankAccount);
}
}
//Validate CCI bank account
public static boolean validateCCI(String cci) {
if (validateCCILength(cci)) {
String cciWithoutCheck = cci.substring(0, cci.length() - 2);
String checkDigits = cci.substring(cci.length() - 2);
String calculatedCheckDigits = getCciCheckDigits(cciWithoutCheck);
return checkDigits.equals(calculatedCheckDigits);
}
return false;
}
public static boolean validateCCILength(String cci) {
return cci.length() == CCI_LENGTH_FST;
}
public static String getCciCheckDigits(String cci) {
int firstControlNumber = calculateCheckDigit(cci.substring(0, 6));
int secondControlNumber = calculateCheckDigit(cci.substring(6, 18));
return String.valueOf(firstControlNumber) + String.valueOf(secondControlNumber);
}
private static int calculateCheckDigit(String cci) {
int total = 0;
int factor = 1;
for (int i = 0; i < cci.length(); i++) {
String[] cciArray = cci.split("");
int num = Integer.parseInt(cciArray[i]);
if (num * factor < 10) {
total += (num * factor);
} else {
int product = (num * factor);
String product_str = Integer.toString(product);
int firstDigit = Integer.parseInt(product_str.substring(0, 1));
int lastDigit = product % 10;
total += firstDigit + lastDigit;
}
factor = factor == 1 ? 2 : 1;
}
return (total % 10) > 0 ? 10 - (total % 10) : 0;
}
}
account_type
account_type
The account_type
is specified with only one character as described below.
C
Checkings account
S
Savings account
document_type
and document_id
validations
document_type
and document_id
validationsCE
/CPP
Numeric. Length 9
DNI
Numeric. Length 8-9
PASS
Numeric. Length 12
RUC
Length 11
phone
validations
phone
validationsYape
901
Numeric - Country code +51 plus 10 digits +51 XXXXXXXXX
Yes
+51901671234
Plin
902
Numeric - Country code +51 plus 9 digits +51 XXXXXXXXX
Yes
+51901671234
Others
-
-
No
-
Example request
{
"login": "xxxxxxx",
"pass": "xxxxxxx",
"external_id": "30000000001",
"country": "PE",
"currency": "PEN",
"amount": 100,
"document_id": "848392783",
"document_type": "CE",
"bank_account": "00219300153895206813",
"account_type": "C",
"beneficiary_name": "User",
"beneficiary_lastname": "Test",
"notification_url": "https://webhook.site/url",
"type": "json"
}
Bank codes
Bank code retrieval via API
For the full and most up-to-date list of banks and its codes, please check this endpoint
Banco de Crédito del Peru
002
Interbank
003
Citibank
007
Scotiabank
009
BBVA Continental
011
Banco de la Nación
018
Banco de Comercio
023
Banco Financiero
035
Banco Interamericano de Finanzas (BIF)
038
Crediscotia Financiera
043
Mi Banco
049
Banco GNB Peru S.A
053
Banco Falabella
054
Santander
056
Caja Metropolitana de Lima
800
Caja Municipal de Ahorro y Credito Piura SAC
801
Caja Municipal de Ahorro y Crédito Trujillo
802
Caja Municipal de Ahorro y Crédito Arequipa
803
Caja Municipal de Ahorro y Crédito Sullana
805
Caja Municipal de Ahorro y Crédito Cuzco
806
Caja Municipal de Ahorro y Crédito Huancayo
808
Yape
901
Plin
902
Last updated
Was this helpful?