1. Online Payments
  • API Docs Peru 🇵🇪
  • Online Payments
    • Release Notes
    • Card Payments
      • Request a card token
      • Make a charge or deferred charge
      • Preauthorization (tokenless)
      • Create payment (tokenless)
      • Void a transaction
      • Refund a transaction
      • Verify Account
      • Request deferred options
      • Authorize payments
      • Reauthorize payments
      • Capture an authorized payment
      • Validate OTP
      • Bin Info V2
      • Bin Info
    • One-Click & Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Update recurring charge card data
      • Make an One-click payment
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Authorize payments
      • Capture an authorized payment
      • Get recurring charge Info
    • Card Out
      • Get Card Payout Token
      • Get Subscription Token
      • Push funds
      • Push Funds in subscriptions
      • Get transaction status
      • Delete Subscription
    • Transfer In
      • Get Bank List
      • Request a Transfer In token
      • Init Transaction
      • Get Status
    • Transfer Out
      • Get Bank List
      • Get Bank List V2
      • Request a Transfer Out token
      • Init Transaction
      • Get Status
      • Balance for Payouts
    • Cash In
      • Request a cash in token
      • Init Transaction
      • Transaction Status
    • Smartlinks V2
      • Create a Smartlink
      • Update a Smartlink
      • Get a Smartlink
      • Delete a smartlink
    • Analytics
      • Get transactions list v1
      • Get transactions list v2
    • Chargebacks
      • Query chargebacks
      • Request chargeback export
    • Gateway Status
      • Get gateway status
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Advanced search
      • Activate or deactivate
      • Delete credential
      • Update credential
      • Regenerate a credential
    • Payment Button
      • Create a payment button
    • Platform Status
      • Get platform status
    • Subscription Transactions
      • Get subscription transactions
    • Settlement
      • Query settlement
  • Card Present Payments (API Raw)
    • Release notes
    • Key Exchange Process
    • Test data
    • Kushki Error Catalog for POS transactions
    • The Amount Object
    • One-time Payments
      • Single payment
    • Two-step Payments
      • Authorization and capture
    • Voids & Refunds
      • Refund a transaction
      • Void & Reverse
    • Card information
      • Get BIN Info
      • Bin Info V2
      • Request deferred options
      • Balance inquiries
    • Query Transactions
      • Transaction Search
    • Webhooks
      • Introduction
      • Good practices
      • Refunds
      • Card Payments
      • Check your webhooks
  • Kushki One
    • Cloud Services
      • Payment Cloud
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
        • Transaction Search
      • Print Cloud
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment Local
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Transaction Search — Local
        • Transaction Search — Online
        • Abort
      • Print Local
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • Appian - Submerchant Register
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Get submerchantIds
    • Get credentials for submerchants
  • Raíz
  • Schemas
    • Shared
      • ErrorResponse
      • BadRequestResponse
      • InvalidBinResponse
      • payment_method
      • payment_submethod
      • messageFields
      • Channel
    • Amount & Taxes
      • Amount-cash-in
      • GetConfigurationRequest
    • Identity & Contact
      • Shipping Address
    • Card & Payments
      • ChargesVoidCardResponse
      • Promotions
      • Submerchant
    • Subscriptions
      • SubscriptionUpdate
      • SubscriptionAdjustmentRequest
      • SubscriptionTransactionsResponse
    • Webhooks
    • Analytics
      • AnalyticsTransactionItem
      • AnalyticsListResponse
    • Settlement
      • SettlementDateRangeRequest
      • SettlementTicketRequest
      • SettlementResponse
    • Chargebacks
      • ChargebackListResponse
      • ChargebackSearchRequest
    • Cash
      • CashChargeInitRequest
      • CashStatusResponse
    • Transfer
      • TransferTokenRequest
      • TransferInitRequest
      • TransferStatusResponse
    • Payouts
      • PayoutsWebhooksItem
    • Smart Link
      • SmartLinkAmount
    • Terminal
      • AmountWithTaxes
      • AmountCore
      • AmountWithTip
      • TerminalCardDetails
      • TerminalPosDetails
      • TerminalContactDetails
      • TerminalCardData
      • TransactionResponse
      • LinkFailure
      • TransactionSearchRequest
      • PrintJobRequest
      • PrinterError
      • PrintJobStatus
      • PrintWebhookPayload
    • RequestBodies
      • one-and-two-step-payment
    • currency
    • SettlementDateRangeRequest
    • SubscriptionTransactionsResponse
    • card-old
    • AmountWithTaxes-old
    • Card
    • Shipping Address
    • transactionType
    • ChargebackItem-old
    • SettlementTicketRequest
    • SubscriptionTransaction
    • amount
    • AmountCore-old
    • CommandText-old
    • networkToken
    • Language
    • extra_taxes
    • card_details
    • currency
    • ErrorResponse400-old
    • webhooksItem
    • ErrorResponse
    • SettlementResponse
    • extra_taxes-old
    • ExtraTaxes-old
    • CommandColumns-old
    • currency
    • card
    • orderDetails-old
    • Country
    • ContactDetails-old
    • ErrorResponse401-old
    • SettlementRecord
    • pos_details-old
    • ColumnItem-old
    • Amount
    • amount
    • documentType
    • extraTaxes-old
    • ErrorResponse403-old
    • card_details-old
    • TransactionResponse-old
    • CommandDivider-old
    • extraTaxes
    • enc_tlv
    • payment_method
    • ErrorResponse500-old
    • threeDomainSecure
    • enc_tlv
    • RawResponse-old
    • CommandFeed-old
    • Deferred
    • pos_details
    • deferred
    • binInfo
    • contact_details-old
    • CardData-old
    • CommandSpace-old
    • paymentMethod-old
    • Metadata
    • contact_details
    • Billing-Address-old
    • Deferred-old
    • deferred-old
    • sub_merchant
    • AmountWithTip-old
    • CommandCut-old
    • ContactDetails
    • sub_merchant
    • headers
    • Amount-old
    • metadata
    • LinkFailure-old
    • CommandImage-old
    • metadata
    • SubscriptionUpdate
    • TransactionSearchRequest-old
    • CommandQR-old
    • orderDetails
    • Subscription
    • payment_submethod
    • citMit
    • SubscriptionAdjustmentRequest
    • CommandBarcode-old
    • Shipping Address
    • messageFields
    • PrinterError-old
    • Billing Address
    • webhooksChargeback
    • Language
    • PrintJobStatus-old
    • currency-cash-in-old
    • product
    • webhooks
    • networkToken-old
    • PrintWebhookPayload-old
    • currency-CL-old
    • threeDomainSecure
    • webhooks
    • product-old
    • headers
    • webhooksChargeback
    • UnexpectedErrorResponse-old
    • citMit
    • network
    • Card-old-old
    • Submerchant-old
    • binInfo
    • Shipping-Address-old
    • messageFields
    • Promotions-old
    • UnexpectedErrorResponse
    • transactionType
    • InvalidBinResponse-old
    • GetConfigurationRequest-old
    • BadRequestResponse-old
    • Amount-CL-old
