1. Kushki One Payment App
Kushki Docs
English
  • Español
  • English
  • Home
  • Quick Start
    • Frequently Asked Questions
    • Moving to Production
    • Policy for Important API Changes
    • Test Data
    • Error Codes
    • Latest Features
  • Payment Glossary
    • Payments Glossary
  • One-time card payments (Online)
    • Supported card brands
    • Functionalities by business model
    • Network Tokens
    • One-step Payments
      • How do Card Payments Work?
      • Accept a Card Payment
      • Direct charge (without token)
      • Accept One-Time Payments with OTP
      • OTP Authentication Error Codes
      • Error codes for single card payments
    • Two-steps Payments
      • How do one-time payments with authorization and capture work?
      • Receive payments with authorization and capture
    • Refunds
      • Returns, cancellations, and refunds
    • 3DS Authentication
      • Introduction to 3DS
      • 3DS API integration
      • 3DS integration with kushki.js library
      • 3DS API integration plus kushki.js library
      • 3DS Error Codes
    • Apple Pay Payments
      • Apple Pay Configuration
      • Apple Pay Sandbox testing
  • Recurring Card Payments (Online)
    • Functionalities by business model
    • External subscriptions to Kushki
    • Authenticate your subscriptions with 3DS
    • Accept one-click payments with 3DS
    • Error codes in recurring charges
    • Apple Pay for Subscriptions
    • Scheduled payments
      • How do Credit or Debit Card Payment Recurring Charges Work?
      • Create a recurring charge
      • Manage your Scheduled Charges
    • OneClick Payments
      • Accepting One-Click Payments
      • How does authorization and capture work in OneClick payments?
      • Receive OneClick payments with authorization and capture
  • Card-present payments
    • Accept card present payments
    • Test data
    • Webhooks for card present
    • Raw card-present API
      • Raw card-present API overview
      • Cryptographic key exchange
      • Sample script to encrypt information
      • Take Payments
      • Frequently Asked Questions
      • Error codes for card-present transactions
    • Transactions
      • Transactions
      • Cancel payments
    • Kushki One
      • First Steps
      • Autenticación y Cifrado de Requests
      • Accept payments with Kushki One
      • Amount Format
      • Async services and webhooks
      • Printing on SmartPOS terminal
      • Unified Error Catalog — Kushki ONE Connect
    • Kushki One Payment App
      • Overview
      • Process a payment
      • Split payment on the terminal
      • Refunds and PreAuth & Capture
      • Review Your Transactions
      • Terminal Setup
  • Wire Transfers
    • Shopping experiences and transaction details for bank transfer payments
    • Receive Wire Transfers
    • Check the Status of a Transaction
  • Cash Payments
    • Accept a Cash Payment
    • Authorized locations
    • Error Codes for declined cash transaction
  • Alternative payment methods (APM)
    • How do APM payments work?
    • Accept Yape payments
  • Money Disbursement
    • Wire Transfer
      • How does the disbursement through bank transfer work?
      • Payment disbursement to bank accounts
      • Error codes for transfer disbursements
    • Card
      • How does sending funds to cards work?
      • Send money to a card
      • Error Codes
  • Plugins
    • Shopify
      • Shopify
      • Plugin Operation
    • VTEX
      • VTEX Integration Guide
  • Payment Links
    • Smartlinks
  • Payment forms and buttons
    • Kajita
      • How Does it Work?
      • Payment Kajitas
    • Payment Button
      • Overview
      • Generate a payment button
  • Branch Offices Management
    • How to Onboard Submerchants via API
  • Notifications
    • Good Practices
    • Check your Webhooks
    • One-time Payments Webhooks
      • Webhook for One-Time Payments made with a card
      • Webhook for One-Time Payments by Wire Transfer
      • Webhook for One-Time Payments in Cash
    • Recurring Payments Webhooks
      • Webhook for Recurring Payments Made with Card
    • Payment Distribution Webhooks
      • Webhook for payment disbursement through wire transfer
      • Webhook for card disbursement
    • Payment button Webhooks
      • Webhooks with Payment Button
    • Smartlinks Webhooks
      • Webhooks with Smartlinks
    • Refunds Webhooks
      • Webhook for Voids and Refunds
      • Chargeback Webhooks
HomeMexico 🇲🇽Ecuador 🇪🇨Chile 🇨🇱Colombia 🇨🇴Peru 🇵🇪
HomeMexico 🇲🇽Ecuador 🇪🇨Chile 🇨🇱Colombia 🇨🇴Peru 🇵🇪
Status
Soporte / Support
English
  • Español
  • English
  1. Kushki One Payment App

Refunds and PreAuth & Capture

Process full or partial refunds and manage pre-authorizations directly from your SmartPOS terminal.
🚧 Early Release — Beta
This product is in early access. Parameters, response structures and behaviors may change without prior notice. Do not use this version in production without coordinating with the Kushki integrations team first.
Two advanced cashier flows that require prior configuration and, at some merchants, administrator credentials.

Refunds#

Before you start#

