Culqi 3DS API

3-D Secure charge confirmation on the secure host.

OpenAPI Specification

culqi-3ds-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Culqi API v2 3DS API
  description: Culqi is a Peruvian online payments platform (a Grupo Credicorp / Krealo company) that lets businesses accept card, Yape, PagoEfectivo, mobile wallet and Cuotealo (installment) payments. The REST API v2 exposes tokenization, charges (cargos), orders, refunds, customers, cards, plans, subscriptions, webhook events, card-BIN (iin) lookup and transfers. Card data is tokenized client-side against the PCI-scoped secure host; all money-movement and management operations run against the server host with a secret key. Amounts are integers in the currency minor unit (cents); supported currencies are PEN (Peruvian Sol) and USD.
  termsOfService: https://culqi.com/terminos_y_condiciones/
  contact:
    name: Culqi Developer Support
    url: https://docs.culqi.com/
  version: '2.0'
servers:
- url: https://api.culqi.com/v2
  description: Server-side host for charges, orders, refunds, customers, cards, plans, subscriptions, events, iins and transfers (authenticated with a secret key, sk_).
- url: https://secure.culqi.com/v2
  description: PCI-scoped host for card tokenization and 3DS charge confirmation (authenticated with a public key, pk_).
tags:
- name: 3DS
  description: 3-D Secure charge confirmation on the secure host.
paths:
  /confirm:
    servers:
    - url: https://secure.culqi.com/v2
    post:
      operationId: confirmCharge
      tags:
      - 3DS
      summary: Confirm a 3DS-authenticated charge
      description: Confirms a charge whose token was authenticated via Culqi 3DS. Sent to the secure host with the public key after the cardholder completes the 3-D Secure challenge.
      security:
      - publicKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmRequest'
      responses:
        '200':
          description: Confirmation result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '400':
          $ref: '#/components/responses/Error'
components:
  schemas:
    Metadata:
      type: object
      description: Arbitrary key/value metadata attached to a resource.
      additionalProperties:
        type: string
    Charge:
      type: object
      properties:
        object:
          type: string
          example: charge
        id:
          type: string
          example: chr_test_xxxxxxxxxxxx
        amount:
          type: integer
        amount_refunded:
          type: integer
        currency_code:
          $ref: '#/components/schemas/CurrencyCode'
        email:
          type: string
        description:
          type: string
        source:
          type: object
          additionalProperties: true
        outcome:
          type: object
          additionalProperties: true
        capture:
          type: boolean
        creation_date:
          type: integer
        metadata:
          $ref: '#/components/schemas/Metadata'
    ConfirmRequest:
      type: object
      required:
      - token_id
      properties:
        token_id:
          type: string
        usermail:
          type: string
    CurrencyCode:
      type: string
      description: ISO currency code. Culqi supports PEN and USD.
      enum:
      - PEN
      - USD
    Error:
      type: object
      properties:
        object:
          type: string
          example: error
        type:
          type: string
          example: card_error
        merchant_message:
          type: string
        user_message:
          type: string
        param:
          type: string
        code:
          type: string
  responses:
    Error:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      bearerFormat: sk_live_/sk_test_ secret key
      description: 'Server-side secret key sent as an HTTP Bearer token in the Authorization header, e.g. `Authorization: Bearer sk_live_...`.'
    publicKey:
      type: http
      scheme: bearer
      bearerFormat: pk_live_/pk_test_ public key
      description: 'Public key sent as an HTTP Bearer token for tokenization and 3DS confirm on the secure host, e.g. `Authorization: Bearer pk_live_...`.'