v1

latestOpenAPI 3.1.02026-07-228956435.8 KB
Subscriptions

Create a subscription

Creates a subscription that bills a customer on a recurring cadence, in the live or test mode of the API key used. Each item defines its price through price_data, referencing an existing product (product) or defining one inline (product_data). All items must share a compatible currency (CLF items bill alongside CLP) and the same recurring interval and interval_count. A subscription can have up to 10 items. Fintoc charges each subscription automatically using payment_method, so the collection_method is always charge_automatically. The payment_method must be active and have a type of pac or card; subscriptions do not support bank_transfer. Without trial_end, Fintoc sets the billing_cycle_anchor to the creation time and finalizes an initial invoice immediately. The subscription starts incomplete and becomes active once that first payment succeeds. For a zero-amount subscription, Fintoc marks the initial invoice paid and the subscription starts active. With trial_end, the subscription's status is trialing. Fintoc sets the billing_cycle_anchor to the trial end and generates the first invoice when the trial ends.

post/subscriptions

Request body

customerstring required

ID of the customer to bill.

payment_methodstring required

Payment method to charge automatically on every billing cycle. Must belong to the specified customer.

metadataobject

Set of key-value pairs to attach to the subscription. Nested objects and arrays are not allowed as values.

trial_endstring date-time

ISO 8601 timestamp in UTC at which the trial ends, at least one day in the future. During the trial the subscription's status is trialing and Fintoc issues no invoice; Fintoc generates the first invoice when the trial ends. Omit for no trial.

Example request

{
  "customer": "cus_2c4mDe9NJyGmMzvCqLkXqAtjnRu",
  "payment_method": "pm_2c4mDhAbCdEfGhIjKlMnOpQrStu",
  "items": [
    {
      "price_data": {
        "currency": "CLP",
        "recurring": {
          "interval": "month",
          "interval_count": 1
        },
        "unit_amount": 10000,
        "product": "prod_2c4mDgwQqkNwMHnXSc4DBjkbcWz",
        "product_data": {
          "name": "Premium plan",
          "description": "Access to every premium feature.",
          "image_url": "https://example.com/image.png",
          "metadata": {
            "category": "saas"
          }
        }
      },
      "quantity": 1
    }
  ],
  "metadata": {
    "internal_id": "12345"
  },
  "trial_end": "2030-07-08T00:00:00Z"
}

Response

Subscription created. Fintoc generates and finalizes the initial invoice for the first billing period immediately.

idstring required

Unique identifier of the subscription.

object'subscription' required

Type of the object. Always subscription.

billing_cycle_anchorstring date-time required

ISO 8601 timestamp that anchors the billing cycle. Fintoc sets this anchor to the subscription's creation time, or to trial_end when a trial applies. Fintoc measures every billing period from this anchor.

collection_method'charge_automatically' | 'send_invoice' required

Method Fintoc uses to collect the invoices the subscription generates. One of charge_automatically (Fintoc charges the saved payment method) or send_invoice (Fintoc sends the invoice for the customer to pay). Subscriptions created through the API always use send_invoice.

created_atstring date-time required

ISO 8601 timestamp of when the subscription was created.

customerstring required

ID of the customer the subscription bills.

metadataobject required

Set of key-value pairs attached to the subscription.

mode'live' | 'test' required

Mode of the object. One of live or test. test subscriptions use fake data for integration testing and do not collect real money.

payment_methodstring nullable required

ID of the payment method charged when collection_method is charge_automatically. Always null for subscriptions created through the API.

status'active' | 'canceled' | 'incomplete' | 'trialing' required

Current status of the subscription. One of active, incomplete (the first invoice payment has not yet succeeded), trialing (the trial period has not ended), or canceled (the subscription stopped generating invoices).

trial_endstring date-time nullable required

ISO 8601 timestamp at which the trial period ends, or null if the subscription has no trial.

Example response

{
  "id": "sub_2c4mDcMaVxDx7nT3o5GbPMQbS2v",
  "billing_cycle_anchor": "2026-06-01T15:00:00Z",
  "collection_method": "send_invoice",
  "created_at": "2026-06-01T15:00:00Z",
  "customer": "cus_2c4mDe9NJyGmMzvCqLkXqAtjnRu",
  "items": [
    {
      "id": "si_2c4mDfkPLLrLTCJ3wPCEHGYpkVf",
      "price": {
        "currency": "CLP",
        "product": {
          "id": "prod_2c4mDgwQqkNwMHnXSc4DBjkbcWz",
          "created_at": "2026-06-01T15:00:00Z",
          "description": "Access to every premium feature.",
          "image_url": "https://example.com/image.png",
          "metadata": {
            "category": "saas"
          },
          "mode": "live",
          "name": "Premium plan"
        },
        "recurring": {
          "interval": "month",
          "interval_count": 1
        },
        "unit_amount": 10000
      },
      "quantity": 1
    }
  ],
  "metadata": {
    "order_id": "12345"
  },
  "mode": "live",
  "status": "active"
}