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

# Update a charge

> Updates a charge. Only the `amount` and the `currency` can be updated, and only while the charge status is `pending`. Once the collection starts, the charge can no longer be updated.

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


## OpenAPI

````yaml reference/fintoc-api.json PATCH /charges/{id}
openapi: 3.1.0
info:
  title: fintoc-api
  version: v2026-02-01
servers:
  - url: https://api.fintoc.com/v1
security: []
paths:
  /charges/{id}:
    patch:
      tags:
        - Charges
      summary: Update a charge
      description: >-
        Updates a charge. Only the `amount` and the `currency` can be updated,
        and only while the charge status is `pending`. Once the collection
        starts, the charge can no longer be updated.
      operationId: charges-update
      parameters:
        - name: id
          in: path
          description: The `id` of the charge to update.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  example: 9000
                  description: >-
                    A positive integer in the smallest unit of `currency` (for
                    example, `1000` for `$1000 CLP`, since CLP has no minor
                    unit). Replaces the current amount of the charge.
                currency:
                  type: string
                  description: >-
                    Three-letter ISO 4217 currency code. `CLP` is the only
                    supported currency.
                  example: CLP
            examples:
              update_charge:
                summary: Update the amount of a charge
                value:
                  amount: 9000
      responses:
        '200':
          description: The updated charge.
          content:
            application/json:
              examples:
                charge_updated:
                  value:
                    id: ch_o9YDuRzUez2GqV4x
                    object: charge
                    amount: 9000
                    created_at: '2021-05-17T17:04:10.284Z'
                    currency: CLP
                    failure_code: null
                    metadata:
                      order_id: '0001'
                    mode: live
                    status: pending
                    subscription_id: sub_m7N9rAWJS9dWDKEe
              schema:
                $ref: '#/components/schemas/subscriptions_charge'
        '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: The charge is no longer `pending`, so it can no longer be updated.
          content:
            application/json:
              examples:
                charge_in_progress:
                  value:
                    error:
                      type: invalid_request_error
                      code: forbidden_request
                      param: null
                      message: Can not update in progress charge
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
        '404':
          description: The charge does not exist or belongs to a different organization.
          content:
            application/json:
              examples:
                charge_not_found:
                  value:
                    error:
                      type: invalid_request_error
                      code: missing_resource
                      param: id
                      message: 'No such subscriptions/charge: ch_o9YDuRzUez2GqV4x'
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
      security:
        - api_key: []
components:
  schemas:
    subscriptions_charge:
      type: object
      description: >-
        A charge is a single collection from the bank account of a subscription.
        You create a charge on an active subscription, and Fintoc collects the
        charge from the subscription's bank account on the next collection
        cycle. A charge starts as `pending` and ends as `succeeded`, `failed`,
        or `canceled`.
      properties:
        id:
          type: string
          description: Unique identifier of the charge.
          example: ch_o9YDuRzUez2GqV4x
        object:
          const: charge
          description: Type of the object. Always `charge`.
        amount:
          type: integer
          description: >-
            A positive integer in the smallest unit of `currency` (for example,
            `1000` for `$1000 CLP`, since CLP has no minor unit).
          example: 5000
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the charge was created.
          example: '2021-05-17T17:04:10.284Z'
        currency:
          type: string
          description: >-
            Three-letter ISO 4217 currency code. `CLP` is the only supported
            currency.
          example: CLP
        failure_code:
          type:
            - string
            - 'null'
          enum:
            - insufficient_funds
            - subscription_inactive
            - charge_amount_limit_exceeded
            - bank_account_unavailable
            - other
            - null
          description: >-
            Reason why the charge failed. Always `null` unless `status` is
            `failed`. One of `insufficient_funds` (the bank account did not have
            enough funds), `subscription_inactive` (the subscription is no
            longer active at the bank), `charge_amount_limit_exceeded` (the
            amount exceeds the bank's per-charge limit),
            `bank_account_unavailable` (the bank account is closed, blocked, or
            could not be found), or `other`.
          example: insufficient_funds
        metadata:
          type: object
          description: Set of key-value pairs attached to the charge when it was created.
          example:
            order_id: '9182'
        mode:
          $ref: '#/components/schemas/mode'
        recipient_account:
          anyOf:
            - $ref: '#/components/schemas/payouts_recipient_account'
            - type: 'null'
          description: >-
            Bank account that receives the funds of the charge. Only present
            when the charge has a recipient account attached.
        status:
          type: string
          enum:
            - pending
            - in_progress
            - succeeded
            - failed
            - canceled
          description: >-
            Current state of the charge. One of `pending` (not yet sent to the
            bank), `in_progress` (being processed by the bank), `succeeded`,
            `failed`, or `canceled`.
          example: succeeded
        subscription_id:
          type: string
          description: Identifier of the subscription the charge belongs to.
          example: sub_nMNejK7BT8oGbvO4
      required:
        - id
        - object
        - amount
        - created_at
        - currency
        - failure_code
        - metadata
        - mode
        - status
        - subscription_id
    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
    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
    payouts_recipient_account:
      type: object
      description: Bank account that receives the payout.
      properties:
        holder_id:
          type: string
          description: >-
            Tax identifier of the account holder, without dots or hyphens (RUT
            in Chile, RFC in Mexico).
          example: '111111111'
        institution_id:
          type: string
          description: >-
            Fintoc identifier of the institution that holds the account, such as
            `cl_banco_estado`.
          example: cl_banco_estado
        number:
          type: string
          description: >-
            Account number. In Mexico, an 18-digit CLABE (Clave Bancaria
            Estandarizada).
          example: '987654321'
        type:
          type: string
          enum:
            - checking_account
            - sight_account
            - rut_account
            - fsa_account
          description: >-
            Account subtype. One of `checking_account`, `sight_account` (Chilean
            cuenta vista), `rut_account` (BancoEstado CuentaRUT), or
            `fsa_account` (Mexican FSA account).
          example: checking_account
      required:
        - holder_id
        - institution_id
        - number
        - type
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header

````