Corrections (KOR)
A Stripe credit note is filed to KSeF as an FA(3) correction invoice of type KOR, referencing the original's KSeF number.
How it works
- You issue a credit note in Stripe against an invoice.
- We receive the webhook and create a correction linked to the original invoice. If the original hasn't been ingested yet (Stripe delivers events out of order), we return a non-2xx response so Stripe retries — the correction is never lost.
- We map the credit note to an FA(3) KOR. Amounts are negative (it's a reduction). In the correction section we cite the corrected invoice's reference: its KSeF number, number, and issue date — taken from the original's accepted
Submission. - We file it to KSeF exactly like an invoice — the correction has its own attempts (
Submission). - Write-back of the correction's KSeF number onto the credit note: into
metadata(machine-readable) andmemo(human-visible). Credit notes have nofooterorcustom_fields, so we usememo.
Requirement
A correction must reference the original's KSeF number. So the original invoice must be accepted by KSeF first — only then does it have a KSeF number to cite.
Chargebacks & refunds — not the same thing
A KOR documents a change to the sale (a reduced price, a return, a cancellation) — under art. 29a of the VAT Act. A chargeback is a payment dispute at the card/bank level; on its own it does not change the sale, so it is not automatically a KOR. We never auto-file a correction off a Stripe dispute event — a KOR follows only from a credit note you issue, which is a deliberate accounting decision. What's correct depends on the cause:
- You refund / accept the return (the sale really is reduced or undone) → issue a credit note in Stripe → we file a KOR. This is the normal path above.
- The sale stands but the payment was clawed back (e.g. card fraud, an unjustified dispute) → the invoice remains valid and you do not issue a KOR — the supply still happened. The VAT you already reported stays due. An unrecovered amount may later qualify for bad-debt relief ("ulga na złe długi", art. 89a) — a separate mechanism with its own statutory waiting period, not a correction. That path is on our roadmap, advisor-gated; today it is handled outside the app.
When in doubt, decide why the money went back before issuing anything: a genuine reduction of the sale is a credit note (→ KOR); a payment failure on a valid sale is not.
See also How filing works.