API Création d'un Regroupement de Clients
Usage
Permet à un Partenaire de créer un Regroupement de Clients ou un sous-Regroupement de Clients (en précisant le parent).
Endpoint : POST /publishers
Paramètres du BODY
| Champs | Type | Oblig ? | Commentaire |
|---|---|---|---|
publisher_id | string | OUI | Code = Identifiant unique du Regroupement de Clients à créer. Taille : jusqu'à 46 caractères. Regex : [A-Za-z0-9-] |
siren_siret | string | OUI | Le numéro Siren/Siret sera validé avec l'algorithme de Luhn. Taille : 9 ou 14 caractères |
legal_name | string | OUI | Raison sociale. Taille : jusqu'à 50 caractères. Regex : ^[a-zA-Z0-9çéèàùâêîôûäëïöüñÿÇÄÂÀËÊÈÉÏÎÖÔÜÛÙŸÑ'"\-&\*/\s\.]+$ |
vat_number | string | NON | Numéro de TVA intracommunautaire. Taille : jusqu'à 32 caractères. Regex : ^$|^([A-Z]{2} ?[0-9]{2} ?([0-9]{9}))$ |
parent_publisher_id | string | NON | Code du Distributeur ou du Regroupement de Clients auquel le nouveau Regroupement de Clients doit être rattaché. Si non renseigné, le nouveau Regroupement de Clients sera créé directement sous le Distributeur de rattachement du Partenaire |
Exemple de requête
curl --location 'https://api.laposte.fr/digiposte/v3/publishers/' \
--header 'Authorization: bearer UA15MZm3B4bYmsmdfwQsSDsoe0g' \
--header 'X-Okapi-Key: CT5hp0tcjLhA16LWO3cKRJBgKxybktR5HtnKLtMpyqQuG87+ZXBvsu286QmyT9aH' \
--header 'Content-Type: application/json' \
--data '{
"publisher_id": "88-DEMODGP",
"legal_name": "REGROUPEMENT ABC",
"siren_siret": "35600000000048",
"parent_publisher_id": "88",
"vat_number": "FR39356000000"
}'
Retour en cas de succès
- Code retour : 204 No Content
- Body : vide
Règles métier et cas d'erreur
Cas d'erreur (si plusieurs erreurs, les libellés sont présents dans le champ ErrorLabel séparés par des points-virgules) :
| Cas d'erreur | Code retour |
|---|---|
| Token expiré | 401 Unauthorized : "Unauthorized user" |
| Le Partenaire n'a pas les droits d'utiliser cette API | 403 Forbidden : "Your account cannot access to this resource" |
| Le code du Regroupement de Clients est manquant | 400 Bad Request : "publisher_id is required" |
| La raison sociale est manquante | 400 Bad Request : "legal_name is required" |
| Le code du Regroupement de Clients ne respecte pas le format attendu ou dépasse la taille max | 400 Bad Request : "publisher_id size must be between 0 and 46 and match ^[-' 0-9a-zA-Z]+$" |
| Le code parent correspond à un Client au lieu d'un Regroupement de Clients du périmètre du Partenaire | 400 Bad Request : "Parent publisher is not a publisher" |
| Le code parent n'existe pas dans le périmètre du Partenaire (il peut exister hors de son périmètre, ou ne pas exister du tout) | 404 Not Found : "parent_publisher_id <parent_publisher_id> not found" |
| La raison sociale ne respecte pas le format attendu | 400 Bad Request : "legal_name must match \"^[a-zA-Z0-9çéèàùâêîôûäëïöüñÿÇÄÂÀËÊÈÉÏÎÖÔÜÛÙŸÑ'\"\-&*/\s\.\(\)]+$\"" |
| La raison sociale dépasse la taille max | 400 Bad Request : "legal_name size must be between 0 and 50" |
| Le siren/siret ne respecte pas le format attendu (non validé par l'algorithme de Luhn) | 400 Bad Request : "siren_siret must match the Luhn algorithm" |
| Le numéro de TVA ne respecte pas le format attendu | 400 Bad Request : "vat_number must match \"^([a-zA-Z]{2}[0-9]{2}[0-9]{9})?$\"" |
| Le code Regroupement de Clients est déjà attribué (ça peut être en dehors du périmètre du Partenaire) | 409 Conflict : "Publisher_id already exists" |
Cas passant (conditions à remplir) :
- Le Partenaire a les droits d'utiliser cette API.
- Le Code Regroupement de Clients n'est pas encore attribué.
- La Raison sociale est bien renseignée (et valide).
- L'éventuel parent fait bien référence à un Regroupement de Client du périmètre du Partenaire.
- Tous les champs sont valides (respectent les formats attendus).