BienvenidaPerú 🇵🇪
México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
BienvenidaPerú 🇵🇪
México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

Smartlinks V2

Smartlinks are hosted payment pages generated by Kushki. You create a link, share it with your customer (via email, WhatsApp, SMS, or any channel), and the customer completes payment in a Kushki-hosted form — no frontend integration required on your end.

Payment configuration types#

TypeDescription
fixedYou define the amount when creating the link. The customer pays exactly that amount. Supports one-time, subscription, and mixed flows.
openThe customer enters the amount at checkout. Useful for donations, invoices with variable totals, or tip flows.

Supported payment methods#

Methodfixedopen
credit-card✅✅
cash✅✅
transfer✅✅
subscription✅—

Create a Smartlink#

Call POST /smartlink/v2/smart-link. Kushki returns a smartLinkUrl ready to share.
{
  "publicMerchantId": "20000000103802320000",
  "merchantName": "Mi Comercio Perú",
  "paymentConfigType": "fixed",
  "paymentConfig": {
    "paymentType": "unique",
    "amount": {
      "currency": "PEN",
      "subtotalIva": 0,
      "subtotalIva0": 250,
      "iva": 0,
      "ice": 0
    },
    "paymentMethod": ["credit-card", "transfer"]
  },
  "generalConfig": {
    "productName": "Consulta médica",
    "description": "Pago por consulta médica online",
    "productImage": "https://yoursite.com/img/product.png",
    "brandLogo": "https://yoursite.com/img/logo.png",
    "executionLimit": 1,
    "showTimer": false,
    "enabled": true,
    "termsAndConditions": "https://yoursite.com/terms"
  },
  "styleAndStructure": {
    "structure": "checkout"
  },
  "contact": {
    "email": "soporte@micomercio.pe"
  },
  "formConfig": [],
  "language": "es"
}
Response:
{
  "smartLinkUrl": "https://pay.kushkipagos.com/global/4RUvloWDA"
}

