KSeF Kit

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

  1. You issue a credit note in Stripe against an invoice.
  2. 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.
  3. 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.
  4. We file it to KSeF exactly like an invoice — the correction has its own attempts (Submission).
  5. Write-back of the correction's KSeF number onto the credit note: into metadata (machine-readable) and memo (human-visible). Credit notes have no footer or custom_fields, so we use memo.

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.