> For the complete documentation index, see [llms.txt](https://ouvretaferme.gitbook.io/ouvretaferme/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ouvretaferme.gitbook.io/ouvretaferme/endpoints/commercialisation/boutiques/points-de-retrait.md).

# Points de retrait

Où vos clients récupèrent leur commande : un lieu de retrait, une tournée de livraison ou une expédition. Ils appartiennent à votre structure et se réutilisent d'une boutique à l'autre, chaque vente choisissant ceux qu'elle propose.

## Lister les points de retrait

> Scope requis : \`commercialisation:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Points de retrait"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"Point":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["home","place"],"description":"Valeurs : `home` (Livraison à domicile), `place` (Livraison en point de retrait)."},"mode":{"type":"string","enum":["tour","shipping"],"nullable":true},"zone":{"type":"string","minLength":1,"nullable":true,"description":"Zones de livraison."},"description":{"type":"string","minLength":1,"nullable":true},"place":{"type":"string","minLength":1,"nullable":true,"description":"Ville du point de retrait."},"address":{"type":"string","nullable":true,"description":"Adresse du point de retrait."},"paymentCard":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en ligne par carte bancaire."},"paymentTransfer":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement par virement bancaire."},"paymentOffline":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en direct."},"paymentWallet":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement avec la cagnotte."},"orderMin":{"type":"integer","nullable":true,"description":"Montant minimal de commande."},"shipping":{"type":"number","nullable":true,"description":"Frais de livraison par commande."},"shippingUntil":{"type":"integer","nullable":true,"description":"Montant minimal de commande au delà duquel les frais de livraison sont offerts."},"status":{"type":"string","enum":["active","deleted"]}},"title":"Points de retrait","description":"Où vos clients récupèrent leur commande : un lieu de retrait, une tournée de livraison ou une expédition. Ils appartiennent à votre structure et se réutilisent d'une boutique à l'autre, chaque vente choisissant ceux qu'elle propose."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/pointList":{"get":{"operationId":"getPointList","tags":["Points de retrait"],"summary":"Lister les points de retrait","description":"Scope requis : `commercialisation:read`.","parameters":[{"name":"start","in":"query","required":false,"description":"Rang du premier élément rendu, à partir de 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Nombre d'éléments rendus, 100 par défaut et 500 au plus. À 0, seul le total est rendu.","schema":{"type":"integer","minimum":0,"maximum":500,"default":100}},{"name":"ids","in":"query","required":false,"description":"Ne rend que ces identifiants, 100 au plus, séparés par des virgules.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"},"maxItems":100}},{"name":"afterId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant supérieur, pour parcourir une liste sans décalage quand elle change pendant la lecture.","schema":{"type":"integer","format":"int64"}},{"name":"beforeId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant inférieur.","schema":{"type":"integer","format":"int64"}},{"name":"type","in":"query","required":false,"description":"Valeurs : `home` (Livraison à domicile), `place` (Livraison en point de retrait).","schema":{"type":"string","enum":["home","place"]}}],"responses":{"200":{"description":"Liste paginée des points de retrait.","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"Nombre d'éléments que retiennent les filtres, sans tenir compte de la pagination (`start`, `limit`, `afterId`, `beforeId`)."},"list":{"type":"array","items":{"$ref":"#/components/schemas/Point"}}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Consulter un point de retrait

> Scope requis : \`commercialisation:read\`. Pour lire plusieurs points de retrait, \`GET /pointList?ids=12,15,18\` en rend jusqu'à 100, et ne compte que pour un appel.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Points de retrait"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"Point":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["home","place"],"description":"Valeurs : `home` (Livraison à domicile), `place` (Livraison en point de retrait)."},"mode":{"type":"string","enum":["tour","shipping"],"nullable":true},"zone":{"type":"string","minLength":1,"nullable":true,"description":"Zones de livraison."},"description":{"type":"string","minLength":1,"nullable":true},"place":{"type":"string","minLength":1,"nullable":true,"description":"Ville du point de retrait."},"address":{"type":"string","nullable":true,"description":"Adresse du point de retrait."},"paymentCard":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en ligne par carte bancaire."},"paymentTransfer":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement par virement bancaire."},"paymentOffline":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en direct."},"paymentWallet":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement avec la cagnotte."},"orderMin":{"type":"integer","nullable":true,"description":"Montant minimal de commande."},"shipping":{"type":"number","nullable":true,"description":"Frais de livraison par commande."},"shippingUntil":{"type":"integer","nullable":true,"description":"Montant minimal de commande au delà duquel les frais de livraison sont offerts."},"status":{"type":"string","enum":["active","deleted"]}},"title":"Points de retrait","description":"Où vos clients récupèrent leur commande : un lieu de retrait, une tournée de livraison ou une expédition. Ils appartiennent à votre structure et se réutilisent d'une boutique à l'autre, chaque vente choisissant ceux qu'elle propose."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/point/{id}":{"get":{"operationId":"getPointById","tags":["Points de retrait"],"summary":"Consulter un point de retrait","description":"Scope requis : `commercialisation:read`. Pour lire plusieurs points de retrait, `GET /pointList?ids=12,15,18` en rend jusqu'à 100, et ne compte que pour un appel.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Point de retrait demandé.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Point"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Modifier un point de retrait

> Scope requis : \`commercialisation:write\`. Le corps porte tous les champs modifiables, ou seulement ceux que nomme sa clé \`properties\` (mise à jour partielle, voir la vue d'ensemble).

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Points de retrait"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"PointUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1,"nullable":true,"description":"Zones de livraison."},"description":{"type":"string","minLength":1,"nullable":true},"place":{"type":"string","minLength":1,"nullable":true,"description":"Ville du point de retrait."},"address":{"type":"string","nullable":true,"description":"Adresse du point de retrait."},"paymentTransfer":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement par virement bancaire."},"paymentOffline":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en direct."},"paymentWallet":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement avec la cagnotte."},"orderMin":{"type":"integer","nullable":true,"description":"Montant minimal de commande."},"shipping":{"type":"number","nullable":true,"description":"Frais de livraison par commande."},"shippingUntil":{"type":"integer","nullable":true,"description":"Montant minimal de commande au delà duquel les frais de livraison sont offerts."}},"description":"Les champs acceptés dépendent de l'élément envoyé : cette liste réunit ceux des différents cas et aucun n'y est obligatoire dans tous. Où vos clients récupèrent leur commande : un lieu de retrait, une tournée de livraison ou une expédition. Ils appartiennent à votre structure et se réutilisent d'une boutique à l'autre, chaque vente choisissant ceux qu'elle propose."},"Point":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["home","place"],"description":"Valeurs : `home` (Livraison à domicile), `place` (Livraison en point de retrait)."},"mode":{"type":"string","enum":["tour","shipping"],"nullable":true},"zone":{"type":"string","minLength":1,"nullable":true,"description":"Zones de livraison."},"description":{"type":"string","minLength":1,"nullable":true},"place":{"type":"string","minLength":1,"nullable":true,"description":"Ville du point de retrait."},"address":{"type":"string","nullable":true,"description":"Adresse du point de retrait."},"paymentCard":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en ligne par carte bancaire."},"paymentTransfer":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement par virement bancaire."},"paymentOffline":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en direct."},"paymentWallet":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement avec la cagnotte."},"orderMin":{"type":"integer","nullable":true,"description":"Montant minimal de commande."},"shipping":{"type":"number","nullable":true,"description":"Frais de livraison par commande."},"shippingUntil":{"type":"integer","nullable":true,"description":"Montant minimal de commande au delà duquel les frais de livraison sont offerts."},"status":{"type":"string","enum":["active","deleted"]}},"title":"Points de retrait","description":"Où vos clients récupèrent leur commande : un lieu de retrait, une tournée de livraison ou une expédition. Ils appartiennent à votre structure et se réutilisent d'une boutique à l'autre, chaque vente choisissant ceux qu'elle propose."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/point/{id}":{"put":{"operationId":"putPointById","tags":["Points de retrait"],"summary":"Modifier un point de retrait","description":"Scope requis : `commercialisation:write`. Le corps porte tous les champs modifiables, ou seulement ceux que nomme sa clé `properties` (mise à jour partielle, voir la vue d'ensemble).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PointUpdate"},{"type":"object","title":"Mise à jour partielle","description":"Les champs nommés dans `properties`, et eux seuls, chacun à sa nouvelle valeur.","required":["properties"],"properties":{"properties":{"type":"array","minItems":1,"items":{"type":"string","enum":["orderMin","shipping","shippingUntil","paymentOffline","paymentTransfer","paymentWallet","name","zone","description","place","address"]}}},"additionalProperties":true}]}}}},"responses":{"200":{"description":"Point de retrait modifié.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Point"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Supprimer un point de retrait

> Scope requis : \`commercialisation:write\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Points de retrait"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"responses":{"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/point/{id}":{"delete":{"operationId":"deletePointById","tags":["Points de retrait"],"summary":"Supprimer un point de retrait","description":"Scope requis : `commercialisation:write`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Supprimé. Le corps de la réponse est vide."},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"412":{"description":"Condition métier interdisant la suppression.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Créer un point de retrait

> Scope requis : \`commercialisation:write\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Points de retrait"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"PointWrite":{"type":"object","properties":{"name":{"type":"string","minLength":1},"zone":{"type":"string","minLength":1,"nullable":true,"description":"Zones de livraison."},"description":{"type":"string","minLength":1,"nullable":true},"place":{"type":"string","minLength":1,"nullable":true,"description":"Ville du point de retrait."},"address":{"type":"string","nullable":true,"description":"Adresse du point de retrait."}},"description":"Les champs acceptés dépendent de l'élément envoyé : cette liste réunit ceux des différents cas et aucun n'y est obligatoire dans tous. Où vos clients récupèrent leur commande : un lieu de retrait, une tournée de livraison ou une expédition. Ils appartiennent à votre structure et se réutilisent d'une boutique à l'autre, chaque vente choisissant ceux qu'elle propose."},"Point":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["home","place"],"description":"Valeurs : `home` (Livraison à domicile), `place` (Livraison en point de retrait)."},"mode":{"type":"string","enum":["tour","shipping"],"nullable":true},"zone":{"type":"string","minLength":1,"nullable":true,"description":"Zones de livraison."},"description":{"type":"string","minLength":1,"nullable":true},"place":{"type":"string","minLength":1,"nullable":true,"description":"Ville du point de retrait."},"address":{"type":"string","nullable":true,"description":"Adresse du point de retrait."},"paymentCard":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en ligne par carte bancaire."},"paymentTransfer":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement par virement bancaire."},"paymentOffline":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement en direct."},"paymentWallet":{"type":"boolean","nullable":true,"description":"Activer le choix du paiement avec la cagnotte."},"orderMin":{"type":"integer","nullable":true,"description":"Montant minimal de commande."},"shipping":{"type":"number","nullable":true,"description":"Frais de livraison par commande."},"shippingUntil":{"type":"integer","nullable":true,"description":"Montant minimal de commande au delà duquel les frais de livraison sont offerts."},"status":{"type":"string","enum":["active","deleted"]}},"title":"Points de retrait","description":"Où vos clients récupèrent leur commande : un lieu de retrait, une tournée de livraison ou une expédition. Ils appartiennent à votre structure et se réutilisent d'une boutique à l'autre, chaque vente choisissant ceux qu'elle propose."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/point":{"post":{"operationId":"postPoint","tags":["Points de retrait"],"summary":"Créer un point de retrait","description":"Scope requis : `commercialisation:write`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointWrite"}}}},"responses":{"201":{"description":"Point de retrait créé.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Point"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"412":{"description":"Condition métier interdisant la création.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```
