# Subscriptions

> Recurring Fina Pay payments: hosted checkout, customer portal and lifecycle webhooks (rolling out).

> **Note:** Fina Pay subscriptions are rolling out by business. Subscription webhooks to external URLs are enabled per platform setting; until then, plans are managed from Fina and the modules that use them (for example farm subscription boxes).

A subscription is a mandate the customer authorizes once with their wallet PIN; Fina then charges each period automatically from their Fina Pay balance.

- **Hosted checkout** — `https://fina.do/pay/s/<token>` shows the plan terms, signs the customer in and asks for the PIN. It opens the Fina app when installed. Supports a `?return=` URL back to your site.
- **Customer portal** — `https://fina.do/pay/subscriptions`, where customers see, cancel or reactivate their subscriptions and set a spending cap.
- **Entitlement** — every webhook carries `entitled` and `entitled_until`: give access while `entitled` is true. Grace periods and trials are already applied.

**subscription.renewed — JSON**

```json
{
  "event": "subscription.renewed",
  "event_id": "0b6f…",
  "subscription_id": "a1c2…",
  "plan_code": "coffee-monthly",
  "status": "active",
  "cancel_at_period_end": false,
  "entitled": true,
  "entitled_until": "2026-11-05T14:00:00.000Z",
  "period": { "id": "…", "sequence": 2, "kind": "paid", "start": "…", "end": "…", "status": "paid", "amount_minor": 90000, "merchant_ref": null },
  "charge": { "id": "…", "amount_minor": 90000, "fee_minor": 2250, "net_minor": 87750, "paid_at": "…" },
  "external_customer_ref": "customer-981",
  "timestamp": "2026-10-05T14:00:02.000Z"
}
```

> **Warning:** Signature caveat for subscription events: because the signed string uses the top-level key list as a JSON.stringify replacer, nested objects (`period`, `charge`) contribute only keys that also exist at the top level. Use the helpers in [Webhooks](https://fina.do/developers/webhooks.md) as-is — they reproduce this exactly — and re-read sensitive nested values from Fina when they drive money decisions.

Source: https://fina.do/developers#subscriptions