Download OpenAPI specification:
This page covers the original way an app authenticated to a customer's account: a
single App ID and App Secret pair, sent with every request along with the ID of
the customer you are acting for.
Most apps should use OAuth instead. New apps are set up on OAuth from the start; the flow is in the App Platform guide. If your app already runs on App ID and App Secret, it keeps working, and the last section below covers moving over.
Your App ID and App Secret are on your app's page in the
developer portal. Send them as headers
on every request, together with the customer's Check Cherry account ID as
FRANCHISE-ID:
curl -H "App-ID: <app id>" -H "App-Secret: <app secret>" -H "FRANCHISE-ID: <customer's account id>" https://api.checkcherry.com/api/v1/leads
All three are also accepted as query parameters (app_id, app_secret,
franchise_id). Prefer headers; query strings end up in logs.
Which accounts you can act for. Only accounts that have enabled your app from
their Integrations page. A FRANCHISE-ID for any other account resolves to nothing
and the request fails as unauthorized.
Finding a customer's account ID. You receive it when they enable your app: it is
the {{franchise_id}} substitution available to your app's authentication endpoint
and widget HTML, and every webhook payload carries it as franchise_id.
What the credential can do. A fixed set of permissions, the same for every app and every account. It covers leads, proposals and bookings, appointments, expenses, availability, messaging, users, media, offerings, reports, and design templates. It is deliberately broad, which is one of the reasons to prefer OAuth: an OAuth app declares exactly what it needs and nothing more.
Requests and responses are the same as for any other credential. See the Business API reference for every endpoint, the JSON:API response format, pagination, and rate limits.
Your app can support both credentials at once, so there is no cut-over day.
Nothing in Check Cherry needs to change on the customer's side beyond that one authorization. Their existing enablement of your app stays in place, so requests that still use App ID and App Secret continue to work while you migrate.