The Payment Button generates a URL that redirects your customer to a Kushki-hosted checkout (webcheckout). You build the payment configuration on your backend, receive a URL in the response, and redirect or link your customer to it. Kushki handles the entire checkout experience.This endpoint requires your Private Key (Private-Merchant-Id). Never call it from client-side or frontend code — always generate the checkout URL from your backend.
How it works#
Call POST /smartlink/v1/webcheckout with the order details and payment configuration. Kushki returns a webcheckoutId and a ready-to-use webcheckoutUrl.{
"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"
}
Redirect your customer to webcheckoutUrl. After payment is completed, Kushki redirects the customer back to your redirectURL.
Request fields#
| Field | Required | Description |
|---|
kind | Yes | Always "webcheckout". |
redirectURL | Yes | URL to redirect the customer to after the payment is completed. |
products | Yes | Array of product objects — see below. |
paymentConfig | Yes | Payment amount and methods — see below. |
contactDetail.email | No | Customer's email address. |
contactDetail.name | No | Customer's name. |
transactionType | No | Pass "PRE_AUTH" to create a pre-authorization instead of a direct charge. |
additionalInformation | No | Key-value object with extra data — appears in the webhook metadata. |
products[]#
| Field | Required | Description |
|---|
name | No | Product name shown at checkout. |
description | No | Product description. |
quantity | No | Number of units. |
unitPrice | No | Unit price. |
paymentConfig#
| Field | Required | Description |
|---|
amount.currency | No | PEN or USD. |
amount.subtotalIva | No | Subtotal subject to VAT. Set to 0 if no taxes apply. |
amount.subtotalIva0 | No | Subtotal not subject to VAT (tax-exempt total). |
amount.iva | No | VAT amount. Set to 0 if no taxes apply. |
paymentMethod | No | Array of enabled methods at checkout. |
Payment methods#
| Value | Description |
|---|
credit-card | Card payments (credit and debit). |
cash | Cash payments via Payvalida and other networks. |
transfer | Bank transfer. |
Pre-authorization flow#
To create a pre-authorization (authorize funds without capturing immediately), set transactionType: "PRE_AUTH". Use the Card endpoints to capture or void the pre-auth after delivery or fulfillment.
Authentication#
Using the API#
https://api.kushkipagos.com/
Available Endpoints#
Create Payment Button
Generate a Kushki-hosted checkout URL. Pass the order and payment configuration — receive a URL to redirect your customer to.
Got a suggestion on this documentation? Contact us.