# Create Charge

Create a new charge.

Endpoint: POST /charges
Version: 0.1.0

## Header parameters:

  - `X-API-Key` (any)

  - `Idempotency-Key` (any)
    Optional UUID for safely retrying charge creation. Reusing the same key with an identical request body returns the original charge instead of creating a duplicate. Keys are scoped to your organization and expire 24 hours after the request.

## Request fields (application/json):

  - `currency` (string, required)
    Currency of the charge
    Enum: "mxn", "cop", "brl", "usd", "eur", "gbp"

  - `instrument_id` (any)
    ID of the payment instrument

  - `customer_id` (any)
    ID of the customer

  - `amount` (number, required)
    Charge amount

  - `reference` (any)
    Reference provided by tenant

  - `inline_instrument` (any)
    Inline instrument data
    - `type` (string, required)
      Type of instrument
      Enum: "mx_direct_debit_card", "mx_clabe"
    - `identifier` (string, required)
      Identifier of the instrument
    - `bank` (any)
      Bank of the instrument

  - `inline_customer` (any)
    Inline customer data
    - `name` (string, required)
      Name of the customer
    - `document_type` (string, required)
      Type of document (e.g., 'mx_rfc', 'mx_curp')
      Enum: "mx_rfc", "mx_curp", "passport"
    - `document_number` (string, required)
      Document number
    - `email` (any)
      Email of the customer
    - `phone_number` (any)
      Phone number of the customer

## Response 201 fields (application/json):

  - `org_id` (string, required)
    ID of the organization

  - `instrument_id` (any)
    ID of the payment instrument

  - `customer_id` (any)
    ID of the customer

  - `amount` (number, required)
    Charge amount

  - `currency` (any)
    Currency code

  - `reference` (any)
    Reference provided by tenant

  - `inline_instrument` (any)
    Inline instrument data

  - `inline_customer` (any)
    Inline customer data

  - `id` (string, required)

  - `status` (string, required)
    Charge status enum.
    Enum: "verification_in_progress", "pending", "processing", "confirmed", "declined", "chargeback", "canceled"

  - `declined_reason` (any)

  - `declined_reason_rail` (any)

  - `created_at` (string, required)

  - `updated_at` (any)

  - `chargeback_at` (any)

  - `result_at` (any)

  - `risk_status` (any)

  - `risk_evaluated_at` (any)

  - `risk_reasons` (any)

## Response 422 fields (application/json):

  - `detail` (array)

  - `detail.loc` (array, required)

  - `detail.msg` (string, required)

  - `detail.type` (string, required)


## Response 400 fields

## Response 409 fields
