Private-Merchant-Id). Nunca la expongas en código de cliente o de frontend: llama siempre al endpoint de token desde tu backend.| Modo | Descripción |
|---|---|
| Dispersión única | Tokeniza la tarjeta una vez y envía los fondos de inmediato. |
| Dispersión por suscripción | Registra la tarjeta como suscripción y envía fondos on demand en cualquier momento con el subscriptionId. |
POST /payouts/card/v1/tokens con los datos de la tarjeta del destinatario y el paymentType. Devuelve un token de un solo uso.{
"card": {
"name": "Carlos Ramirez",
"number": "4111111111111111",
"expiryMonth": "12",
"expiryYear": "29"
},
"paymentType": "FD"
}{
"token": "8122eb4bda29476f8dc71b6426a7fd5d",
"maskedPan": "495703XXXXXX0454",
"brand": "VISA"
}POST /payouts/card/v1/pushFunds con el token (o los datos de la tarjeta directamente), el monto y los datos del destinatario.{
"token": "8122eb4bda29476f8dc71b6426a7fd5d",
"paymentType": "FD",
"amount": {
"currency": "PEN",
"totalAmount": 250.00
},
"clientTransactionId": "a3f8d721-1b2c-4e5f-9a0d-123456789abc",
"recipient": {
"address": "Av. Larco 1301",
"city": "Lima",
"country": "PER",
"zipCode": "15046"
},
"fullResponse": "v2"
}transactionStatus: "APPROVAL" con un ticketNumber y un transactionReference.GET /payouts/card/v1/transaction/{transactionReference} para confirmar el estado final.{
"transactionStatus": "APPROVAL",
"ticketNumber": "951738256068368362",
"transactionReference": "763274a1-b47b-493f-934f-047801cc04a0",
"amount": 250.00,
"processor": {
"code": "00",
"message": "Approved and completed successfully"
}
}POST /payouts/card/v1/subscriptions/tokens con los datos de la tarjeta. Devuelve un subscriptionId que guardas de tu lado.{
"card": {
"name": "Carlos Ramirez",
"number": "4111111111111111",
"expiryMonth": "03",
"expiryYear": "27"
},
"paymentType": "FD"
}{
"subscriptionId": "956a8eb60epa4993b378e34488610e7f",
"maskedPan": "495703XXXXXX0454",
"brand": "VISA"
}POST /payouts/card/v1/subscriptions/pushFunds/{subscriptionId} cada vez que quieras dispersar fondos: no necesitas volver a enviar los datos de la tarjeta.{
"paymentType": "FD",
"amount": {
"currency": "PEN",
"totalAmount": 250.00
},
"clientTransactionId": "b7e9c432-2d3e-5f6a-0b1c-234567890bcd",
"recipient": {
"address": "Av. Larco 1301",
"city": "Lima",
"country": "PER",
"zipCode": "15046"
},
"fullResponse": "v2"
}DELETE /payouts/card/v1/token/{subscriptionId} para eliminar la tarjeta registrada cuando ya no necesites más dispersiones.paymentType:| Valor | Descripción |
|---|---|
FD | Dispersión de fondos: envío de fondos de propósito general |
OG | Juegos en línea: para plataformas de juegos y lotería |
| Campo | Requerido | Descripción |
|---|---|---|
token | Uno de token o card | Token de un solo uso del endpoint de payout token. |
card | Uno de token o card | Datos de la tarjeta directamente (name, number, expiryMonth, expiryYear). |
paymentType | Sí | FD o OG. |
amount.currency | Sí | Siempre PEN para Perú. |
amount.totalAmount | Sí | Monto a enviar a la tarjeta. |
clientTransactionId | Sí | Tu UUID único para esta transacción: se usa para idempotencia y para consultar el estado. |
recipient.address | No | Dirección del destinatario. |
recipient.city | No | Ciudad del destinatario. |
recipient.country | No | Código de país del destinatario (por ejemplo, "PER"). |
recipient.zipCode | No | Código postal del destinatario. |
webhooks | No | Array de URLs a notificar cuando cambia el estado de la transacción. |
fullResponse | No | Envía "v2" para recibir el detalle completo de la transacción, incluidos datos del BIN, código de aprobación y montos. |
metadata | No | Pares clave-valor personalizados para tu propio seguimiento. |
webhooks en tu solicitud push funds para recibir notificaciones en tiempo real:{
"webhooks": ["https://yoursite.com/kushki/notify"]
}https://api.kushkipagos.com/¿Tienes una sugerencia sobre esta documentación? Escríbenos.