Private-Merchant-Id). Never expose it in client-side or frontend code — always call the token endpoint from your backend.GET /payouts/transfer/v1/bankList (or v2 for extended metadata) to retrieve available destination banks. Use the code value as bankId in the token request.POST /payouts/transfer/v1/tokens with the recipient's account details and payment information. Returns a one-time token.{
"bankId": "002",
"accountType": "CC",
"accountNumber": "1234567890123",
"currency": "PEN",
"totalAmount": 500.00,
"documentType": "DNI",
"documentNumber": "12345678",
"name": "Carlos Ramirez",
"mail": "user@example.com",
"paymentDescription": "Supplier payment #789"
}POST /payouts/transfer/v1/init with the token. The response returns a ticketNumber and transactionReference.{
"token": "V0OzRB100000xhxQB8035251pHLBQsq5",
"fullResponse": "v2"
}{
"status": "INITIALIZED",
"ticketNumber": "1574298975417951",
"transactionReference": "aef8884f-cd4d-4b9b-9efa-ad582629e4f2"
}GET /payouts/transfer/v1/transaction/{ticketNumber} to verify the disbursement was processed.status field:| Value | Meaning |
|---|---|
INITIALIZED | Transfer accepted and queued for processing |
APPROVAL | Funds successfully sent to the recipient |
DECLINED | Transfer rejected |
VOIDED | Transfer cancelled before processing |
| Currency | Code |
|---|---|
| Peruvian Sol | PEN |
| US Dollar | USD |
| Value | Description |
|---|---|
DNI | Documento Nacional de Identidad 🇵🇪 |
CE | Carné de Extranjería 🇵🇪 |
PAS | Pasaporte 🇵🇪 |
RUC | Registro Único de Contribuyentes 🇵🇪 |
| Value | Description |
|---|---|
CC | Cuenta Corriente (checking account) |
CA | Cuenta Ahorros (savings account) |
CM | Cuenta maestra (master account — Peru only) |
| Condition | Format |
|---|---|
BCP (bankId: "002") with CC | Exactly 13 digits |
BCP (bankId: "002") with CA | Exactly 14 digits |
| Any other bank | CCI (Código de Cuenta Interbancaria) — exactly 20 digits, no spaces, hyphens, or special characters |
| Field | Required | Description |
|---|---|---|
bankId | Yes | Code of the destination bank from the bank list endpoint. |
accountType | Yes | Bank account type: CC, CA, or CM. |
accountNumber | Yes | Recipient's bank account number. See format rules above. |
currency | Yes | PEN or USD. |
totalAmount | Yes | Total amount to disburse. |
documentType | Yes | Recipient's document type. |
documentNumber | Yes | Recipient's document number. |
name | Yes | Full name of the recipient. No special characters allowed in Peru. |
mail | No | Recipient's email address. |
paymentDescription | No | Description of the payment, shown on the bank statement. |
DELETE /payouts/transfer/v1/transaction/{ticketNumber}ticketNumber returned by the status endpoint. Voids are only possible while the transaction is in INITIALIZED status.GET /wallet/v1/merchant/balance{
"balanceDate": 1687371952224,
"currency": "PEN",
"currentBalance": 717169.22
}webhooks array in your init request to receive real-time status notifications:{
"webhooks": ["https://yoursite.com/kushki/notify"]
}| Endpoint | Description |
|---|---|
GET /payouts/transfer/v1/bankList | Returns bank code and name. Use for standard ACH transfers. |
GET /payouts/transfer/v2/bankList | Extended response with internationalCodes and additional metadata. |
https://api.kushkipagos.com/Got a suggestion on this documentation? Contact us.