Request fields#

Top-level#

FieldRequiredDescription
publicMerchantIdYesYour Kushki Public Key.
merchantNameYesName shown in the Smartlink URL.
paymentConfigTypeNofixed (predefined amount) or open (customer enters amount).
paymentConfigNoPayment settings for fixed type — see below.
paymentConfig NoPayment settings for open type — see below.
generalConfigYesProduct info, display settings, execution limits — see below.
styleAndStructureYesLayout and visual style — see below.
contactYesSupport contact details.
formConfigYesArray of custom form fields shown at checkout (can be empty []).
languageNoCheckout language: es (Spanish), en (English), br (Portuguese).

paymentConfig — fixed amount#

FieldRequiredDescription
paymentTypeYesunique (one-time), subscription (recurring), or mixed (both options).
amountYesAmount object: currency, subtotalIva, subtotalIva0, iva, ice.
paymentMethodYesArray of enabled methods: cash, credit-card, transfer, subscription.
subscriptionOptionsNoRequired when paymentType is subscription or mixed.
mixedOptionsNoRequired when paymentType is mixed.
fastPaymentsNoFast payment methods to enable (e.g., "APPLE_PAY").

paymentConfig — open amount#

FieldRequiredDescription
paymentTypeYesAlways unique.
paymentMethodYesArray of enabled methods: cash, credit-card, transfer.
currencyYesPEN or USD.
taxEnabledYestrue to apply taxes.
taxPercentageNoTax percentage. Required if taxEnabled is true.
defaultAmountNoPre-filled amount (must be between minAmount and maxAmount).
minAmountNoMinimum amount the customer can enter.
maxAmountNoMaximum amount the customer can enter.

generalConfig#

FieldRequiredDescription
productNameYesProduct or service name shown at checkout.
descriptionYesDescription (HTML supported).
productImageYesURL of the product image.
brandLogoYesURL of your brand logo.
executionLimitYesHow many times the link can be used. Set to 0 for unlimited.
showTimerYesShow a countdown timer on the checkout page.
enabledYestrue to activate the link immediately.
termsAndConditionsYesURL to your terms and conditions.
expirationDateNoExpiration timestamp (UTC epoch).
promotionalTextNoPromotional message shown at checkout.
buyButtonTextNoCustom buy button label. Required if structure is cover.
payButtonTextNoCustom pay button label.
hidePayButtonAmountNotrue to hide the amount on the pay button.

styleAndStructure#

FieldRequiredDescription
structureYescheckout (standard form) or cover (full-page cover design).
coverModelNoImage alignment for cover: left, center, or right. Required for cover.
buttonStyleNoButton shape: square, semi, or round. Required for cover.
primaryColorNoPrimary brand color in hexadecimal.
secondaryColorNoSecondary brand color in hexadecimal.

Custom form fields (formConfig)#

Add up to 6 types of custom fields to collect information from your customer at checkout:
TypeDescription
InputSingle-line text field (e.g., name, order ID).
SelectDropdown with predefined options.
DateDate picker calendar.
AreaMulti-line text area.
CheckboxMultiple-selection from a list.
RadioSingle-selection from a list.

Other operations#

MethodEndpointDescription
GET/smartlink/v2/smart-link/{smartlinkId}Retrieve a Smartlink's current configuration and usage stats.
PATCH/smartlink/v2/smart-link/{smartlinkId}Update an existing Smartlink's configuration.
DELETE/smartlink/v2/smart-link/{smartlinkId}Permanently delete a Smartlink. Deleted links are immediately unavailable.

Authentication#

All endpoints require your Private Key:

Using the API#

🟢 Production
🧪 Sandbox (UAT)
https://api.kushkipagos.com/

Available Endpoints#

Create Smartlink
Generate a hosted payment page URL. Configure amount type, payment methods, layout, and custom form fields.
Get Smartlink
Retrieve the full configuration and usage count for an existing Smartlink.
Update Smartlink
Modify an existing Smartlink's settings without deleting and recreating it.
Delete Smartlink
Permanently remove a Smartlink. Customers who try to use the URL will see it as unavailable.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-11 00:04:39
Previous
Transaction Status
Next
Create a Smartlink
Built with