openapi: 3.1.0 info: title: Kushki Card Payments Branches Cash API description: 'Card-not-present REST API for the Kushki regional non-banking acquirer. Card numbers are tokenized client-side by Kushki.js Hosted Fields or the iOS / Android SDKs and the resulting `transactionToken` is exchanged server-side for a charge, pre-authorization, capture, or void. ' version: 1.0.0 contact: name: Kushki url: https://kushkipagos.com/ email: dev@kushkipagos.com license: name: Kushki API Terms url: https://kushkipagos.com/legal servers: - url: https://api.kushkipagos.com description: Production - url: https://api-uat.kushkipagos.com description: UAT / Sandbox - url: https://api-stg.kushkipagos.com description: Staging security: - PublicMerchantId: [] - PrivateMerchantId: [] tags: - name: Cash description: Cash voucher generation and lookup paths: /cash/v1/charges: post: summary: Kushki Create Cash Voucher description: Generate a cash voucher. Returns a unique reference (PIN, barcode, or numeric token) the payer presents at the cash network. operationId: createCashCharge tags: - Cash requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CashChargeRequest' example: name: Juan lastName: Perez identification: '100000001' documentType: CC email: payer@example.com totalAmount: 50000 currency: COP description: Order 42 expirationDate: '2026-05-31' responses: '200': description: Voucher created content: application/json: schema: $ref: '#/components/schemas/CashChargeResponse' 4XX: $ref: '#/components/responses/ErrorResponse' /cash/v1/charges/{ticketNumber}: get: summary: Kushki Get Cash Voucher description: Retrieve the current status of a cash voucher (PENDING, PAID, EXPIRED, CANCELLED). operationId: getCashCharge tags: - Cash parameters: - name: ticketNumber in: path required: true schema: type: string responses: '200': description: Voucher content: application/json: schema: $ref: '#/components/schemas/CashChargeResponse' delete: summary: Kushki Cancel Cash Voucher description: Cancel an outstanding cash voucher before it is paid. operationId: cancelCashCharge tags: - Cash parameters: - name: ticketNumber in: path required: true schema: type: string responses: '200': description: Cancelled components: responses: ErrorResponse: description: Error content: application/json: schema: $ref: '#/components/schemas/Error' schemas: CashChargeResponse: type: object properties: pin: type: string description: Numeric or alphanumeric reference shown to the payer. ticketNumber: type: string barcode: type: string description: Barcode payload (Boleto / OXXO). url: type: string format: uri description: Hosted voucher page. expirationDate: type: string format: date status: type: string enum: - PENDING - PAID - EXPIRED - CANCELLED paymentBrand: type: string enum: - OXXO - SEVEN_ELEVEN - PAGOEFECTIVO - BOLETO - EFECTIVO_EC - EFECTIVO_CO Error: type: object properties: code: type: string message: type: string CashChargeRequest: type: object required: - name - lastName - identification - email - totalAmount - currency properties: name: type: string lastName: type: string identification: type: string documentType: type: string enum: - CC - NIT - CE - DNI - RUT - CURP - RFC - RUC - CPF - CNPJ email: type: string format: email phoneNumber: type: string totalAmount: type: number currency: type: string enum: - USD - COP - PEN - CLP - MXN - BRL description: type: string expirationDate: type: string format: date metadata: type: object additionalProperties: true securitySchemes: PublicMerchantId: type: apiKey in: header name: Public-Merchant-Id description: Client-side merchant key. Used by Kushki.js and mobile SDKs to tokenize cards. Never use server-side for charging. PrivateMerchantId: type: apiKey in: header name: Private-Merchant-Id description: Server-side merchant key. Required for charge, capture, void, refund, subscription, and payout calls.