> 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/reglements/encaissements.md).

# Encaissements

Ce qui a été encaissé, toutes ventes et factures confondues : montant, mode de règlement, état et date de règlement. En lecture seule, un règlement appartenant à la transaction qu'il solde : il se pose par les actions de la vente ou de la facture.

## Lister les encaissements

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

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Encaissements"}],"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":{"Payment":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"source":{"type":"string","enum":["sale","invoice","wallet","invoicing"]},"sale":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Sale`.","nullable":true},"invoice":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Invoice`.","nullable":true},"invoicing":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Invoicing`.","nullable":true},"customer":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Customer`.","nullable":true},"amountIncludingVat":{"type":"number","nullable":true,"description":"Montant réglé."},"method":{"type":"integer","format":"int64","description":"Mode de règlement. Identifiant d'un élément `PaymentMethod`."},"methodName":{"type":"string"},"status":{"type":"string","enum":["not-paid","paid","failed"],"description":"État du paiement. Valeurs : `paid` (Payé), `not-paid` (Non payé), `failed` (Paiement en échec)."},"paidAt":{"type":"string","format":"date","nullable":true,"description":"Date de paiement."},"cash":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Cash`.","nullable":true},"register":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Register`.","nullable":true},"cashStatus":{"type":"string","enum":["waiting","valid","ignored"]}},"title":"Encaissements","description":"Ce qui a été encaissé, toutes ventes et factures confondues : montant, mode de règlement, état et date de règlement. En lecture seule, un règlement appartenant à la transaction qu'il solde : il se pose par les actions de la vente ou de la facture."},"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":{"/paymentList":{"get":{"operationId":"getPaymentList","tags":["Encaissements"],"summary":"Lister les encaissements","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":"dateFrom","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dateTo","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"method","in":"query","required":false,"description":"Mode de règlement. Identifiant d'un élément `PaymentMethod`.","schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","required":false,"description":"État du paiement. Valeurs : `paid` (Payé), `not-paid` (Non payé), `failed` (Paiement en échec).","schema":{"type":"string","enum":["not-paid","paid","failed"]}},{"name":"source","in":"query","required":false,"schema":{"type":"string","enum":["sale","invoice","wallet","invoicing"]}},{"name":"customer","in":"query","required":false,"description":"Identifiant d'un élément `Customer`.","schema":{"type":"integer","format":"int64"}},{"name":"sale","in":"query","required":false,"description":"Identifiant d'un élément `Sale`.","schema":{"type":"integer","format":"int64"}},{"name":"invoice","in":"query","required":false,"description":"Identifiant d'un élément `Invoice`.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Liste paginée des encaissements.","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/Payment"}}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Consulter un encaissement

> Scope requis : \`commercialisation:read\`. Pour lire plusieurs encaissements, \`GET /paymentList?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":"Encaissements"}],"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":{"Payment":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"source":{"type":"string","enum":["sale","invoice","wallet","invoicing"]},"sale":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Sale`.","nullable":true},"invoice":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Invoice`.","nullable":true},"invoicing":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Invoicing`.","nullable":true},"customer":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Customer`.","nullable":true},"amountIncludingVat":{"type":"number","nullable":true,"description":"Montant réglé."},"method":{"type":"integer","format":"int64","description":"Mode de règlement. Identifiant d'un élément `PaymentMethod`."},"methodName":{"type":"string"},"status":{"type":"string","enum":["not-paid","paid","failed"],"description":"État du paiement. Valeurs : `paid` (Payé), `not-paid` (Non payé), `failed` (Paiement en échec)."},"paidAt":{"type":"string","format":"date","nullable":true,"description":"Date de paiement."},"cash":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Cash`.","nullable":true},"register":{"type":"integer","format":"int64","description":"Identifiant d'un élément `Register`.","nullable":true},"cashStatus":{"type":"string","enum":["waiting","valid","ignored"]}},"title":"Encaissements","description":"Ce qui a été encaissé, toutes ventes et factures confondues : montant, mode de règlement, état et date de règlement. En lecture seule, un règlement appartenant à la transaction qu'il solde : il se pose par les actions de la vente ou de la facture."},"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":{"/payment/{id}":{"get":{"operationId":"getPaymentById","tags":["Encaissements"],"summary":"Consulter un encaissement","description":"Scope requis : `commercialisation:read`. Pour lire plusieurs encaissements, `GET /paymentList?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":"Encaissement demandé.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}}},"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"}}}}}}
```
