> ## 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.

# Get a checkout session

> Retrieves the checkout session with the given `id` for the `live` or `test` mode of the API key used. Use this endpoint to check the current `status` of the session and, once your customer finishes the payment, the resulting `payment_resource`.

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


## OpenAPI

````yaml reference/fintoc-api-v2.json GET /checkout_sessions/{id}
openapi: 3.1.0
info:
  title: fintoc-api-v2
  version: v2026-02-01
servers:
  - url: https://api.fintoc.com/v2
security: []
paths:
  /checkout_sessions/{id}:
    get:
      tags:
        - Checkout sessions
      summary: Get a checkout session
      description: >-
        Retrieves the checkout session with the given `id` for the `live` or
        `test` mode of the API key used. Use this endpoint to check the current
        `status` of the session and, once your customer finishes the payment,
        the resulting `payment_resource`.
      operationId: checkout-sessions-get
      parameters:
        - name: id
          in: path
          description: Unique identifier for the checkout session to retrieve.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The checkout session.
          content:
            application/json:
              examples:
                checkout_session:
                  value:
                    id: cs_li5531onlFDi235
                    object: checkout_session
                    amount: 350000
                    business_profile: null
                    cancel_url: https://merchant.com/cancel
                    created_at: '2026-01-13T18:48:25Z'
                    currency: CLP
                    customer_email: customer@example.com
                    expires_at: '2026-01-14T18:48:25Z'
                    flow: payment
                    line_items: null
                    metadata: {}
                    mode: live
                    payment_method: null
                    payment_method_options:
                      bank_transfer: {}
                    payment_method_types:
                      - bank_transfer
                    payment_resource: null
                    redirect_url: https://pay.fintoc.com/cs_li5531onlFDi235
                    save_payment_method: null
                    session_token: >-
                      eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImNzX2xpNTUzMSJ9.iV2qAVrqYLuqxF4
                    setup_intent: null
                    status: created
                    subscription: null
                    success_url: https://merchant.com/success
              schema:
                $ref: '#/components/schemas/checkout_session'
        '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'
        '404':
          description: >-
            No checkout session matches the `id` in the mode of the API key
            used.
          content:
            application/json:
              examples:
                checkout_session_not_found:
                  value:
                    error:
                      type: invalid_request_error
                      message: 'No such checkout_session: cs_li5531onlFDi235'
                      code: missing_resource
                      param: id
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
      security:
        - api_key: []
