You invoice with Falco, your accounting lives in Horus, and you run your business in Dolibarr. The result: when a customer pays an invoice, the information lives in Horus… while your Dolibarr keeps showing the invoice as unpaid. So you re-enter every payment by hand — slow and error-prone.
Good news: this reconciliation can be automated. Here is how, and which pitfalls to know about.
Falco or Horus: where do the payments actually live?
First thing to clarify, because everything depends on it: Falco and Horus are made by the same company (Horus Software), but they are two different APIs.
- The Falco API is about e-invoicing: sending and receiving invoices over the Peppol network. It exposes an invoice's delivery status, not its payment.
- The Horus API sits on the accounting side: it knows the payment status, the date of the last payment and the amount collected.
In other words: to sync payments, the API to query is Horus. (To push your Dolibarr invoices to Peppol, that would be the Falco API — a different topic.)
What the Horus API provides, invoice by invoice
For open sales invoices, Horus returns everything Dolibarr needs:
- Payment status: not paid / partially paid / paid;
- Date of the last payment — the real collection date;
- Total amount and open balance → the paid amount follows (total − balance);
- the linked payments (so partial payments are quantified);
- the invoice number and the structured communication, used as the matching key.
How to bring this into Dolibarr cleanly
Three principles for a reliable sync:
1. Match without mistakes
Every Horus payment must be attached to the right Dolibarr invoice — through the invoice number or the structured communication. This is the step that prevents booking a payment on the wrong document.
2. Validate before writing
A payment is an accounting entry: better a validation screen that shows "here are the payments to record" and lets you tick, than a blind automatic write.
3. Stay idempotent (zero duplicates)
The amount to record must be computed as "paid in Horus − already paid in Dolibarr", capped at the remaining due. That way, running the sync ten times never records the same payment twice.
The Qwimo module “Paiements Falco & Horus”
It does all of this for you: OAuth2 connection to the Horus folder, reconciliation screen, idempotent payment writing (real amount and date). Installs in custom/, without modifying the Dolibarr core.
Frequently asked questions
Do I need the Falco or the Horus API for payments?
Does the module create duplicate payments?
What Horus access is required?
Also read: the Recupel eco-contribution on your Dolibarr invoices and the VAT difference on supplier orders.