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

Card Out

Card Outs (card payouts) let you push money directly to a recipient's debit card. Use it for disbursements, winnings payouts, refunds to card, or any flow where you need to send funds to a specific card number.
Keep in mind!
Token generation requires your Private Key (Private-Merchant-Id). Never expose it in client-side or frontend code — always call the token endpoint from your backend.

Two payout modes#

ModeDescription
One-time payoutTokenize the card once and push funds immediately.
Subscription payoutRegister the card as a subscription and push funds on demand at any time using the subscriptionId.

One-time payout flow#

1
Request a card payout token
Call POST /payouts/card/v1/tokens with the recipient's card data and the paymentType. Returns a one-time token.
{
  "card": {
    "name": "Carlos Ramirez",
    "number": "4111111111111111",
    "expiryMonth": "12",
    "expiryYear": "29"
  },
  "paymentType": "FD"
}
Response:
{
  "token": "8122eb4bda29476f8dc71b6426a7fd5d",
  "maskedPan": "495703XXXXXX0454",
  "brand": "VISA"
}
2
Push funds
Call POST /payouts/card/v1/pushFunds with the token (or card data directly), amount, and recipient details.
{
  "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"
}
A successful push returns transactionStatus: "APPROVAL" with a ticketNumber and transactionReference.
3
Verify the transaction
Call GET /payouts/card/v1/transaction/{transactionReference} to confirm the final status.
{
  "transactionStatus": "APPROVAL",
  "ticketNumber": "951738256068368362",
  "transactionReference": "763274a1-b47b-493f-934f-047801cc04a0",
  "amount": 250.00,
  "processor": {
    "code": "00",
    "message": "Approved and completed successfully"
  }
}

Subscription payout flow#

Use subscriptions when you need to push funds to the same card multiple times (e.g., regular payouts, recurring winnings).
1
Create a subscription token
Call POST /payouts/card/v1/subscriptions/tokens with the card data. Returns a subscriptionId you store on your side.
{
  "card": {
    "name": "Carlos Ramirez",
    "number": "4111111111111111",
    "expiryMonth": "03",
    "expiryYear": "27"
  },
  "paymentType": "FD"
}
Response:
{
  "subscriptionId": "956a8eb60epa4993b378e34488610e7f",
  "maskedPan": "495703XXXXXX0454",
  "brand": "VISA"
}
2
Push funds using the subscription
Call POST /payouts/card/v1/subscriptions/pushFunds/{subscriptionId} whenever you want to disburse funds — no card data needed again.
{
  "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"
}
3
Delete the subscription (when done)
Call DELETE /payouts/card/v1/token/{subscriptionId} to remove the registered card when no further payouts are needed.

Payment types#

Peru supports two paymentType values:
ValueDescription
FDFunds Disbursement — general-purpose fund push
OGOnline Gambling — for gaming/lottery platforms

Push funds request fields#

FieldRequiredDescription
tokenOne of token or cardOne-time token from the payout token endpoint.
cardOne of token or cardCard data directly (name, number, expiryMonth, expiryYear).
paymentTypeYesFD or OG.
amount.currencyYesAlways PEN for Peru.
amount.totalAmountYesAmount to push to the card.
clientTransactionIdYesYour unique UUID for this transaction — used for idempotency and status lookup.
recipient.addressNoRecipient's street address.
recipient.cityNoRecipient's city.
recipient.countryNoRecipient's country code (e.g., "PER").
recipient.zipCodeNoRecipient's postal code.
webhooksNoArray of URLs to notify on transaction status changes.
fullResponseNoPass "v2" to receive full transaction details including BIN info, approval code, and amounts.
metadataNoCustom key-value pairs for your own tracking.

Webhooks#

Include a webhooks array in your push funds request to receive real-time notifications:
{
  "webhooks": ["https://yoursite.com/kushki/notify"]
}

Authentication#


Using the API#

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

Available Endpoints#

Get Card Payout Token
Tokenize a card for a one-time payout. Returns a single-use token and masked PAN.
Push Funds
Send funds to a card using a token or card data directly. Supports webhooks and full response.
Get Subscription Token
Register a card for recurring payouts. Returns a subscriptionId for future pushes.
Push Funds (Subscription)
Send funds to a previously registered subscription card without re-submitting card data.
Get Transaction Status
Check the status of a card payout by transaction reference.
Delete Subscription
Remove a registered card subscription permanently.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-11 00:04:36
Previous
Get recurring charge Info
Next
Get Card Payout Token
Built with