v1

latestOpenAPI 3.1.02026-07-228956435.8 KB
Subscription intents

Create a subscription intent

Creates a subscription intent in the live or test mode of the API key used. The response includes the widget_token used to open the widget so the payer can authorize the subscription.

post/subscription_intents

Request body

customer_emailstring

Email address of the payer. Fintoc sends the subscription receipt to this address when the subscription intent succeeds.

reference_idstring

Identifier the payer's bank uses to display the subscription on the bank's portal. Up to 15 characters, uppercase letters and numbers only, and not already in use by another subscription intent that has not failed. When omitted, reference_id is null on the subscription intent and defaults to the account holder's ID on the resulting Subscription.

Example request

{
  "business_profile": {
    "name": "Hooli"
  },
  "customer_email": "payer@example.com",
  "reference_id": "ABC12345"
}

Response

The created subscription intent. widget_token is only returned in this response.

idstring required

Unique identifier of the subscription intent.

object'subscription_intent' required

Type of the object. Always subscription_intent.

created_atstring date-time required

ISO 8601 timestamp, in UTC, of when the subscription intent was created.

customer_emailstring nullable required

Email address of the payer. Fintoc sends the subscription receipt to this address when the subscription intent succeeds.

mode'test' | 'live' required

Mode of the object. live objects use real institution data, test objects use fake data for integration testing.

public_error'null' | 'login_invalid_credentials' | 'login_credentials_locked' | 'authorization_timeout' | 'mfa_authorization_timeout' | 'mfa_unavailable' | 'bank_connection_error' | 'bank_not_available' | 'password_change_required' | 'request_timeout' | 'subscription_intent_expired' | 'account_type_not_permitted' | 'internal_error' | 'user_left' nullable required

Error code describing why the subscription intent did not succeed. null unless status is failed or rejected.

reference_idstring nullable required

Identifier the payer's bank uses to display the subscription on the bank's portal. null when not provided on creation.

status'created' | 'in_progress' | 'succeeded' | 'failed' | 'rejected' required

Status of the subscription intent. One of created (waiting for the payer to start the authorization), in_progress (the payer is authorizing the subscription at their bank), succeeded (the payer authorized the subscription), failed (the authorization failed or expired), or rejected (the payer's bank rejected the subscription).

widget_tokenstring nullable required

Token used to open the widget so the payer can authorize the subscription. Only returned when the subscription intent is created; null in every other response.

Example response

{
  "id": "si_mceqLoFwfBVHi3q4",
  "business_profile": {
    "name": "Hooli"
  },
  "created_at": "2023-03-08T15:24:11Z",
  "customer_email": "payer@example.com",
  "mode": "live",
  "public_error": "login_invalid_credentials",
  "reference_id": "ABC12345",
  "status": "succeeded",
  "subscription": {
    "id": "sub_m7N9rAWJS9dWDKEe",
    "account": {
      "id": "acc_nMNejK7BT8oGbvO4",
      "balance": {
        "available": 500000,
        "current": 500000,
        "limit": 500000
      },
      "currency": "CLP",
      "holder_id": "111111111",
      "holder_name": "Jon Snow",
      "institution": {
        "id": "cl_banco_de_chile",
        "country": "cl",
        "name": "Banco de Chile"
      },
      "name": "Cuenta Corriente",
      "number": "9530516286",
      "official_name": "Cuenta Corriente Moneda Local",
      "type": "checking_account"
    },
    "created_at": "2023-03-08T15:24:11Z",
    "mode": "live",
    "reference_id": "ABC12345",
    "status": "active"
  },
  "widget_token": "si_mceqLoFwfBVHi3q4_sec_a8Mw9bnHzgVRCMTSDgrJpvkN"
}