Aller au contenu

Factures refusées

Une facture peut être refusée de deux façons : par une erreur immédiate, ou après son acceptation, quand la DGI ne la normalise pas.

Si l’entreprise n’a aucun point de vente capable de normaliser (aucun actif, pas de jeton, jeton expiré, pas de NIF), l’appel répond 409 aussitôt (NO_ENTITY, ENTITY_INACTIVE, ENTITY_NO_DGI_TOKEN, ENTITY_TOKEN_EXPIRED, BUSINESS_NO_NIF) et n’enregistre rien. Corrigez, puis renvoyez le même appel.

Définitif. reason_code et reason disent pourquoi, avec des mots que vous pouvez montrer à votre client. Elle ne sera jamais normalisée : renvoyez la vente avec une nouvelle clé et une nouvelle référence.

  • Une facture en échec est définitive. Renvoyer sa clé ou sa référence rejoue l’échec. Pour normaliser la vente, renvoyez-la avec une nouvelle clé et une nouvelle external_reference.

Exemple de facture en échec :

{
"id": "inv_2xJ4kQ9nVbT7mLpR3sZa",
"normalisation_status": "failed",
"created_at": "2026-11-05T09:30:00Z",
"external_reference": "VENTE-2026-000124",
"reason_code": "DGI_INVOICE_REJECTED",
"reason": "La DGI a refusé cette facture : ...",
"type": "FV",
"business": { "id": "biz_2xJ4kQ9nVbT7mLpR3sYz", "external_id": "plateforme-cust-001842" }
}

L’ensemble des reason_code est ouvert (les refus propres de la DGI en font partie). Montrez reason, et gardez reason_code pour le support.

reason_code Sens
DGI_NORMALISATION_FAILED Motif (reason_code) d’une facture en échec : la DGI l’a refusée ou n’a pas abouti. Le champ reason est écrit pour que vous le transmettiez.
INVOICE_NOT_NORMALISABLE Motif (reason_code) d’une facture en échec : elle ne pourra jamais être normalisée en l’état. Le champ reason est écrit pour que vous le transmettiez.
DGI_NORMALISATION_INTERRUPTED Motif (reason_code) d’une facture en échec : interrompue avant la confirmation de la DGI. Le champ reason est écrit pour que vous le transmettiez.
INVOICE_IN_NORMALISATION Motif (reason_code) d’une facture en échec : elle était traitée ailleurs à ce moment-là. Le champ reason est écrit pour que vous le transmettiez.
INVOICE_NOT_IN_NORMALISATION Motif (reason_code) d’une facture en échec : elle était traitée ailleurs à ce moment-là. Le champ reason est écrit pour que vous le transmettiez.
REQUEST_NOT_PROCESSED Ce code, en reason_code d’une facture ou comme code d’une erreur, dit que nous n’avons pas pu lui donner de code plus précis : citez meta.request_id.
ORIGINAL_NOT_NORMALISED L’origine n’est pas normalisée et ne le sera pas : aucun avoir ne peut être créé dessus.

Tout le reste que nous n’avons pas listé et qui porte un reason_code sur une facture en échec vient de la DGI ou de la normalisation elle-même ; reason est écrit pour que vous le transmettiez.

Le détail de chaque code est dans le catalogue des erreurs.