El Payment Button (también conocido como Webcheckout) es un formulario de pago alojado en los servidores de Kushki que te permite aceptar pagos con tarjeta, transferencia y efectivo con un solo redireccionamiento, sin construir ni mantener un formulario de pago en tu frontend.Por nuestras políticas de riesgo, los métodos de pago disponibles y el tipo de integración pueden variar una vez que completes la afiliación. Te indicaremos cómo proceder si este proceso aplica a tu comercio.
Ejemplo del Payment Button
Características principales#
Alojado y protegido por Kushki: sin alcance PCI de tu lado.
Acepta los métodos de pago tarjeta, transferencia y efectivo.
Disponible en español, inglés y portugués.
Personalizable desde la Console (colores, logo, subdominio).
Seguridad incluida: OTP y validación antifraude con Sift.
Temporizador de conversión incluido por defecto.
Compatible con Chrome, Safari, Edge y Firefox.
Soporta flujos de preautorización (PRE_AUTH).
Cómo funciona#
Crea un Webcheckout
Tu backend llama a POST /smartlink/v1/webcheckout con los detalles del pedido y la configuración de pago. Kushki devuelve un webcheckoutUrl: una página de pago alojada y única.
Redirige al cliente
Redirige al cliente al webcheckoutUrl. Kushki se encarga de toda la experiencia de pago: selección del método, ingreso de la tarjeta, 3DS, OTP y confirmación.
Recibe el resultado
Después del pago, el cliente es redirigido a tu redirectURL. Kushki también envía una notificación por Webhook con el resultado de la transacción y cualquier additionalInformation que hayas incluido en la solicitud.
Solicitud#
| Campo | Descripción |
|---|
kind | Siempre "webcheckout" |
redirectURL | URL a la que llega el cliente después del pago |
products | Array con al menos un producto (ver abajo) |
paymentConfig | Desglose del monto y métodos de pago habilitados |
| Campo | Descripción |
|---|
contactDetail.email | Precarga el correo del cliente en el formulario de pago |
contactDetail.name | Precarga el nombre del cliente |
transactionType | Envía "PRE_AUTH" para usar el flujo de autorización y captura |
additionalInformation | Objeto libre: los campos aparecen en el metadata del webhook |
products[]#
Cada elemento del array products requiere:| Campo | Tipo | Descripción |
|---|
name | string | Nombre del producto |
description | string | Descripción del producto |
quantity | number | Unidades |
unitPrice | number | Precio por unidad |
paymentConfig#
| Campo | Requerido | Descripción |
|---|
amount.subtotalIva | ✅ | Subtotal sujeto a IVA |
amount.subtotalIva0 | ✅ | Subtotal no sujeto a IVA |
amount.iva | ✅ | Monto del IVA |
amount.currency | ✅ | Siempre USD para Ecuador |
paymentMethod | ✅ | Array de métodos habilitados: cash, transfer, credit-card |
Ejemplo completo#
{
"kind": "webcheckout",
"redirectURL": "https://www.tucomercio.com",
"contactDetail": {
"email": "customer@example.com",
"name": "John Doe"
},
"products": [
{
"name": "Trekking Pro",
"description": "Tenis",
"quantity": 1,
"unitPrice": 100.00
}
],
"paymentConfig": {
"amount": {
"subtotalIva": 89.28,
"subtotalIva0": 0,
"iva": 10.71,
"currency": "USD"
},
"paymentMethod": ["credit-card", "transfer", "cash"]
}
}
Respuesta#
{
"webcheckoutId": "mpEtCyMJV",
"webcheckoutUrl": "https://uat-webcheckout.kushkipagos.com/webcheckout/mpEtCyMJV"
}
| Campo | Descripción |
|---|
webcheckoutId | Identificador único de esta sesión de webcheckout |
webcheckoutUrl | URL de la página de pago alojada: redirige al cliente ahí de inmediato |
Códigos de error#
| Código | Mensaje | Causa |
|---|
K004 | ID de comercio o credencial no válido | Private-Merchant-Id inválido o no autorizado |
WCH001 | Cuerpo de la petición inválido | Campos requeridos ausentes o mal formados |
Uso de la API#
https://api.kushkipagos.com/
Endpoints disponibles#
Crear un Payment Button
Genera una URL de webcheckout alojada para redirigir al cliente al formulario de pago.
¿Tienes una sugerencia sobre esta documentación? Escríbenos.