Appearance
Paiements
Ces endpoints permettent à un logiciel externe (comptabilité, banque, outil de recouvrement…) d'enregistrer, modifier ou supprimer les paiements reçus sur les factures d'une structure d'accueil.
Toutes les URIs ci-dessous sont relatives à https://abcreche.com/api/v1.
{crecheUuid}: uuid de la structure d'accueil (voir/me).{invoiceUuid}: uuid de la facture (voir Factures).{paymentUuid}: uuid du paiement.
Headers
| Header | Valeur |
|---|---|
Authorization | Bearer {token} |
Accept | application/json |
Content-Type | application/json |
Mise à jour automatique de la facture
Après chaque création, modification ou suppression de paiement, ABCreche recalcule automatiquement la facture : paid_total, status (impayé, partiellement payé, payé, payé avec surplus) et paid_at. Vous n'avez rien d'autre à envoyer.
Chaque opération est aussi enregistrée dans l'historique de la facture (activities du détail d'une facture).
Enregistrer un paiement
Request
- HTTP Method:
POST - URI:
/{crecheUuid}/invoices/{invoiceUuid}/payments
Body
| Property | Type | Required | Description |
|---|---|---|---|
amount | Integer | true | Montant du paiement, en centimes (4000 = 40,00 €). Un montant négatif enregistre un remboursement. |
payment_date | Date YYYY-MM-DD | true | Date à laquelle le paiement a été reçu. |
communication | String | false | Communication du virement (ex. : la communication structurée de la facture). |
note | String | false | Note libre, visible par le gestionnaire dans ABCreche. |
Exemple
http
POST /9928c211-abd9-4902-8db3-d3e8d2b89b0a/invoices/b1e4c9a2-6f1d-4c1b-9a77-3f0e2d5c8a10/paymentsjson
{
"amount": 4000,
"payment_date": "2026-10-01",
"communication": "+++123/4567/89012+++",
"note": "Virement reçu via MonERP"
}Response
Code 201. Le paiement créé :
json
{
"uuid": "212809b6-5f5f-4d53-b7df-c704acbbe993",
"amount": 4000,
"communication": "+++123/4567/89012+++",
"note": "Virement reçu via MonERP",
"payment_date": "2026-09-30T22:00:00.000000Z",
"invoice_id": 224,
"creche_id": 1194,
"registration_id": 20801,
"created_at": "2026-10-28T09:22:20.000000Z",
"updated_at": "2026-10-28T09:22:20.000000Z",
"invoice": { "...": "..." }
}Conservez l'uuid du paiement : il est nécessaire pour le modifier ou le supprimer.
Champs de la réponse
La réponse contient aussi des champs techniques internes (id, invoice_id, creche_id, registration_id) et un objet invoice au format interne. Ne vous basez que sur uuid, amount, communication, note et payment_date. Pour connaître l'état à jour de la facture, appelez le détail de la facture.
Lister les paiements
Paiements d'une facture
Les paiements sont inclus dans chaque facture (propriété payments) de la liste et du détail des factures. C'est la manière recommandée de les consulter.
Il existe aussi un endpoint dédié :
- HTTP Method:
GET - URI:
/{crecheUuid}/invoices/{invoiceUuid}/payments
Il retourne directement un tableau de paiements (sans enveloppe data) :
json
[
{
"uuid": "212809b6-5f5f-4d53-b7df-c704acbbe993",
"amount": 4000,
"communication": "+++123/4567/89012+++",
"note": null,
"payment_date": "2026-09-30T22:00:00.000000Z",
"billable_month": null,
"created_at": "2026-10-28T09:22:20.000000Z",
"updated_at": "2026-10-28T09:22:20.000000Z",
"...": "..."
}
]Tous les paiements de la structure
- HTTP Method:
GET - URI:
/{crecheUuid}/invoices-payments
Retourne tous les paiements de la structure d'accueil, du plus récent au plus ancien, paginés par 20, chacun avec sa facture (invoice) et l'inscription de l'enfant (registration).
| Property | Type | Required | Description |
|---|---|---|---|
page | Integer | false | Numéro de page. |
registration_uuid | UUID | false | Uniquement les paiements d'une inscription (un enfant). |
json
{
"data": [
{
"uuid": "212809b6-5f5f-4d53-b7df-c704acbbe993",
"invoice": { "uuid": "b1e4c9a2-6f1d-4c1b-9a77-3f0e2d5c8a10", "reference": "2026-000123", "...": "..." },
"registration": { "uuid": "4a1f0c3e-2b7d-4e8a-9c55-1d2e3f4a5b6c", "...": "..." },
"amount": 4000,
"communication": "+++123/4567/89012+++",
"note": null,
"payment_date": "2026-09-30T22:00:00.000000Z",
"created_at": "2026-10-28T09:22:20.000000Z",
"updated_at": "2026-10-28T09:22:20.000000Z"
}
],
"links": { "...": "..." },
"meta": { "...": "..." }
}Modifier un paiement
Request
- HTTP Method:
PUT - URI:
/{crecheUuid}/invoices/{invoiceUuid}/payments/{paymentUuid}
Body
Mêmes champs que pour l'enregistrement. amount et payment_date sont obligatoires à chaque modification, même s'ils ne changent pas.
json
{
"amount": 5000,
"payment_date": "2026-10-02",
"communication": "+++123/4567/89012+++"
}Déplacer un paiement vers une autre facture
Pour réaffecter un paiement enregistré sur la mauvaise facture, ajoutez invoice_uuid (uuid de la facture de destination, dans la même structure d'accueil). Dans ce cas, seul le déplacement est effectué : les autres champs envoyés ne sont pas modifiés.
json
{
"amount": 5000,
"payment_date": "2026-10-02",
"invoice_uuid": "c7d8e9f0-1a2b-4c3d-8e9f-0a1b2c3d4e5f"
}Response
json
{
"success": true
}Supprimer un paiement
- HTTP Method:
DELETE - URI:
/{crecheUuid}/invoices/{invoiceUuid}/payments/{paymentUuid}
json
{
"success": true
}Règles importantes
Format de payment_date
À l'envoi, payment_date est une date YYYY-MM-DD.
Dans les réponses, elle est retournée en horodatage UTC : un paiement du 2026-10-01 est retourné 2026-09-30T22:00:00.000000Z (minuit à Bruxelles). Convertissez-la dans le fuseau Europe/Brussels avant d'en extraire la date, sinon vous obtiendrez la veille.
Pas de détection de doublon
Chaque appel à POST crée un nouveau paiement, même si un paiement identique existe déjà. En cas d'erreur réseau ou de nouvel essai :
- Relisez la facture et ses
payments. - Vérifiez si le paiement a déjà été enregistré (même montant, même date, même communication).
- Ne renvoyez le
POSTque s'il est absent.
Gestion des erreurs
| Code | Signification | Action recommandée |
|---|---|---|
401 | Token absent, invalide ou expiré. | Se ré-authentifier via /authenticate. |
403 | La facture ou le paiement n'appartient pas à cette structure d'accueil. | Vérifier les UUIDs utilisés. |
404 | Facture ou paiement introuvable. | Vérifier les UUIDs utilisés. |
422 | Données invalides (ex. : amount ou payment_date manquant, date au mauvais format). | Corriger le payload selon les erreurs retournées. |
Exemple d'erreur 422 :
json
{
"message": "The amount field is required. (and 1 more error)",
"errors": {
"amount": ["The amount field is required."],
"payment_date": ["The payment date field is required."]
}
}