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

# Create a chargeback



## OpenAPI

````yaml Flutterwave_v4_Open_API.json post /chargebacks
openapi: 3.1.0
info:
  version: '1.0'
  title: Flutterwave APIs
  description: APIs for Enterprise Customers
  contact:
    name: Flutterwave
    email: hi@flutterwavego.com
servers:
  - url: https://developersandbox-api.flutterwave.com
    description: Dev server
security:
  - bearerAuth: []
paths:
  /chargebacks:
    post:
      tags:
        - Chargebacks
      summary: Create a chargeback
      operationId: chargebacks_post
      parameters:
        - $ref: '#/components/parameters/trace_id'
        - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chargeback_in'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  status:
                    $ref: '#/components/schemas/status'
                  message:
                    type: string
                  meta:
                    type: object
                  data:
                    $ref: '#/components/schemas/chargeback'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400'
        '401':
          description: Unauthorised request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
components:
  parameters:
    trace_id:
      description: >-
        A unique identifier to track this operation. It must be between 12 and
        255 characters in length.
      in: header
      name: X-Trace-Id
      schema:
        type: string
        minLength: 12
        maxLength: 255
      example: acb123e4-f567-4a8b-9c0d-1e2f3a4b5c6d
    idempotency_key:
      description: >-
        A unique identifier to prevent duplicate requests. It must be between 12
        and 255 characters in length.
      in: header
      name: X-Idempotency-Key
      required: false
      schema:
        type: string
        minLength: 12
        maxLength: 255
      example: req-5c0a2e8c-f3b9-4d1a-8e2f-0c1d2e3f4a5b
  schemas:
    '400':
      description: Bad Request
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        error:
          type: object
          properties:
            type:
              type: string
              example: REQUEST_NOT_VALID
            code:
              type: string
              example: '10400'
            message:
              type: string
              nullable: true
              example: Request is not valid
            validation_errors:
              type: array
              items:
                type: object
                properties:
                  field_name:
                    type: string
                    example: amount
                  message:
                    type: string
                    example: must not be null
          description: >-
            The request cannot be accepted and is malformed and/or missing
            required parameters.
    '401':
      description: Unauthorized
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        message:
          type: string
          nullable: true
          description: Invalid API key provided
          example: UNAUTHORIZED
        error:
          type: object
          properties:
            type:
              type: string
              example: UNAUTHORIZED
            code:
              type: string
              example: '10401'
            message:
              type: string
              example: unauthorized
    '403':
      description: Forbidden
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        message:
          type: string
          description: API key doesn't have permission to access this resource
        error:
          type: object
          properties:
            type:
              type: string
              example: FORBIDDEN
            code:
              type: string
              example: '10403'
            message:
              type: string
              example: Forbidden
    chargeback_in:
      type: object
      description: A chargeback input object
      required:
        - charge_id
        - amount
        - expiry
        - type
      properties:
        charge_id:
          type: string
          description: ID of the charge tied to this chargeback
          example: chg_eahdhfThdHsgaSra
        amount:
          allOf:
            - $ref: '#/components/schemas/amount'
          description: Amount to be charged back
        stage:
          type: string
          description: The stage describes the current phase of a chargeback dispute.
          enum:
            - new
            - second
            - pre-arbitration
            - arbitration
          example: new
        status:
          type: string
          description: >-
            The status indicates the current state or progress of the
            chargeback, showing whether it's awaiting action or has been
            formally started.
          enum:
            - pending
            - initiated
          example: pending
        type:
          type: string
          description: >-
            The type categorizes the chargeback based on whether it originates
            from a transaction within the same country (local) or across
            different countries (international).
          enum:
            - local
            - international
          example: international
        uploaded_proof:
          type: string
          description: Link to proof against chargeback
          example: https://example.com/proofs/proof_123.pdf
        comment:
          type: string
          description: Additional comments for the chargeback
          example: Customer claims the charge was unauthorized.
        provider:
          type: string
          description: Provider for the chargeback
          example: Visa
        arn:
          type: string
          description: Acquirer reference number for transaction
          example: '1243453453434234534443423'
        initiator:
          type: string
          description: Initiator of the chargeback
          example: customer
        expiry:
          type: integer
          format: int64
          description: Duration of chargeback in hours used in calculating due_datetime
          example: 72
    status:
      type: string
      nullable: false
      enum:
        - success
        - failed
    chargeback:
      type: object
      description: A chargeback object
      properties:
        id:
          type: string
          description: ID of the chargeback
          example: 1
        charge_id:
          type: string
          description: ID of the charge tied to this chargeback
          example: chg_eahdhfThdHsgaSra
        amount:
          allOf:
            - $ref: '#/components/schemas/amount'
          description: Amount to be charged back
        meta:
          $ref: '#/components/schemas/meta'
        stage:
          type: string
          description: The stage describes the current phase of a chargeback dispute
          enum:
            - new
            - second
            - pre-arbitration
            - arbitration
            - invalid
          example: new
        status:
          type: string
          description: >-
            The status field tracks the current state or outcome of a chargeback
            dispute, providing a comprehensive overview of its lifecycle.
          enum:
            - pending
            - accepted
            - declined
            - initiated
            - won
            - lost
            - reversed
            - new
          example: new
        type:
          type: string
          description: >-
            The type categorizes the chargeback based on whether it originates
            from a transaction within the same country (local) or across
            different countries (international).
          enum:
            - local
            - international
          example: local
        due_datetime:
          type: string
          description: >-
            The due_datetime specifies the exact date and time by which an
            action or response is required. This is typically used to set
            deadlines for submitting documentation or responding to a
            chargeback.
          format: date-time
          example: '2025-05-30T23:59:59Z'
        created_datetime:
          type: string
          description: >-
            The created_datetime indicates the exact date and time when the
            chargeback record was initially created in the system. This
            timestamp helps in tracking the age of the dispute.
          format: date-time
          example: '2025-06-01T23:59:59Z'
        updated_datetime:
          type: string
          description: >-
            The updated_datetime specifies the most recent date and time when
            any information related to the chargeback record was modified or
            updated. This helps in tracking the last activity on the dispute.
          format: date-time
          example: '2025-06-01T23:59:59Z'
        settlement_id:
          type: string
          description: ID of the settlement tied to this chargeback
          example: SETTLEMENT-XYZ-12345
        uploaded_proof:
          type: string
          description: Link to proof against chargeback
          example: https://example.com/proofs/chargeback-ABC-67890.pdf
        comment:
          type: string
          description: Additional comments for the chargeback
          example: >-
            Customer claims service not rendered. Attached signed delivery
            confirmation.
        provider:
          type: string
          description: Provider for the chargeback
          example: Visa
        arn:
          type: string
          description: Acquirer reference number for transaction
          example: '70010000000000000000001'
        initiator:
          type: string
          description: Initiator of the chargeback
          example: Cardholder
    amount:
      type: number
      format: decimal
      description: The payment amount in decimals.
      example: 12.34
      minimum: 0.01
    meta:
      type: object
      additionalProperties:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````