> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payfonte.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Confirm Direct Charge Customer Input

> Submit customer input, such as an OTP, when a Direct Charge response returns `action` as `otp`.



## OpenAPI

````yaml /api-reference/openapi-3.1.yml post /payments/v1/payments/confirm
openapi: 3.1.0
info:
  title: Payfonte - OpenAPI 3.1
  description: >-
    This is the minimal API for payfonte collection and disbursements API. To
    view a more elaborate documentation see here.


    Some useful links:

    - [Home](https://payfonte.com)

    - [Payfonte Documentation](https://docs.payfonte.com)
  termsOfService: https://www.payfonte.com/terms
  contact:
    email: tech@payfonte.com
  version: 1.0.0
servers:
  - url: https://sandbox-api.payfonte.com
    description: Sandbox API Base URL
  - url: https://api.payfonte.com
    description: Production API Base URL
security:
  - clientId: []
    clientSecret: []
tags:
  - name: Collections
    description: Everything about your payment collection with payfonte
    externalDocs:
      description: Find out more
      url: https://docs.payfonte.com/#/collections/inline
  - name: Card Collections
    description: Everything about your card payment collections with payfonte
  - name: Disbursements
    description: >
      Find full list of supported Disbursement providers here [Supported
      Providers](https://docs.payfonte.com/#/Disbursements/supported-Disbursements)

      There are 3 main process to carry out a Disbursement on Payfonte

      1. Validate A transfer Recipient

      2. Initiate a Disbursement Request

      3. Verify a Disbursement Request
  - name: Wallets
    description: >-
      A Little bit about our [wallets here]
      (https://docs.payfonte.com/#/introductions/wallets)
paths:
  /payments/v1/payments/confirm:
    post:
      tags:
        - Collections
      summary: Confirm Direct Charge Customer Input
      description: >-
        Submit customer input, such as an OTP, when a Direct Charge response
        returns `action` as `otp`.
      operationId: confirmDirectChargeCustomerInput
      requestBody:
        description: Direct Charge customer input confirmation request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectChargeConfirmRequest'
            example:
              reference: DDC20260702112401ZIWGF
              customerInput:
                otp: '445985'
        required: true
      responses:
        '201':
          description: Customer input accepted and payment confirmation is processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectChargeConfirmEnvelope'
              example:
                statusCode: 201
                data:
                  action: processing
                  sessionId: cos-1z3x983b01300
                  provider: qmoney-gambia
                  reference: DDC20260702115234PTIFG
                  providersReference: PIX_44241170102532681668
                  amount: 1000
                  totalAmount: 1000
                  charge: 0
                  status: pending
                  data:
                    message: >-
                      OTP submitted successfully. Payment confirmation is
                      processing.
                  statusDescription: Awaiting Provider's Feedback
components:
  schemas:
    DirectChargeConfirmRequest:
      required:
        - reference
        - customerInput
      type: object
      properties:
        reference:
          type: string
          description: Direct Charge transaction reference returned by the initial request.
          example: DDC20260702112401ZIWGF
        customerInput:
          type: object
          required:
            - otp
          properties:
            otp:
              type: string
              description: One-time password collected from the customer.
              example: '445985'
    DirectChargeConfirmEnvelope:
      required:
        - statusCode
        - data
      type: object
      properties:
        statusCode:
          type: integer
          description: Application status code returned in the response body.
          example: 201
        data:
          $ref: '#/components/schemas/DirectChargeConfirmResponse'
    DirectChargeConfirmResponse:
      type: object
      properties:
        action:
          type: string
          description: Next action required after customer input is submitted.
          example: processing
        sessionId:
          type: string
          description: Transaction session ID.
          example: cos-1z3x983b01300
        provider:
          type: string
          description: Provider slug processing the transaction.
          example: qmoney-gambia
        reference:
          type: string
          description: Transaction reference.
          example: DDC20260702115234PTIFG
        providersReference:
          type: string
          description: Provider-side transaction reference, when available.
          example: PIX_44241170102532681668
        amount:
          $ref: '#/components/schemas/Amount'
          example: 1000
        totalAmount:
          type: integer
          description: Total amount after charges.
          example: 1000
        charge:
          type: integer
          description: Transaction charge.
          example: 0
        status:
          type: string
          description: Transaction status after customer input is submitted.
          example: pending
        data:
          type: object
          properties:
            message:
              type: string
              example: OTP submitted successfully. Payment confirmation is processing.
        statusDescription:
          type: string
          example: Awaiting Provider's Feedback
    Amount:
      type: integer
      description: >-
        Amount should be in the subunit of the supported currency i.e value *
        100 [Amount
        Specification](https://docs.payfonte.com/guides/introductions/amount-specification)
      format: int64
      example: 100000
      examples:
        - 100000
  securitySchemes:
    clientId:
      type: apiKey
      name: client-id
      in: header
    clientSecret:
      type: apiKey
      name: client-secret
      in: header

````