diff --git a/guides/fr-pa-registration.mdx b/guides/fr-pa-registration.mdx index b94d5959..c36fab0d 100644 --- a/guides/fr-pa-registration.mdx +++ b/guides/fr-pa-registration.mdx @@ -31,7 +31,7 @@ The Annuaire requires every entry to be receive-capable, so there is no send-onl Moves the silo entry into a visible "in progress" state so operator dashboards reflect that registration is underway. - Pauses until the signed agreement is uploaded and accepted (`gov-fr.agreement.wait.approval`). + Pauses until the signed agreement is uploaded and accepted (`gov-fr.agreement.wait.approval`). This is a **manual gate** — the party stays in processing and the workflow does not advance until someone opens the agreement form and signs it. See [Complete the agreement](#complete-the-agreement) below. Marks the agreement step as completed before the directory and Peppol registrations run. @@ -59,6 +59,48 @@ The Annuaire requires every entry to be receive-capable, so there is no send-onl +## Complete the agreement + +After the workflow reaches **Wait for French agreement upload**, the party sits in processing until the PA mandate is signed. **This step is manual and required** — the party cannot be accepted, registered in the Annuaire, or published on Peppol until it is done. + +### Sign in Console + +The agreement form is surfaced as a link on the party itself: + + + + In Console, open the party (silo entry) that the register workflow is running on. + + + Open the **Meta** tab. The **Sign agreement for France** step publishes an agreement link there (meta key `approval-link`). + + + Click the link to open the French PA agreement form. Review the mandate that authorises Invopop to act as the party's Plateforme Agréée, sign it, and submit. + + + +### Sign through the API + +You can also complete the agreement programmatically — useful when you embed the onboarding in your own product instead of sending the signer to the Invopop form. Once the workflow has paused at **Wait for French agreement upload**: + + 1. [Download the unsigned agreement PDF](/api-ref/apps/gov-fr/agreement-fetch) `GET /apps/gov-fr/v1/entry/{silo_entry_id}/agreement`
+ The mandate PDF is generated from the party's data for the signer to review and sign. + + 2. [Upload the signed agreement](/api-ref/apps/gov-fr/agreement-upload) `POST /apps/gov-fr/v1/entry/{silo_entry_id}/agreement`
+ Send the signed PDF together with the signature method: `esignature` for an electronic (PAdES) signature, or `identity` for a handwritten one. + + 3. [Upload identity images](/api-ref/apps/gov-fr/identity-upload) `POST /apps/gov-fr/v1/entry/{silo_entry_id}/identity`
+ Only required when the signature method is `identity`. Upload one image per view: `front` and `back` for an ID card, or `page` for a passport. + + 4. [Confirm the submission](/api-ref/apps/gov-fr/confirm) `POST /apps/gov-fr/v1/entry/{silo_entry_id}/confirm`
+ Marks the submission as complete and wakes the waiting workflow task. + +Whichever way the agreement is signed, once it is submitted and accepted, **Wait for French agreement upload** resolves and the workflow continues to the directory and Peppol registration steps, ending in registered. + + + If you don't open the Meta tab and sign the agreement, the party stays in processing indefinitely — it is never automatically accepted. + + ## Unregistration Run the unregister workflow to revoke a party's registrations when it should no longer issue or receive invoices through Invopop.