GET /transfer/v1/bankList to retrieve the list of available banks. Display a bank selector to the customer before initiating the transfer.[
{ "code": "1001", "name": "BBVA México" },
{ "code": "1002", "name": "Santander México" },
{ "code": "1003", "name": "Banorte" }
]POST /transfer/v1/tokens with the amount, callback URL, and customer details. Returns a one-time token.{
"amount": {
"subtotalIva": 0,
"subtotalIva0": 500,
"iva": 0,
"ice": 0,
"currency": "MXN"
},
"callbackUrl": "https://yoursite.com/transfer/return",
"documentType": "CURP",
"documentNumber": "GACJ800101HDFRRN09",
"email": "user@example.com",
"currency": "MXN",
"userType": "0"
}| Field | Required | Notes |
|---|---|---|
amount | ✅ | MXN amounts |
callbackUrl | ✅ | URL to redirect the customer after payment |
documentType | ✅ | CURP, RFC, PP, or CC |
documentNumber | ✅ | Customer's ID number |
email | ✅ | Customer email for transaction notifications |
currency | ✅ | MXN |
userType | ✅ | "0" = Natural person, "1" = Company |
bankId | Optional | Pre-select a bank for the customer |
paymentDescription | Optional | Description shown in the customer's bank statement |
POST /transfer/v1/init with the token and amount. The response contains a redirectUrl — send the customer there to complete the payment at their bank portal.{
"token": "AbCDef123456Z7Ghi8901234jkLMNopQ",
"amount": {
"subtotalIva": 0,
"subtotalIva0": 500,
"iva": 0,
"ice": 0,
"currency": "MXN"
},
"webhooks": ["https://yoursite.com/kushki/notify"],
"fullResponse": "v2"
}{
"redirectUrl": "https://bank.mx/authorize/...",
"transactionReference": "6f16659e-b711-4995-a9ae-161aecbd6521",
"ticketNumber": "319228478889680318"
}callbackUrl when finished.GET /transfer/v1/status/{token} to get the final transaction result. Use the token from Step 2 as the path parameter.{
"status": "APPROVED",
"ticketNumber": "319228478889680318",
"documentType": "CURP",
"documentNumber": "GACJ800101HDFRRN09"
}| Currency | Code | Notes |
|---|---|---|
| Mexican Peso | MXN | Two decimal places — amounts use cents (e.g., 500.00) |
| Value | Description |
|---|---|
CURP | Clave Única de Registro de Población 🇲🇽 |
RFC | Registro Federal de Contribuyentes 🇲🇽 |
PP | Pasaporte 🇲🇽 |
CC | Identity Document 🇲🇽 |
| Status | Description |
|---|---|
APPROVED | Transfer completed and confirmed |
DECLINED | Transfer was rejected |
INITIALIZED | Transaction created — customer redirected to bank |
PENDING | Awaiting bank confirmation |
FAILED | Transaction failed |
EXPIRED | Customer did not complete the transfer in time |
webhooks array in your init request to receive real-time notifications when the transfer status changes:{
"webhooks": ["https://yoursite.com/kushki/notify"]
}https://api.kushkipagos.com/Got a suggestion on this documentation? Contact us.