components:
  schemas:
    checkout_session:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the checkout session.
          example: cs_li5531onlFDi235
        object:
          const: checkout_session
          description: Type of the object. Always `checkout_session`.
        amount:
          type:
            - integer
            - 'null'
          description: >-
            Amount the session charges your customer, in the smallest unit of
            `currency`. For CLP the smallest unit is one peso (CLP has no
            decimals), so `350000` means $350,000 CLP. For MXN the smallest unit
            is one centavo, so `350000` means $3,500.00 MXN. `null` for `setup`
            and `subscription` flow sessions, which do not carry a single
            amount.
          example: 350000
        business_profile:
          type:
            - object
            - 'null'
          description: >-
            Business on whose behalf you collect the payment, for payment
            aggregators. `null` when the session was created without a business
            profile.
          properties:
            category:
              type: string
              description: Six-character merchant category code (MCC) of the business.
              example: '541100'
            name:
              type: string
              description: Name of the business.
              example: Test Business
            tax_id:
              type: string
              description: Tax identifier of the business.
              example: '111111111'
        cancel_url:
          type:
            - string
            - 'null'
          description: >-
            URL Fintoc redirects your customer to when the payment is not
            completed. `null` when the session was created without redirect
            URLs.
          example: https://merchant.com/cancel
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the checkout session was created.
          example: '2026-01-13T18:48:25Z'
        currency:
          type: string
          enum:
            - CLP
            - MXN
          description: >-
            Three-letter ISO 4217 currency code, in uppercase. One of `CLP` or
            `MXN`.
          example: CLP
        customer:
          type: object
          description: >-
            Customer the session belongs to. This key is omitted (not `null`)
            when the session has no customer.
          properties:
            id:
              type: string
              description: Unique identifier of the customer.
              example: cus_xK9mPq2RkV3WnDQG
            object:
              const: customer
              description: Type of the object. Always `customer`.
            address:
              type:
                - object
                - 'null'
              description: >-
                Address of the customer. `null` when not provided. Keys without
                a value are omitted.
              properties:
                city:
                  type: string
                  description: City of the address.
                  example: Santiago
                country:
                  type: string
                  description: Country of the address, as a two-letter ISO 3166-1 code.
                  example: cl
                line1:
                  type: string
                  description: First line of the address.
                  example: Av. Providencia 123
                line2:
                  type: string
                  description: Second line of the address.
                  example: Depto 45
                postal_code:
                  type: string
                  description: Postal code of the address.
                  example: '7500000'
                state:
                  type: string
                  description: State or region of the address.
                  example: RM
            created_at:
              type: string
              format: date-time
              description: ISO 8601 timestamp of when the customer was created.
              example: '2026-01-10T12:30:00Z'
            email:
              type:
                - string
                - 'null'
              description: Email of the customer. `null` when not provided.
              example: customer@example.com
            metadata:
              type: object
              description: Set of key-value pairs attached to the customer.
            mode:
              type: string
              enum:
                - test
                - live
              description: >-
                Mode of the object. `live` objects use real institution data,
                `test` objects use fake data for integration testing.
              example: live
            name:
              type:
                - string
                - 'null'
              description: Name of the customer. `null` when not provided.
              example: Felipe Castro
            phone:
              type:
                - string
                - 'null'
              description: Phone number of the customer. `null` when not provided.
              example: '+56912345678'
            tax_id:
              type:
                - object
                - 'null'
              description: Tax identifier of the customer. `null` when not provided.
              properties:
                type:
                  type: string
                  description: Type of the tax identifier, for example `cl_rut`.
                  example: cl_rut
                value:
                  type: string
                  description: Value of the tax identifier.
                  example: '111111111'
        customer_email:
          type:
            - string
            - 'null'
          description: >-
            Email of your customer, used to send the payment receipt. `null`
            when not provided.
          example: customer@example.com
        expires_at:
          type: string
          format: date-time
          description: >-
            ISO 8601 timestamp of when the checkout session expires. After this
            time your customer can no longer pay the session.
          example: '2026-01-14T18:48:25Z'
        flow:
          type: string
          enum:
            - payment
            - subscription
            - setup
          description: >-
            Flow the session runs. One of `payment` (collects a one-time
            payment), `subscription` (starts a recurring subscription), or
            `setup` (saves a payment method for future payments).
          example: payment
        line_items:
          type:
            - array
            - 'null'
          description: >-
            Items the session charges for. `null` when the session was created
            without line items.
          items:
            type: object
            properties:
              price:
                type: object
                description: Price of the item.
                properties:
                  currency:
                    type: string
                    enum:
                      - CLF
                      - CLP
                      - MXN
                    description: >-
                      Three-letter ISO 4217 currency code, in uppercase. One of
                      `CLP`, `MXN` or `CLF`.
                    example: CLP
                  product:
                    type: object
                    description: Product the price belongs to.
                    properties:
                      description:
                        type:
                          - string
                          - 'null'
                        description: Description of the product. `null` when not provided.
                        example: Monthly gym membership.
                      image_url:
                        type:
                          - string
                          - 'null'
                        description: URL of the product image. `null` when not provided.
                        example: https://merchant.com/images/membership.png
                      metadata:
                        type: object
                        description: Set of key-value pairs attached to the product.
                      name:
                        type: string
                        description: Name of the product.
                        example: Gym membership
                    required:
                      - description
                      - image_url
                      - metadata
                      - name
                  recurring:
                    type:
                      - object
                      - 'null'
                    description: Billing cadence of the price. `null` for one-time prices.
                    properties:
                      interval:
                        type: string
                        enum:
                          - month
                          - year
                        description: Billing frequency. One of `month` or `year`.
                        example: month
                      interval_count:
                        type: integer
                        description: >-
                          Number of intervals between billings. For example,
                          `interval: month` with `interval_count: 3` bills every
                          3 months.
                        example: 1
                    required:
                      - interval
                      - interval_count
                  unit_amount:
                    type: integer
                    description: Amount per unit, in the smallest unit of `currency`.
                    example: 350000
                required:
                  - currency
                  - product
                  - recurring
                  - unit_amount
              quantity:
                type: integer
                description: Number of units of the item.
                example: 1
            required:
              - price
              - quantity
        metadata:
          type: object
          description: Set of key-value pairs you attached to the session.
        mode:
          type: string
          enum:
            - test
            - live
          description: >-
            Mode of the object. `live` objects use real institution data, `test`
            objects use fake data for integration testing.
          example: live
        payment_method:
          type:
            - string
            - 'null'
          description: >-
            `id` of the saved payment method that pays the session. `null` when
            the session is not paid with a previously saved payment method.
          example: pm_xL9mPq2RkV3WnDQG
        payment_method_options:
          type: object
          description: >-
            Configuration of the session's payment methods, keyed by payment
            method type. Each key matches one of `payment_method_types` and
            holds the options you set when creating the session, such as the
            `recipient_account` for `bank_transfer` or the `kinds` for `card`.
            See [`POST
            /v2/checkout_sessions`](https://docs.fintoc.com/reference/checkout-sessions-create)
            for the full shape.
        payment_method_types:
          type: array
          description: >-
            Payment method types your customer can use to pay the session. One
            or more of `card`, `bank_transfer`, `installments`, and `pac`
            (automatic recurring bank debit).
          items:
            type: string
            enum:
              - bank_transfer
              - installments
              - card
              - pac
            example: bank_transfer
        payment_resource:
          type:
            - object
            - 'null'
          description: >-
            Payment generated by the session. `null` until your customer starts
            a payment attempt.
          properties:
            payment_intent:
              type: object
              description: Payment intent of the session's active payment attempt.
              properties:
                id:
                  type: string
                  description: Unique identifier of the payment intent.
                  example: pi_BO381oEATXonG6bj
                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
                    `currency`. For CLP the smallest unit is one peso (CLP has
                    no decimals), so `100000` means $100,000 CLP. For MXN the
                    smallest unit is one centavo, so `7050` means $70.50 MXN.
                  example: 100000
                business_profile:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Business on whose behalf you collect the payment, for
                    payment aggregators. `null` when the payment was created
                    without a business profile.
                  properties:
                    category:
                      type: string
                      description: >-
                        Six-character merchant category code (MCC) of the
                        business.
                    name:
                      type: string
                      description: Name of the business.
                    tax_id:
                      type: string
                      description: Tax identifier of the business.
                created_at:
                  type: string
                  format: date-time
                  description: ISO 8601 timestamp of when the payment intent was created.
                  example: '2026-01-13T18:48:25Z'
                currency:
                  type: string
                  enum:
                    - CLP
                    - MXN
                  description: >-
                    Three-letter ISO 4217 currency code, in uppercase. One of
                    `CLP` or `MXN`.
                  example: CLP
                customer:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Customer the payment intent belongs to. `null` when the
                    session was created without a customer.
                  properties:
                    id:
                      type: string
                      description: Unique identifier of the customer.
                    object:
                      const: customer
                      description: Type of the object. Always `customer`.
                    address:
                      type:
                        - object
                        - 'null'
                      description: Address of the customer. `null` when not provided.
                      properties:
                        city:
                          type: string
                          description: City of the address.
                        country:
                          type: string
                          description: >-
                            Country of the address, as a two-letter ISO 3166-1
                            code.
                        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 or region of the address.
                    created_at:
                      type: string
                      format: date-time
                      description: ISO 8601 timestamp of when the customer was created.
                    email:
                      type:
                        - string
                        - 'null'
                      description: Email of the customer. `null` when not provided.
                    metadata:
                      type: object
                      description: Set of key-value pairs attached to the customer.
                    mode:
                      type: string
                      enum:
                        - test
                        - live
                      description: >-
                        Mode of the object. `live` objects use real institution
                        data, `test` objects use fake data for integration
                        testing.
                      example: live
                    name:
                      type:
                        - string
                        - 'null'
                      description: Name of the customer. `null` when not provided.
                    phone:
                      type:
                        - string
                        - 'null'
                      description: Phone number of the customer. `null` when not provided.
                    tax_id:
                      type:
                        - object
                        - 'null'
                      description: >-
                        Tax identifier of the customer. `null` when not
                        provided.
                      properties:
                        type:
                          type: string
                          description: Type of the tax identifier, for example `cl_rut`.
                        value:
                          type: string
                          description: Value of the tax identifier.
                customer_email:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Email of your customer, used to send payment notifications.
                    `null` when not provided.
                  example: customer@example.com
                error_reason:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Reason the payment failed, was rejected, or expired. `null`
                    while the payment is in progress and when it succeeds.
                  example: insufficient_funds
                expires_at:
                  type:
                    - string
                    - 'null'
                  format: date-time
                  description: >-
                    ISO 8601 timestamp of when the payment expires and can no
                    longer be paid. Only set for cash payments; `null`
                    otherwise.
                metadata:
                  type: object
                  description: Set of key-value pairs attached to the payment intent.
                  example:
                    order_id: '9182'
                mode:
                  type: string
                  enum:
                    - test
                    - live
                  description: >-
                    Mode of the object. `live` objects use real institution
                    data, `test` objects use fake data for integration testing.
                  example: live
                next_action:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Action your customer must complete to continue the payment,
                    as reported by the widget. `null` when no action is pending.
                payment_method:
                  type:
                    - string
                    - 'null'
                  description: >-
                    `id` of the payment method used to pay. `null` when the
                    payment is not paid with a saved payment method.
                  example: pm_1x7vKQ8oEATXonG6
                payment_type:
                  type: string
                  description: Payment type used to pay. One of `bank_transfer` or `cash`.
                  example: bank_transfer
                payment_type_options:
                  type: object
                  description: >-
                    Options specific to the payment type, keyed by payment type.
                    For cash payments, contains a `cash` object with the details
                    of the payment. Empty for bank transfers.
                  properties:
                    cash:
                      type: object
                      description: >-
                        Details of the cash payment. Present only for cash
                        payments.
                      properties:
                        barcode_url:
                          type:
                            - string
                            - 'null'
                          description: >-
                            URL of the barcode your customer scans to pay in
                            cash.
                          example: https://cash.fintoc.com/barcode/9182.png
                        reference_number:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Reference number your customer uses to pay the cash
                            payment.
                          example: '9182037465'
                        voucher_url:
                          type:
                            - string
                            - 'null'
                          description: >-
                            URL of the voucher your customer presents to pay in
                            cash.
                          example: https://cash.fintoc.com/voucher/9182.pdf
                      required:
                        - reference_number
                        - barcode_url
                        - voucher_url
                  example: {}
                recipient_account:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Bank account that receives the payment. `null` for cash
                    payments.
                  properties:
                    holder_id:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Tax identifier of the account holder. Chilean tax ID
                        (RUT) in Chile, Mexican tax ID (RFC) in Mexico.
                    institution_id:
                      type:
                        - string
                        - 'null'
                      description: Identifier of the institution of the account.
                    number:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Number of the account. In Mexico, the standardized
                        Mexican bank account number (CLABE).
                    type:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Type of the account, such as `checking_account` or
                        `sight_account`.
                  required:
                    - holder_id
                    - number
                    - type
                    - institution_id
                reference_id:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Identifier of the transfer assigned by the institution.
                    `null` until the transfer is executed.
                  example: '90123712'
                sender_account:
                  type:
                    - object
                    - 'null'
                  description: >-
                    Bank account your customer pays from. `null` until Fintoc
                    identifies the sender.
                  properties:
                    holder_id:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Tax identifier of the account holder. Chilean tax ID
                        (RUT) in Chile, Mexican tax ID (RFC) in Mexico.
                    institution_id:
                      type:
                        - string
                        - 'null'
                      description: Identifier of the institution of the account.
                    number:
                      type:
                        - string
                        - 'null'
                      description: Number of the account.
                    type:
                      type:
                        - string
                        - 'null'
                      description: >-
                        Type of the account, such as `checking_account` or
                        `sight_account`.
                  required:
                    - holder_id
                    - number
                    - type
                    - institution_id
                status:
                  type: string
                  enum:
                    - created
                    - failed
                    - succeeded
                    - rejected
                    - in_progress
                    - pending
                    - expired
                  description: >-
                    Lifecycle status of the payment intent. One of `created`,
                    `in_progress`, `succeeded`, `rejected`, `failed`, `expired`,
                    or `pending`. `pending` is only used when your organization
                    has the pending status enabled.
                  example: succeeded
                subscription:
                  type:
                    - string
                    - 'null'
                  description: >-
                    `id` of the subscription that originated the payment intent.
                    `null` for one-time payments.
                  example: sub_dJOd4hcZby9XK1Lm
                transaction_date:
                  type:
                    - string
                    - 'null'
                  format: date-time
                  description: >-
                    ISO 8601 timestamp of when the institution executed the
                    transfer. `null` until the transfer is executed.
                  example: '2026-01-13T18:50:25Z'
                widget_token:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Token used to initialize the Fintoc widget for this payment
                    intent. Only returned when the payment intent is created;
                    `null` in every other response.
                  example: pi_BO381oEATXonG6bj_sec_aBcDeFgHiJkLmNoP
              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
          required:
            - payment_intent
        redirect_url:
          type:
            - string
            - 'null'
          description: >-
            URL of the Fintoc-hosted checkout page where your customer completes
            the payment. Redirect your customer to this URL after creating the
            session. `null` for sessions paid through the Fintoc widget instead
            of a redirect.
          example: https://pay.fintoc.com/cs_li5531onlFDi235
        save_payment_method:
          type:
            - string
            - 'null'
          enum:
            - disabled
            - enabled
            - null
          description: >-
            Whether the session offers your customer the option to save their
            payment method for future payments. One of `enabled` or `disabled`.
            Only returned for `payment` flow sessions; `null` when not
            configured.
          example: enabled
        session_token:
          type:
            - string
            - 'null'
          description: >-
            Token used to initialize the Fintoc widget to pay the session.
            `null` for `subscription` and `setup` flow sessions and for payments
            completed outside the widget, like non-embedded card payments.
          example: eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImNzX2xpNTUzMSJ9.iV2qAVrqYLuqxF4
        setup_intent:
          type:
            - string
            - 'null'
          description: >-
            Unique identifier for the setup intent created by `setup` and
            `subscription` flow sessions. `null` for other flows and until
            Fintoc attempts a setup. Retrieve the setup intent's status and
            error with the setup intent endpoint.
          example: seti_xL9mPq2RkV3WnDQG
        status:
          type: string
          enum:
            - created
            - in_progress
            - expired
            - finished
          description: >-
            Lifecycle status of the session. `created` until your customer
            starts paying, `in_progress` while Fintoc processes the payment, and
            `finished` or `expired` once the session succeeds or expires.
          example: created
        subscription:
          type:
            - string
            - 'null'
          description: >-
            `id` of the subscription started by a `subscription` flow session.
            `null` until the subscription is created and for other flows.
          example: sub_xL9mPq2RkV3WnDQG
        success_url:
          type:
            - string
            - 'null'
          description: >-
            URL Fintoc redirects your customer to after a successful payment.
            `null` when the session was created without redirect URLs.
          example: https://merchant.com/success
      required:
        - id
        - object
        - amount
        - business_profile
        - cancel_url
        - created_at
        - currency
        - customer_email
        - expires_at
        - flow
        - line_items
        - metadata
        - mode
        - payment_method
        - payment_method_options
        - payment_method_types
        - payment_resource
        - redirect_url
        - session_token
        - setup_intent
        - status
        - subscription
        - success_url
    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

````