Hello, and welcome to the JCF API.
JCF is a Tunisian accounting and tax platform. This API is the single backend behind the client portal, the accountant portal, the admin console and the mobile app: companies, invoices, declarations, documents, KYC and billing all go through here.
Who uses it
Client portal
Business owners: invoicing, purchases, tax declarations, documents and their KYC dossier.
Accountant portal
Accounting firms (cabinets): client portfolio, missions, tasks, reviews and fees.
Admin console
The JCF team: firms, accountants, KYC review, plans, support and audit.
Mobile app
Sign-up, documents and day-to-day follow-up on the go.
Try it in three steps
- Log in.
POST /auth/loginwithemailandpassword. If the account has two-factor enabled, resend withmfaCode. The response contains anaccessToken. - Authorize. Open /docs, click Authorize and paste the token (without the word
Bearer). - Call an endpoint. Expand any operation, press Try it out, then Execute.
Good to know
| Topic | How it works |
|---|---|
| Access | Every route is scoped by membership. Company data lives under /companies/:companyId/…, accounting-firm data under /practice/cabinets/:cabinetId/… and platform operations under /admin/…. No token gives 401; a valid token without access to that scope gives 403. |
| Errors | Failures return a problem-details JSON body with type, title, status, code, detail and instance. |
| Lists | List endpoints accept ?limit= and ?offset=; the full size comes back in the X-Total-Count response header. Without limit you get the whole list. |
| Retries | Send an Idempotency-Key header on POST, PATCH or DELETE calls: a retry with the same key replays the first response instead of repeating the action. |
| Onboarding | Sign-up sends a verification email; a new company then files its legal documents and submits a KYC dossier for review. |