🇵🇪Peru
Check the requirements and validations made over the cashouts on Peru
Last updated
Was this helpful?
Was this helpful?
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;
}
}
{
"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"
}