Imprimer votre facture
C’est vous qui imprimez la facture, pas nous. Dès que normalisation_status vaut normalised, la réponse contient tout ce qu’une facture légale doit porter. Voici les champs d’impression, en un seul endroit. Ce sont les mêmes sur la lecture d’une facture, sur une page de liste et dans l’événement de règlement.
Identité du document
| Champ | Ce qu’il faut imprimer |
|---|---|
number |
Le numéro de la facture. Texte opaque : imprimez-le tel quel. |
type |
FV vente, FA avoir, EA avoir d’exportation. |
code_def_dgi |
Le code de la DGI (Code DEF). |
qr_code |
Les données à encoder dans le QR code, exactement comme données : RDCDEF01;<NIM>;<signature>;<NIF>;<date-heure>. |
counters |
Les compteurs de la DGI, par exemple 484/601 FV. |
dgi_date_time |
La date et l’heure à imprimer : le texte même de la DGI (« DEF Heure »), par exemple 05/11/2026 09:12:57. Imprimez-le sans le modifier ; ne le reformatez pas, ne le remplacez pas par normalised_at ni par created_at. |
invoice_date |
La date de la facture. |
nid, isf |
Le NID de l’e-MCF et l’ISF (RPA-CLD-01). isf est fixé quand la facture part à la DGI : le 202 et invoice.pending ne l’ont pas. |
external_reference, sale_time |
Les vôtres, restitués comme envoyés. |
Montants
| Champ | Ce que c’est |
|---|---|
currency, exchange_rate, exchange_rate_date |
La devise. Le taux et sa date n’apparaissent que sur une facture en devise étrangère. |
price_mode |
ttc ou ht. |
vat_liable |
false : la facture n’imprime aucune TVA. |
total_ht, total_vat, total_ttc, total_tax_specific |
Les totaux. |
tax_breakdown |
Une ligne par groupe de taxation : group, rate, base_ht, vat_amount, tax_specific_amount, total_ttc. |
payments |
[{ method, amount }]. |
Les montants s’impriment tels que stockés. N’additionnez pas les lignes vous-mêmes et ne recalculez pas la TVA : la DGI calcule au niveau du groupe de taxation, et un total recalculé ligne à ligne peut s’écarter de quelques centimes de ce que la DGI a accepté. Sur un avoir, tous les montants sont négatifs (totaux, ventilation, quantités et totaux des lignes), comme on les imprime sur un avoir.
Les parties
| Champ | Ce que c’est |
|---|---|
issuer |
{ name, nif, rccm, id_nat, pos_name, pos_address, pos_phone, pos_email } : le vendeur tel qu’il a été figé à la normalisation. Imprimez cela, pas les données du jour de l’entreprise. |
client |
{ name, type, nif, phone, address } tel que figé. « Client Comptant » quand aucun client n’a été donné. |
operator_name |
Le caissier, figé. |
Les lignes (lines)
[{ index, code, description, item_type, quantity, unit, unit_price, tax_group, tax_sub_type, tax_rate, tax_specific_value, tax_specific_amount, discount_type, discount_percent, discount_amount, price_modification_label, modified_unit_price, total }]
Vous en avez besoin parce que vous ne pouvez pas les déduire de ce que vous avez envoyé : le groupe qu’a donné un défaut, le taux du jour, le libellé de la remise (price_modification_label, par exemple « Remise 20 % »), le total de la ligne. total est TTC ou HT selon price_mode ; modified_unit_price est le prix unitaire après remise et n’est présent qu’avec une remise. Une page de liste ou un événement contient au plus 100 lignes par facture : au-delà, la facture porte lines_omitted: true et pas de lines, et son propre GET les contient toutes.
Textes : notes, et comment_lines sous la forme [{ line, label, text }] (pour un client AO, la ligne A a pour libellé Réf. Exo. :).
Un avoir porte aussi reference_code (le Code DEF de l’origine) et original_invoice_number (son numéro ; RRR pour une remise sans origine), ainsi que original_invoice_id, reference_type et reference_desc.
ORIGINAL et DUPLICATA. La DGI veut que le premier exemplaire remis au client porte la mention ORIGINAL, et tous les autres DUPLICATA (numérotés). C’est à vous de compter les exemplaires imprimés et d’écrire cette mention : nous ne savons pas combien vous en avez imprimé. Nous ne fournissons aucun PDF, pas même neutre.
Ce qui n’est pas porté, parce que c’est à vous : un logo, une mise en page, un pied de page.
Une facture normalisée, en entier
Section intitulée « Une facture normalisée, en entier »{ "object": "invoice", "data": { "id": "inv_2xJ4kQ9nVbT7mLpR3sYz", "normalisation_status": "normalised", "code_def_dgi": "K7QM-2WXP-9HDT-4NBC-V8RJ-ZE3A", "created_at": "2026-11-05T08:12:41Z", "external_reference": "VENTE-2026-000123", "qr_code": "RDCDEF01;CD01004159-1;MEUCIQ...;A1234567B;20261105091257", "counters": "484/601 FV", "nid": "CD01004159-1", "isf": "RPA-CLD-01", "number": "FV-01-000484", "normalised_at": "2026-11-05T08:12:58Z", "sale_time": "2026-11-05T08:12:00Z", "defaults_applied": ["target", "items[].item_type"], "payment_status": "paye", "type": "FV", "dgi_date_time": "05/11/2026 09:12:57", "invoice_date": "2026-11-05", "currency": "CDF", "price_mode": "ttc", "vat_liable": true, "total_ht": 20000.00, "total_vat": 3200.00, "total_ttc": 23200.00, "total_tax_specific": 0, "tax_breakdown": [ { "group": "B", "rate": 16, "base_ht": 20000.00, "vat_amount": 3200.00, "tax_specific_amount": 0, "total_ttc": 23200.00 } ], "operator_name": "Sarah Kabeya", "issuer": { "name": "Kasongo Distribution SARL", "nif": "A1234567B", "rccm": "CD/KIN/RCCM/24-A-12345", "pos_name": "Caisse principale", "pos_address": "12 avenue du Commerce, Kinshasa", "pos_phone": "+243991234567" }, "client": { "name": "Mbuyi Services SARL", "type": "PM", "nif": "A7654321C", "address": "5 rue de la Paix, Gombe" }, "payments": [ { "method": "ESPECES", "amount": 23200 } ], "notes": "Merci de votre confiance.", "comment_lines": [], "lines": [ { "index": 1, "code": "PAP-A4", "description": "Ramette papier A4", "item_type": "BIE", "quantity": 2, "unit": "pce", "unit_price": 11600, "tax_group": "B", "tax_rate": 16, "total": 23200 } ], "business": { "id": "biz_2xJ4kQ9nVbT7mLpR3sYz", "external_id": "plateforme-cust-001842" } }, "meta": { "request_id": "req_05" }}Le number, le code_def_dgi, le qr_code et la signature ci-dessus sont donnés à titre d’illustration.