How to correct issued invoices with credit notes
In this tutorial, you will:
Billing mistakes happen, and when they do, they need to be addressed correctly. Depending on the nature of the error, different types of financial documents can be issued to correct an invoice. These are credit notes, debit notes, and corrective invoices.
Let’s walk through how each of these works:
At Invopop, we generally recommend issuing a credit note if you need to cancel, refund, or adjust a validated invoice. They’re the most widely accepted and straightforward method for making corrections.
A credit note is a document issued by the supplier to the buyer to indicate the intent to credit a specified amount. This doesn’t modify the original invoice but adjusts the total amount due. Credit notes are typically issued when there’s an error in the invoice, when goods are returned or services are rejected, or when the goods delivered are damaged.
A debit note is a document issued by the supplier to request additional funds related to a previously issued invoice (e.g., to account for omitted shipping costs).
For example, suppose a supplier sends an invoice to the buyer for a total of €400, and later realizes they forgot to include an additional €50. To correct this, the supplier could issue a debit note, linked to the original invoice, for the missing $50 to inform the buyer of the outstanding amount.
Now, you might wonder: Why not just issue a new invoice for €50?
Well, they could, and that’s exactly what we recommend at Invopop. While debit notes are a valid financial document, they’re not commonly used in practice.
It’s worth noting that some sources describe a debit note as a document issued by the buyer to the supplier. However, GOBL does not support this interpretation. In GOBL, documents from buyer to supplier fall under order management workflows.
Some local regulations require a corrective invoice (also known as a rectifying invoice), when certain key details on an invoice need to be changed.
A corrective invoice is a new document that references and replaces the original one. It’s typically used when there are significant errors in fields such as the buyer’s name, tax ID, or invoice date, and it fully replaces the original invoice for legal and accounting purposes.
Countries that support corrective invoices include Spain and Poland.
It’s worth noting that not all countries support corrective invoices, and in some countries where the tax regime does, such as Spain, GOBL may attempt to map credit and debit notes into the appropriate corrective format.
Before we dive in, let’s quickly recap where we are.
If you’ve completed the Quickstart tutorial, you should now have a processed invoice in your workspace.
Let’s say there was a mistake in the invoice and we need to fix it. Once an invoice has been issued, it shouldn’t be edited. Instead, we issue a credit note to make the correction.
There are two ways to do this:
Let’s walk through both.
The invoice must be issued before a correction can be made.
CN
).credit-note
from the dropdown.This will generate the credit note based on the original invoice.
You’ll be redirected to the invoice detail view.
You’ve just created your first credit note! You can click on Preview to see how it’d look like in a PDF format.
The invoice must be issued before a correction can be made.
CN
).credit-note
from the dropdown.This will generate the credit note based on the original invoice.
You’ll be redirected to the invoice detail view.
You’ve just created your first credit note! You can click on Preview to see how it’d look like in a PDF format.
There are two ways to submit a credit note using the API:
Let’s walk through each method:
This method gives you full control over the credit note. You define everything, from line items and taxes to the original invoice reference. It’s perfect if you already have the credit note prepared, whether you built it manually or generated it somewhere else. Just upload it directly to Invopop and you’re good to go.
Use the Create an Entry API endpoint with a request body that wraps your credit note in the required structure:
$schema
field so that it points to https://gobl.org/draft-0/bill/credit-note.type
field accordingly ("credit-note"
instead of "standard"
).Your request body should look something like this:
Here’s a complete example based on the PDF invoice we used earlier. Notice how it differs from the previous invoice example: the type is set to "credit_note"
, a preceding block is included to reference the original invoice, and the $schema points to the credit note schema.
If everything goes well, you’ll get a 200 OK
response along with the JSON for your newly registered credit note.
Sending a complete credit note to Invopop is pretty straightforward, as long as you already have the full document ready to go.
That said, building one from scratch can be complex, not just because of the structure, but because certain regimes require very specific references to the original invoice. For example, in Colombia, you need to include the original CUFE code, and in Verifactu, the credit note must reproduce a detailed breakdown of the original taxes. That’s why it helps to have the system handle this automatically when possible.
That’s where Invopop really shines. Instead of defining everything yourself, you can simply reference the invoice you want to correct. Just pass the Silo Entry ID and the type of correction, and Invopop will take care of the rest.
Use the Create an Entry API endpoint, but this time, skip the data
field. Instead, you’ll send a request body that tells Invopop to generate the credit note for you:
previous_id
should point to the Silo Entry ID of the original invoice.correct.type
should be "credit-note"
to indicate the correction type.If everything goes well, you’ll get a 200 OK
response along with the JSON for your newly registered credit note.