Requirements
Refunds must be enabled in Settings → Refund Settings. If Require Supervisor Approval is on, have an administrator user's credentials ready before you start the flow.
A refund can be full, for the entire original sale amount, or partial, for a smaller value. In both cases the app records the reason and generates a new Ticket # for the refund.
A refund can take days to appear
The app uses a single word, Refund, for two different operations that settle on very different timelines:
Before the cut-off time on the day of the sale, the operation is a void: the amount is never debited from the customer's account.
After the cut-off, the operation falls into the refund cycle and can take business days to appear on the customer's statement.
CountryCut-off time (local)
Chile23:59 on the transaction day
Colombia23:59 on the transaction day
Mexico23:59 on the transaction day
Peru23:59 on the transaction day
If you process a refund close to closing time, tell the customer the money may take several days to show up. The terminal displays Approved in both cases.

Step 1 — Find the original transaction#

Go to Transactions → Sales List, use the filters to find the sale and tap the card to open its detail. Inside the detail, select Refund.
There is also a shortcut on Home
The Refund operation also appears in the operations menu on the Home tab. This guide documents the path from the Sales List, which lets you verify the original transaction before refunding it.
Sales list in the app

Step 2 — Choose the refund type#

The app shows the original amount and two options:
OptionDescription
Full AmountReturns 100% of the original value. The amount is preloaded automatically
CustomOpens the numeric keypad. The header shows in real time how much of the total you are refunding
Refund type selection
Confirm the amount by tapping the blue check button.

Step 3 — Select the reason#

The app requires a justification before it processes the refund. The options are Wrong Item, Damaged, Customer Dissatisfied and Other.
Refund reason selector
Select the reason and tap Confirm.

Step 4 — Processing and confirmation#

The terminal processes the refund with the card network. If approved, it shows the Approved screen with a "refunded successfully" message and a new receipt.
Successful refund screen
ActionDescription
PrintPrints the refund receipt on the terminal
EmailSends the receipt to the merchant's or the customer's email
SkipCloses the flow without generating a receipt

How the refund looks in the Sales List#

Once processed, the refund appears in the original transaction's detail with this breakdown:
Detail of a partial refund
FieldWhat it represents
Original SaleTotal amount of the transaction as originally approved
VoidedAmount returned to the customer
Remaining AuthorizationBalance still authorized after the partial refund: Original Sale minus Voided
The detail screen says Voided, not Refund
The flow is called Refund but the transaction detail labels the field as Voided. They mean the same thing: the amount you returned to the customer.
In the period's Sales Summary that amount appears as Refunds and is subtracted from the day's net total.

Auth & Capture (pre-authorization and capture)#

A pre-authorization reserves an amount on the customer's card without charging it right away. The actual charge happens later, in a separate step called capture. It is the standard flow at hotels, car rentals and restaurants that adjust the final amount before closing the check.
Requires prior enablement
Auth & Capture must be enabled for your merchant account at the Kushki level. If you do not see the option on the terminal, contact your account manager.

Create a pre-authorization#

Step 1 — Enter the amount#

From the Home tab, tap Authorization in the operations menu. The keypad header shows Authorization instead of Sale. Enter the amount to pre-authorize and tap the confirmation button.
Authorization screen

Step 2 — Enter a reference#

Optional, but recommended
The reference, up to 18 characters, makes it easier to find the pre-authorization on the Capture Payment screen. Useful at merchants with many open pre-authorizations at once.
Tap Save Ref to attach it, or Skip to continue without one.
Reference screen

Step 3 — Card presentation#

The terminal shows the card-waiting screen. The customer presents their card by contactless, chip or magnetic stripe. The process is identical to the regular sale flow.
Card insertion screen

Step 4 — Auth approved#

If the authorization succeeds, the app shows the Auth Approved screen with an "Authorized - Not Captured" message. The amount is reserved but not yet debited. A Ticket # and a receipt are generated.
Pre-authorization approved screen
The reservation has an expiry date
Validity depends on the card type:
Card typeValidity from authorization
Debit (Visa / Mastercard)7 days
Credit (Visa / Mastercard)28 days
The terminal shows the remaining window on Capture Payment. If you do not capture before it expires, the reservation is released automatically and you will have to authorize again.

Capture a pre-authorization#

Step 1 — Open Capture Payment#

From the Home tab, tap Capture Payment in the operations menu. The screen lists every pending pre-authorization with its reference, amount and expiry date.
Capture payments screen
Each pending pre-authorization has three actions:
ActionDescription
CancelCancels the pre-authorization and releases the reserved amount. Equivalent to a void
Re-AuthRenews the pre-authorization for a new period if it is close to expiring, or adjusts the reserved amount
CaptureConfirms the actual charge. Opens the amount confirmation screen

Step 2 — Confirm the amount to capture#

The app shows the Confirm total before capturing screen with the authorized amount and the total to capture. Tap Capture Payment to confirm.
Capture total confirmation screen
You can capture up to 10% above the authorized amount
The maximum amount to capture can be up to 10% higher than the sum of the initial authorization plus every re-authorization that has not been canceled.
Only one capture is allowed per authorization cycle. If you need to charge more than that limit, use Re-Auth to raise the reservation before capturing.

Step 3 — Capture approved#

The app shows the Approved screen with a "charged successfully" message and generates the transaction's final receipt.
Capture approved screen
Which receipt is the definitive one
The capture receipt is the transaction's fiscal document. The Auth Approved receipt is only a record of the reservation: it does not evidence a charge.
Review your transactions
Learn how to filter the Sales List and generate the daily Summary from the terminal.
Terminal settings
Enable refunds, configure Auth & Capture and manage cashier users.
Modificado en 2026-10-05 17:12:20
Anterior
Split payment on the terminal
Siguiente
Review Your Transactions
Built with