billing
GET /v1/trials/eligibility
Can this organization start a trial on this plan, and on what terms?
Authenticatie
Stuur een API-sleutel mee als bearer token. Dit eindpunt vermeldt geen specifieke toestemming in de specificatie, dus geef uw sleutel de minimale rechten die nodig zijn en controleer het antwoord in plaats van zomaar wat aan te nemen.
Waar je organisatie-id komt te staan
Dit eindpunt accepteert org_id als queryparameter. Laat deze achterwege en de aanroep destilleert je gehele tenant-substructie; stuur deze mee om de aanroep te beperken tot één organisatie.
Uw organisatie-id staat op het scherm met API-sleutels in uw dashboard, naast de sleutel zelf. Dit is in elke aanroep die u doet dezelfde id.
Probeer het
Vervang alles tussen punthaakjes door uw eigen waarden en de sleutelplaatsvervanger door een sleutel uit uw dashboard.
curl -X GET https://api.zinndigital.com/v1/trials/eligibility?plan_code=<plan_code> \
-H "Authorization: Bearer zdk_live_…"Ingelogd? De API-console in je dashboard vult je echte organisatie-id en je eigen sleutel in, en voert het verzoek uit tegen de live API zodat je de daadwerkelijke respons kunt zien. Open dit eindpunt in de API-console
Details
Lets a CTA be honest **before** it is clicked. Without it the only way to learn that a plan has no trial, or that this organization has already had one, is to press the button and read a 422 — which is how a "Start free trial" button that cannot start a free trial stays on a pricing page for months. `reason` distinguishes the cases deliberately: "this plan has no trial" and "you have already had yours" lead a customer to do completely different things, and a bare `eligible: false` would collapse them into one shrug.
Parameters
| Naam | Type | Verplicht | Wat dit is |
|---|---|---|---|
plan_code (query) | string | Ja | — |
org_id (query) | string | Nee | — |
Reactie
| Naam | Type | Verplicht | Wat dit is |
|---|---|---|---|
plan_code | string | Ja | — |
eligible | boolean | Ja | — |
duration_days | integer | Nee | — |
max_sites | integer | Nee | — |
requires_card | boolean | Nee | — |
reason | string<, no_trial_on_plan, no_billing_org, already_used> | Ja | Empty when eligible. |
upgrade | TrialUpgradeOffer | Nee | The plan the customer asked about, priced in their currency, so a refusal ends in a decision rather than a dead end. ⚖️ Owner instruction 2026-08-19: *"if they try to start a ne… |
Fouten die dit eindpunt kan retourneren
401 · 403