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

# Create a payment intent

> Creates a payment intent that charges a previously saved payment method, in the `live` or `test` mode of the API key used. Unlike `POST /v1/payment_intents`, which starts a customer-present flow completed through the Fintoc widget, this endpoint charges the `payment_method` directly, with no customer interaction and no widget token. This endpoint does not accept v1-only parameters such as `recipient_account`, `customer_email`, `payment_type`, or `expires_at`. The charge starts in the `created` status; Fintoc processes the charge asynchronously, so subscribe to webhooks to track the charge's progress. Available for organizations on API version `2026-02-01` or later.

**`v2`** · Base URL `https://api.fintoc.com/v2`


## OpenAPI

````yaml reference/fintoc-api-v2.json POST /payment_intents
openapi: 3.1.0
info:
  title: fintoc-api-v2
  version: v2026-02-01
servers:
  - url: https://api.fintoc.com/v2
security: []
paths:
  /payment_intents:
    post:
      tags:
        - Payment intents
      summary: Create a payment intent
      description: >-
        Creates a payment intent that charges a previously saved payment method,
        in the `live` or `test` mode of the API key used. Unlike `POST
        /v1/payment_intents`, which starts a customer-present flow completed
        through the Fintoc widget, this endpoint charges the `payment_method`
        directly, with no customer interaction and no widget token. This
        endpoint does not accept v1-only parameters such as `recipient_account`,
        `customer_email`, `payment_type`, or `expires_at`. The charge starts in
        the `created` status; Fintoc processes the charge asynchronously, so
        subscribe to webhooks to track the charge's progress. Available for
        organizations on API version `2026-02-01` or later.
      operationId: payment-intents-create
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  example: 5000
                  description: >-
                    Amount to charge, in the smallest unit of the currency. CLP
                    has no decimals, so `5000` is $5000 CLP; MXN amounts are
                    expressed in centavos, so `5000` is $50.00 MXN. Must be
                    greater than zero and at most 2147483647.
                currency:
                  type: string
                  enum:
                    - CLP
                    - MXN
                  description: >-
                    Three-letter ISO 4217 currency code, in uppercase. One of
                    `CLP` or `MXN`.
                  example: CLP
                payment_method:
                  type: string
                  example: pm_2bArifJWQ6CiZSofWxBNL1Hri2u
                  description: >-
                    The `id` of the payment method to charge. The payment method
                    must belong to your organization and match the mode of the
                    API key used.
                metadata:
                  type: object
                  example:
                    order_id: '12345'
                  description: >-
                    Set of key-value pairs to attach to the payment intent. Up
                    to 50 pairs, with keys of up to 40 characters and values of
                    up to 500 characters. Nested objects and arrays are not
                    allowed.
              required:
                - amount
                - currency
                - payment_method
            examples:
              create_payment_intent:
                summary: Charge a saved payment method
                value:
                  amount: 5000
                  currency: CLP
                  payment_method: pm_2bArifJWQ6CiZSofWxBNL1Hri2u
                  metadata:
                    order_id: '12345'
      responses:
        '201':
          description: >-
            Payment intent created. The charge starts in the `created` status;
            Fintoc processes the charge asynchronously.
          content:
            application/json:
              examples:
                payment_intent_created:
                  value:
                    id: pi_2cKoy3PEXAuvkr4ofXC1KdMvCgZ
                    object: payment_intent
                    amount: 5000
                    business_profile: null
                    created_at: '2026-02-10T15:23:11Z'
                    currency: CLP
                    customer: null
                    customer_email: null
                    error_reason: null
                    expires_at: null
                    metadata:
                      order_id: '12345'
                    mode: live
                    next_action: null
                    payment_method: null
                    payment_type: pac
                    payment_type_options: {}
                    recipient_account: null
                    reference_id: null
                    sender_account: null
                    status: created
                    subscription: null
                    transaction_date: null
                    widget_token: null
              schema:
                $ref: '#/components/schemas/payment_intent'
        '400':
          description: >-
            Invalid request: a required parameter is missing, the `amount` is
            not a positive integer or exceeds the maximum, the `currency` is not
            supported, or the `metadata` is invalid.
          content:
            application/json:
              examples:
                missing_amount:
                  value:
                    error:
                      type: invalid_request_error
                      code: missing_parameter
                      param: amount
                      message: 'Missing required param: amount'
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              examples:
                invalid_api_key:
                  value:
                    error:
                      type: authentication_error
                      code: invalid_api_key
                      message: 'Invalid API Key: invalid-*oken'
              schema:
                $ref: '#/components/schemas/error_object'
        '403':
          description: Your organization does not have access to the Direct Debit product.
          content:
            application/json:
              examples:
                product_access_required:
                  value:
                    error:
                      type: authorization_error
                      code: product_access_required
                      param: null
                      message: >-
                        Your organization does not have access to the 'Direct
                        Debit' product. Send an email to sales@fintoc.com to
                        hire this product.
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
        '404':
          description: >-
            The payment method does not exist, belongs to another organization,
            or does not match the mode of the API key used.
          content:
            application/json:
              examples:
                missing_payment_method:
                  value:
                    error:
                      type: invalid_request_error
                      code: missing_resource
                      param: payment_method
                      message: 'No such payments/payment_method: pm_nonexistent'
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
        '422':
          description: >-
            The payment method cannot be charged because its underlying resource
            is in an invalid state, for example a subscription that is not
            active.
          content:
            application/json:
              examples:
                invalid_payment_method_state:
                  value:
                    error:
                      type: invalid_request_error
                      code: invalid_payment_method_state
                      param: payment_method
                      message: >-
                        Subscription is not active:
                        sub_2bArifJWQ6CiZSofWxBNL1Hri2u
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
      security:
        - api_key: []
