E-Invoicing
The E-Invoicing module in Flowtly enables organizations to send and receive electronic invoices in compliance with regulatory requirements. It integrates with the Polish National e-Invoice System (KSeF) to automate the exchange of structured invoice data between your organization and its counterparties.
Outbound invoices created in Flowtly can be automatically converted to the required XML format and submitted to KSeF. The module tracks submission status, stores confirmation numbers, and flags any validation errors so that issues can be resolved before they affect compliance deadlines.
Inbound invoice synchronization pulls invoices issued to your organization from KSeF directly into Flowtly. Received invoices are matched against existing supplier records and can be routed through approval workflows, reducing manual data entry and the risk of processing errors.
Invoice corrections are fully supported, including both corrective invoices and correction notes. The module maintains a clear audit trail linking original invoices to their corrections, ensuring that your records remain accurate and auditable at all times.
A correction document lists the positions twice: the original lines under before correction, then the corrected lines under after correction, each shown exactly as issued. The difference between the two appears in the totals rather than line by line, because a correction may split one position into two, merge two into one, rename a position or remove it — so a per-position difference is not always a meaningful number. Reading the two sections against each other shows what changed. The PDF and the document filed with KSeF present the same lines in the same order, so the two always agree.
Once a document has been submitted, its PDF comes from KSeF. Downloading the PDF of a submitted invoice or correction fetches the document the authority holds and renders that, so what you hand to an accountant or an inspector is what was actually filed. If Flowtly cannot retrieve it, it tells you which step failed and repeats what the authority said, rather than showing a PDF rebuilt from your own records — a document that looks right but differs from the filing would hide a problem worth knowing about. An invoice that has not been submitted yet still previews from your own records, because there is nothing filed for it to disagree with.
Invoices to consumers. An invoice to a Polish buyer who has no NIP, such as a private person, is submitted to KSeF with the buyer marked as having no tax identifier, so the authority accepts it as an invoice to a consumer. A buyer whose identifier type is NIP but whose NIP is blank, or contains no digits, is not treated as a consumer: the invoice is refused instead of being submitted, so a business invoice never reaches KSeF without the buyer's NIP. Enter the buyer's NIP on the client, or remove the identifier if the buyer is a private person, and submit again.
Payment terms. When an invoice records a payment method but no due date, the submitted document carries the payment method and leaves the payment-term section out, instead of sending an empty due date that KSeF would reject. Add a due date to the invoice if you want a payment term to appear in the filed document.
When reviewing a received invoice, the net and gross amount fields accept negative values, so a corrective invoice that reduces or reverses the original charge can be entered exactly as issued. A negative net amount paired with a matching negative gross amount is accepted as valid and is not flagged as an error. Importing a correction already filed in KSeF. Documents your organization has filed in KSeF can be imported into Flowtly, which is how records are caught up when invoices were filed outside Flowtly. A correction is imported as a correction and linked to the invoice it corrects, so the original's totals are brought up to date rather than left standing. That link is required: when the corrected invoice is not in Flowtly yet, the correction is reported as skipped, together with the reason, rather than arriving as a standalone document that would correct nothing — import the original first, then run the import again. A correction that states a quantity of zero on a line, which is how a price-only or value-only correction is issued, is imported normally.
How an imported invoice arrives. An invoice imported from KSeF arrives as issued and awaiting delivery, not as a draft — it is already filed with the authority, so its content can no longer be changed. Flowtly cannot tell whether it was also sent to the client, so it is not chased for payment until you record it as sent. The same applies when the import finds, already filed in KSeF, an invoice you drafted in Flowtly.
Example use cases
- Submit outbound sales invoices to KSeF automatically upon approval in Flowtly.
- Synchronize inbound purchase invoices from KSeF and route them for internal approval.
- Generate and submit corrective invoices when billing errors are identified.
- Monitor the status of all submitted invoices and resolve XML validation errors promptly.
- Maintain a complete audit trail of all electronic invoice exchanges for regulatory compliance.
App routes
- E-invoicing has no standalone route. Per-invoice actions open from a drawer at
/clients/invoices/:id/e-invoicing; organization-wide e-invoicing configuration lives under Organization settings at/settings/organization/invoicing.