Kushki Card Present Charges API

Sale, void, and settlement for card-present

OpenAPI Specification

kushki-card-present-charges-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Kushki Card Payments Branches Card Present Charges 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: Card Present Charges
  description: Sale, void, and settlement for card-present
paths:
  /cardpresent/v1/charges:
    post:
      summary: Kushki Create Card Present Charge
      description: Create a card-present charge from an EMV/contactless transaction sealed by the terminal.
      operationId: createCardPresentCharge
      tags:
      - Card Present Charges
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardPresentChargeRequest'
      responses:
        '200':
          description: Charge approved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardPresentChargeResponse'
  /cardpresent/v1/charges/{ticketNumber}/void:
    post:
      summary: Kushki Void Card Present Charge
      description: Void a card-present charge.
      operationId: voidCardPresentCharge
      tags:
      - Card Present Charges
      parameters:
      - name: ticketNumber
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Voided
components:
  schemas:
    CardPresentChargeResponse:
      type: object
      properties:
        ticketNumber:
          type: string
        approvalCode:
          type: string
        responseText:
          type: string
        responseCode:
          type: string
        cardBrand:
          type: string
        last4:
          type: string
        entryMode:
          type: string
    CardPresentChargeRequest:
      type: object
      required:
      - terminalId
      - sealedCard
      - amount
      properties:
        terminalId:
          type: string
        sealedCard:
          type: object
          description: Encryption envelope sourced from the terminal.
          properties:
            ksn:
              type: string
            track2:
              type: string
            emvData:
              type: string
            pinBlock:
              type: string
        amount:
          type: object
          required:
          - value
          - currency
          properties:
            value:
              type: number
            currency:
              type: string
        entryMode:
          type: string
          enum:
          - CHIP
          - CONTACTLESS
          - MAG_STRIPE
          - MANUAL
        deferred:
          type: object
          properties:
            months:
              type: integer
  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.