Start outbound migration
Generate the one-time migration key a French company's new Plateforme Agréée (PA)/PDP needs to complete its Peppol takeover from Docnova.
This is the France-specific usage of the generic Start outbound migration endpoint. For the full generic field reference and error table, see Global-White Label Partner → Peppol Migration → Start outbound migration.
Why this exists
When a French company signs an accord formel moving away from Docnova, the AIFE "Processus de choix de PA et mobilité" (chapters 5–6) requires Docnova, as the old PA, to generate and hand over a code de migration Peppol (Tableau 7, field 18: Code_mig_peppol) so the new PA can take over the company's address on the Peppol network's SMP. This endpoint generates that key.
This is separate from the PPF annuaire release itself — the accord/tacit-acceptance and annuaire steps happen through the AIFE mobility email/CSV exchange with the new PA, not through this endpoint.
Endpoint
| Property | Value |
|---|---|
| URL | POST /peppol/migration/outbound/start |
| Method | POST |
| Auth | R-Auth: <partner-jwt> (the associated company must have a user with SUPER_OWNER admin authority) |
| Content-Type | application/json |
| Base URL | Stage Environment https://api-fr-stage.docnova.ai/ Production Environment https://api-fr.docnova.ai/ |
Example Request
A customer's new PA has sent a mobility notification asking for the Code_mig_peppol.
curl --location 'https://api-fr-stage.docnova.ai/peppol/migration/outbound/start' \
--header 'Content-Type: application/json' \
--header 'R-Auth: {{partnerJwt}}' \
--data '{
"companyId": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"icd": "0225",
"specialIdentifier": "",
"businessIdentifier": "482917234"
}'
Request body
{
"companyId": "string (UUID)",
"icd": "string",
"specialIdentifier": "string",
"businessIdentifier": "string"
}
Request fields (France mapping)
| Field | Type | Required | France value |
|---|---|---|---|
companyId | UUID | Yes | The Docnova company that owns the participant being migrated out. |
icd | string | Yes | 0225 — the French SIRENE registry scheme. |
specialIdentifier | string | No | Empty for a SIREN-level (entreprise) address; a SIRET/suffix fragment for établissement-level addressing. |
businessIdentifier | string | Yes | The company's SIREN (9 digits), or SIREN+SIRET depending on specialIdentifier. |
Response
200 OK
A8F5D2K9L7YHD56FVO0PAZ
Response fields
Plain text body — the generated migration key. Send this value back to the new PA in your mobility response email/CSV as Code_mig_peppol — this is the value they're waiting for.
The mobility process requires the old PA's migration code to reach the new PA no later than 4 business days before the address's effective date. The key itself expires in 30 days on Docnova's side; don't let it sit unused past the AIFE deadline just because it hasn't technically expired yet.
- The key is one-time use and expires in 30 days. If migration isn't completed within that window, it's automatically cancelled.
- Generating a key cannot be re-issued for the same request while one is still pending — cancel it first (
/peppol/migration/outbound/cancel) if a new key is needed. - Until the new PA completes the migration, the participant remains active on Docnova — invoices continue to be sent/received normally.
- Docnova periodically checks whether the participant has moved to another SMP; once detected, the migration is finalized automatically (or manually via
/peppol/migration/outbound/confirm).
Error Codes
| HTTP Status | Error | Description |
|---|---|---|
400 | Validation error | companyId, icd, or businessIdentifier missing. |
401 / 403 | Unauthorized | Missing/invalid R-Auth token, or the associated user lacks SUPER_OWNER admin authority. |
500 | PEPPOL_PARTICIPANT_OUTBOUND_MIGRATION_FAILED | "Peppol participant outbound migration failed! Error: %s" — the SMP could not generate a key for this participant, or the participant ID could not be resolved. |
Related
- Overview — authentication model, base URLs, general France-Integration conventions
- Start inbound migration — the reverse flow