El Payment Button genera una URL que redirige a tu cliente a un checkout alojado por Kushki (webcheckout). Armas la configuración del pago en tu backend, recibes una URL en la respuesta y rediriges o enlazas a tu cliente hacia ella. Kushki se encarga de toda la experiencia de checkout.Este endpoint requiere tu Private Key (Private-Merchant-Id). Nunca lo llames desde código del lado del cliente o del frontend — genera siempre la URL del checkout desde tu backend.
Cómo funciona#
Llama a POST /smartlink/v1/webcheckout con los detalles de la orden y la configuración del pago. Kushki devuelve un webcheckoutId y un webcheckoutUrl listo para usar.{
"kind": "webcheckout",
"redirectURL": "https://yoursite.com/order/confirmation",
"products": [
{
"name": "Consulta médica online",
"description": "Consulta de 30 minutos",
"quantity": 1,
"unitPrice": 150.00
}
],
"paymentConfig": {
"amount": {
"currency": "PEN",
"subtotalIva": 0,
"subtotalIva0": 150.00,
"iva": 0
},
"paymentMethod": ["credit-card", "transfer"]
},
"contactDetail": {
"email": "user@example.com",
"name": "Carlos Ramirez"
}
}
{
"webcheckoutId": "T3iDy0G4I",
"webcheckoutUrl": "https://webcheckout.kushkipagos.com/webcheckout/T3iDy0G4I"
}
Redirige a tu cliente a webcheckoutUrl. Una vez completado el pago, Kushki devuelve al cliente a tu redirectURL.
Campos del request#
| Campo | Obligatorio | Descripción |
|---|
kind | Sí | Siempre "webcheckout". |
redirectURL | Sí | URL a la que se redirige al cliente después de completar el pago. |
products | Sí | Array de objetos de producto — ve el detalle abajo. |
paymentConfig | Sí | Monto y métodos de pago — ve el detalle abajo. |
contactDetail.email | No | Correo electrónico del cliente. |
contactDetail.name | No | Nombre del cliente. |
transactionType | No | Envía "PRE_AUTH" para crear una preautorización en lugar de un cargo directo. |
additionalInformation | No | Objeto llave-valor con datos extra — aparece en el metadata del webhook. |
products[]#
| Campo | Obligatorio | Descripción |
|---|
name | No | Nombre del producto que se muestra en el checkout. |
description | No | Descripción del producto. |
quantity | No | Cantidad de unidades. |
unitPrice | No | Precio unitario. |
paymentConfig#
| Campo | Obligatorio | Descripción |
|---|
amount.currency | No | PEN o USD. |
amount.subtotalIva | No | Subtotal afecto a IGV. Envía 0 si no aplican impuestos. |
amount.subtotalIva0 | No | Subtotal no afecto a IGV (total exonerado). |
amount.iva | No | Monto del IGV. Envía 0 si no aplican impuestos. |
paymentMethod | No | Array de métodos habilitados en el checkout. |
Métodos de pago#
| Valor | Descripción |
|---|
credit-card | Pagos con tarjeta (crédito y débito). |
cash | Pagos en efectivo mediante Payvalida y otras redes. |
transfer | Transferencia bancaria. |
Flujo de preautorización#
Para crear una preautorización (autorizar fondos sin capturarlos de inmediato), envía transactionType: "PRE_AUTH". Usa los endpoints de Card para capturar o anular la preautorización después de la entrega o del cumplimiento.
Autenticación#
Usar la API#
https://api.kushkipagos.com/
Endpoints disponibles#
Crear un Payment Button
Genera una URL de checkout alojada por Kushki. Envía la orden y la configuración del pago — recibe una URL a la que redirigir a tu cliente.
¿Tienes una sugerencia sobre esta documentación? Contáctanos.