Aller au contenu

Émettre un avoir (facture rectificative NF203, CGI art. 289) sur une facture émise

POST
/v1/invoices/{invoiceId}/credit-note
curl --request POST \
--url https://example.com/v1/invoices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/credit-note \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "reason": "Erreur de tarif — nuitée surfacturée", "lineIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }'

Émet une facture RECTIFICATIVE (série AV dédiée, numérotation NF203 gapless) qui annule ou rectifie tout ou partie d’une facture ÉMISE (invoiceId). lineIds omis ⟹ avoir TOTAL (miroir exact de toutes les lignes source). lineIds fourni (non vide) ⟹ avoir PARTIEL sur un sous-ensemble de LIGNES ENTIÈRES de la source (aucune re-ventilation TVA, aucun re-arrondi). Une ligne source déjà couverte par un avoir actif ne peut être créditée deux fois (409 ALREADY_CREDITED). Idempotency-Key obligatoire (anti-double-émission).

invoiceId
required
string format: uuid
Media type application/json
object
reason
required
string
>= 1 characters <= 1000 characters
Example
Erreur de tarif — nuitée surfacturée
lineIds

Sous-ensemble de lignes ENTIÈRES de la facture source à créditer. Omis ⟹ avoir TOTAL.

Array<string>
nullable

Avoir émis — numéro NF203 (série AV) attribué

Media type application/json
object
data
required
object
creditNoteId
required
string format: uuid
creditNoteNumber
required
string
Example
{
"data": {
"creditNoteNumber": "AV-2026-0000001"
}
}

Corps ou paramètres invalides

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Non authentifié

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Permission refusée ou périmètre non vérifiable

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Ressource introuvable

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Conflit d’état ou stock épuisé

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Entité non traitable (données cohérentes mais règle métier violée)

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}