components:
  schemas:
    payment_intent:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the payment intent.
          example: pi_2cKoy3PEXAuvkr4ofXC1KdMvCgZ
        object:
          const: payment_intent
          description: Type of the object. Always `payment_intent`.
        amount:
          type: integer
          description: >-
            Amount of the payment intent, in the smallest unit of the currency.
            CLP has no decimals, so `5000` is $5000 CLP; MXN amounts are
            expressed in centavos, so `5000` is $50.00 MXN.
          example: 5000
        business_profile:
          type:
            - object
            - 'null'
          description: >-
            Business information of the entity that receives the payment, when
            it was collected on behalf of a business. `null` when no business
            information was provided.
          properties:
            category:
              type: string
              description: Category of the business. Omitted when not provided.
              example: retail
            name:
              type: string
              description: Name of the business. Omitted when not provided.
              example: Mi Comercio SpA
            tax_id:
              type: string
              description: >-
                Tax identifier of the business, as a string with no formatting
                characters. Omitted when not provided.
              example: '777777777'
        created_at:
          type: string
          format: date-time
          description: Time the payment intent was created, as an ISO 8601 datetime in UTC.
          example: '2026-02-10T15:23:11Z'
        currency:
          type: string
          enum:
            - CLP
            - MXN
          description: >-
            Three-letter ISO 4217 currency code, returned in uppercase (for
            example, `CLP` or `MXN`).
          example: CLP
        customer:
          type:
            - object
            - 'null'
          description: >-
            Customer associated with the payment intent. Present when the
            payment intent was created from a checkout session with an
            associated customer; `null` otherwise.
          properties:
            id:
              type: string
              description: Unique identifier of the customer.
              example: cus_2bArifJWQ6CiZSofWxBNL1Hri2u
            object:
              const: customer
              description: Type of the object. Always `customer`.
            address:
              type:
                - object
                - 'null'
              description: >-
                Address of the customer. `null` when no address was provided.
                Keys are omitted when not provided.
              properties:
                city:
                  type: string
                  description: City of the address.
                country:
                  type: string
                  description: Country of the address.
                line1:
                  type: string
                  description: First line of the address.
                line2:
                  type: string
                  description: Second line of the address.
                postal_code:
                  type: string
                  description: Postal code of the address.
                state:
                  type: string
                  description: State of the address.
            created_at:
              type: string
              format: date-time
              description: Time the customer was created, as an ISO 8601 datetime in UTC.
              example: '2026-02-01T12:00:00Z'
            email:
              type:
                - string
                - 'null'
              description: Email of the customer.
              example: customer@example.com
            metadata:
              type: object
              description: Set of key-value pairs attached to the customer.
            mode:
              type: string
              enum:
                - live
                - test
              description: Mode of the customer, `live` or `test`.
              example: live
            name:
              type:
                - string
                - 'null'
              description: Name of the customer.
              example: Test Customer 1
            phone:
              type:
                - string
                - 'null'
              description: Phone number of the customer.
              example: '+56911111111'
            tax_id:
              type:
                - object
                - 'null'
              description: >-
                Tax identifier of the customer. `null` when no tax identifier
                was provided. Keys are omitted when not provided.
              properties:
                type:
                  type: string
                  enum:
                    - cl_rut
                    - mx_rfc
                  description: >-
                    Type of the tax identifier. `cl_rut` for a Chilean RUT or
                    `mx_rfc` for a Mexican RFC.
                  example: cl_rut
                value:
                  type: string
                  description: Tax identifier as a string, with no formatting characters.
                  example: '111111111'
          required:
            - id
            - object
            - address
            - created_at
            - email
            - metadata
            - mode
            - name
            - phone
            - tax_id
        customer_email:
          type:
            - string
            - 'null'
          description: >-
            Email collected from the customer at payment time, when available.
            May differ from `customer.email`.
          example: customer@example.com
        error_reason:
          type:
            - string
            - 'null'
          description: >-
            Reason why the payment failed. `null` unless the payment finished
            unsuccessfully.
          example: null
        expires_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Time the payment intent expires, as an ISO 8601 datetime in UTC.
            `null` when the payment intent does not expire.
          example: null
        metadata:
          type: object
          description: >-
            Set of key-value pairs attached to the payment intent at creation.
            Defaults to an empty object.
          example:
            order_id: '12345'
        mode:
          type: string
          enum:
            - live
            - test
          description: >-
            Mode of the payment intent. `live` for real payments, `test` for
            payments created with a test API key.
          example: live
        next_action:
          type:
            - object
            - 'null'
          description: >-
            Action the customer must complete for the payment to continue, for
            example confirming the payment in their banking app. The `type` key
            indicates the kind of action. `null` when no action is pending.
          example: null
        payment_method:
          type:
            - string
            - 'null'
          description: >-
            Identifier of the payment method associated with the payment intent,
            when available.
          example: pm_2bArifJWQ6CiZSofWxBNL1Hri2u
        payment_type:
          type: string
          description: >-
            Type of payment that produced this payment intent, for example
            `bank_transfer`, `cash`, `card`, `installment`, `pac`, or a
            provider-specific external redirect such as `banco_estado`. The
            value depends on how the payment was initiated.
          example: bank_transfer
        payment_type_options:
          type: object
          description: >-
            Additional options specific to the payment type. For card payments,
            the object contains a `card` object. The object is empty when the
            payment type has no extra options.
          properties:
            card:
              type: object
              description: Details of the card payment. Present only for card payments.
              properties:
                authenticated_with_3ds:
                  type: boolean
                  description: >-
                    If `true`, the cardholder completed 3-D Secure
                    authentication for this payment.
                  example: true
                bank:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Name of the bank that issued the card. `null` when the
                    issuing bank is unknown.
                  example: Banco de Chile
                brand:
                  type: string
                  description: Brand of the card.
                  example: visa
                country:
                  type: string
                  description: >-
                    Display name of the country where the card was issued, in
                    English.
                  example: Chile
                kind:
                  type: string
                  description: Kind of card. One of `credit`, `debit`, or `prepaid`.
                  example: credit
                last_four_digits:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Last four digits of the card number. `null` when the digits
                    are not available.
                  example: '4242'
                wallet:
                  type:
                    - string
                    - 'null'
                  enum:
                    - apple_pay
                    - google_pay
                    - null
                  description: >-
                    Digital wallet used for the card payment. One of `apple_pay`
                    or `google_pay`. `null` for cards entered manually.
                  example: apple_pay
          example: {}
        recipient_account:
          type:
            - object
            - 'null'
          description: >-
            Bank account that received the payment. `null` when the payment is
            not associated with a recipient account, for example for charges on
            a saved payment method.
          properties:
            holder_id:
              type:
                - string
                - 'null'
              description: Tax identifier of the account holder.
              example: '111111111'
            institution_id:
              type:
                - string
                - 'null'
              description: Identifier of the institution where the account lives.
              example: cl_banco_de_chile
            number:
              type:
                - string
                - 'null'
              description: Number of the account.
              example: '123456'
            type:
              type:
                - string
                - 'null'
              description: Type of the account, for example `checking_account`.
              example: checking_account
          required:
            - holder_id
            - institution_id
            - number
            - type
        reference_id:
          type:
            - string
            - 'null'
          description: >-
            Identifier given by the institution that processed the payment, when
            available.
          example: '90123712'
        sender_account:
          type:
            - object
            - 'null'
          description: >-
            Bank account that sent the payment. `null` when the sender account
            is unknown.
          properties:
            holder_id:
              type:
                - string
                - 'null'
              description: Tax identifier of the account holder.
              example: '222222222'
            institution_id:
              type:
                - string
                - 'null'
              description: Identifier of the institution where the account lives.
              example: cl_banco_estado
            number:
              type:
                - string
                - 'null'
              description: Number of the account.
              example: '123456'
            type:
              type:
                - string
                - 'null'
              description: Type of the account, for example `checking_account`.
              example: checking_account
          required:
            - holder_id
            - institution_id
            - number
            - type
        status:
          type: string
          enum:
            - created
            - failed
            - succeeded
            - rejected
            - in_progress
            - pending
            - expired
          description: >-
            Status of the payment intent. One of `created` (the charge was
            accepted and is awaiting processing), `in_progress` (Fintoc is
            processing the charge), `succeeded` (the charge completed), `failed`
            (the charge did not complete), `rejected` (the institution rejected
            the charge), `expired` (the payer did not act in time), or `pending`
            (the final status is not yet known). `pending` is only returned to
            organizations that have the pending status enabled.
          example: succeeded
        subscription:
          type:
            - string
            - 'null'
          description: >-
            Identifier of the subscription that originated the payment intent,
            when the payment was created from a subscription invoice. `null`
            otherwise.
          example: null
        transaction_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Time the institution processed the payment, as an ISO 8601 datetime
            in UTC. `null` when not available.
          example: '2026-02-10T15:24:15Z'
        widget_token:
          type:
            - string
            - 'null'
          description: >-
            Token used by the Fintoc widget to resume a customer-present flow.
            Always `null` for payment intents returned by the v2 API.
          example: null
      required:
        - id
        - object
        - amount
        - created_at
        - currency
        - customer
        - customer_email
        - error_reason
        - expires_at
        - metadata
        - mode
        - next_action
        - payment_method
        - payment_type
        - payment_type_options
        - recipient_account
        - reference_id
        - sender_account
        - status
        - subscription
        - transaction_date
        - widget_token
    error_object:
      type: object
      properties:
        error:
          type: object
          description: Details of the error that caused the request to fail.
          properties:
            code:
              type: string
              description: >-
                Machine-readable code identifying the specific error, for
                example `invalid_api_key`. Not returned by every error.
              example: invalid_api_key
            doc_url:
              type: string
              description: >-
                URL of a documentation page with more details about the error.
                Not returned by every error.
              example: https://docs.fintoc.com/reference/errors
            message:
              type: string
              description: Human-readable message describing the error.
              example: 'Invalid API Key: invalid-*oken'
            param:
              type:
                - string
                - 'null'
              description: >-
                Name of the request parameter that caused the error. `null` when
                the error cannot be tied to a single parameter, and not returned
                by every error.
              example: amount
            type:
              type: string
              description: >-
                Category of the error, for example `invalid_request_error`,
                `authentication_error`, or `api_error`.
              example: invalid_request_error
          required:
            - type
            - message
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header

````