What you’ll end up with
Step 1 — Create the draft adhesion
The applicant fills in their personal data. From your integration, that becomes aPOST to /api/v1/adhesion/create. The application is created in NEW status, editable, and not yet visible to HR.
canBeSubmitted: false — that flips to true only after both documents (ID + signed) are uploaded.
Step 2 — Upload an ID document
ID verification is mandatory. The upload triggers OCR, which extracts personal data into anIdentity record attached to the application.
hasIdDocument: true, but the extracted fields appear on the Identity record a few seconds later. Polling GET /api/v1/identity/{id} will show OCR progress.
Replacing an existing ID document is supported — re-upload the same endpoint and the previous file plus its OCR data is discarded.
Step 3 — Upload the signed adhesion form
The applicant downloads the pre-filled PDF (you can render the template yourself, or hitGET /api/v1/adhesion/{id}/pdf to grab the official one), signs it, and uploads the signed version back.
canBeSubmitted flag flips to true.
Step 4 — Submit for HR review
Once both documents are in place, transition the application fromNEW to PENDING. This sends an email to the responsible HR admin.
409 Conflict here means one of the documents is missing — check hasIdDocument and hasSignedDocument on the adhesion first.
After this point, the applicant cannot edit the application themselves. HR can still record interview notes via PATCH /api/v1/adhesion/{id}/interview.
Step 5 — Admin transitions to approval
HR reviews the application, optionally records interview notes, and transitions the status. Each transition has side effects.SUCCESS, the linked User is now ACTIVE, the membership fee is active, and they can log in.
Common gotchas
The adhesion submitted but HR never saw the email
The adhesion submitted but HR never saw the email
The email goes to the admin marked as responsible HR for the applicant’s local center — not to a blanket inbox. Check Settings → Users → Permissions that at least one admin has
HR_LOCAL on the local center the applicant chose. If none, no email is sent (and 409 is returned by send).OCR extracted the wrong birth date / address
OCR extracted the wrong birth date / address
The OCR fills the
Identity record, not the Adhesion itself. The applicant’s submitted form fields stay as-is; HR sees both side by side in the admin UI. You can correct via PATCH /api/v1/identity/{id}/update-data.My applicant is a child — do I use this flow?
My applicant is a child — do I use this flow?
No. For minors, use the family-member flow:
POST /api/v1/register-child against a parent’s authenticated session. This skips ID upload and parental adhesion entirely; the child inherits parent membership.Can I skip the documents for a hand-vetted applicant?
Can I skip the documents for a hand-vetted applicant?
HR with
HR_TENANT permission can create the User directly: POST /api/v1/users followed by POST /api/v1/user_roles to assign MEMBER. Skip the adhesion altogether. The cost is no audit trail of the application.What to do next
- Handle webhooks — subscribe to
user.createdso your CRM is updated the moment the adhesion succeeds - Issue and track contracts — assign the membership agreement after the User is activated
- Process payments — collect the first membership fee

