Overview
Credit notes are used to reduce or cancel an invoice that has already been issued. Common scenarios include:- Partial or full refunds - Customer returns goods or cancels services
- Invoice corrections - Price errors, wrong quantities, or incorrect amounts
- Discounts after invoicing - Retroactive discounts or price adjustments
- Cancellations - Voiding an incorrect invoice
Workflow
Creating and sending a credit note follows the same workflow as invoices:- Validate your JSON credit note data (required)
- Create the credit note document
- Send via Peppol
Basic Credit Note
Here’s a simple credit note that refunds a full invoice:Step 1: Validate the Credit Note
Key Differences from Invoices
Use the
purchase_order field to reference the original invoice number. This creates a clear audit trail linking the credit note to the original invoice.Step 2: Create the Credit Note
Once validation passes, create the document:Step 3: Send via Peppol
Partial Credit Notes
To credit only part of an invoice, adjust the quantities or prices:Price Correction Credit Notes
To correct a pricing error, credit the difference:Credit Note with Multiple Line Items
Credit notes can include multiple line items:Credit Notes with Allowances
You can include allowances (discounts) on credit notes:- Line items: €1,000.00
- Allowance: -€100.00
- Subtotal: €900.00
- VAT (21%): €189.00
- Total credit: €1,089.00
Payment Terms
Credit notes can include payment details if you’re issuing a refund:Complete Example
Here’s a complete Node.js example for creating and sending a credit note:Best Practices
Always Reference the Original Invoice
Always Reference the Original Invoice
Use the This maintains a clear audit trail and helps customers match credits to invoices.
purchase_order field to link to the original invoice:Include Clear Descriptions
Include Clear Descriptions
Use the Also use descriptive line item descriptions:
note field to explain why the credit note is being issued:Match the Original Invoice Structure
Match the Original Invoice Structure
If crediting specific line items from the original invoice, use the same descriptions for consistency:
Validate Tax Rates
Validate Tax Rates
Ensure tax rates on the credit note match the original invoice, even if tax rates have changed since then. The credit note should use the rates from the original transaction date.
Check for Negative Amounts
Check for Negative Amounts
Credit note amounts should be positive values, not negative. The system interprets the entire credit note as a reduction:❌ Wrong:✓ Correct:
Document State Tracking
Document State Tracking
Track credit notes the same way as invoices:
Documents in
DRAFT- Created but not sentTRANSIT- Being transmittedSENT- Successfully deliveredFAILED- Transmission failedRECEIVED- Received from another party

TRANSIT use automatic retry with exponential backoff (10 attempts with delays: 1, 2, 4, 8, 16, 32, 64, 128, 256, and 360 minutes) before transitioning to FAILED.If a document reaches FAILED state, you can retry by calling POST /api/documents/{document_id}/send again.Use webhooks to monitor delivery status.Common Use Cases
1. Full Invoice Cancellation
2. Product Returns
3. Price Adjustments
4. Service Cancellation
Troubleshooting
Credit Note Rejected
Error:purchase_order is required for credit notes
Solution: Always include the purchase_order field with the original invoice number to create a clear audit trail.
Amount Mismatch Concerns
Question: “My credit note total is higher than the original invoice” Solution: This can be valid if you’re crediting the invoice amount plus adding a goodwill gesture or covering return shipping costs. Ensure your accounting system can handle this scenario.Customer Didn’t Receive Credit Note
Check:- Verify the customer’s Peppol ID is correct
- Check document state:
GET /api/documents/{document_id} - Review transmission report:
GET /api/documents/{document_id}/transmission-report - Check webhook notifications for delivery status
Next Steps
Advanced Invoicing
Learn about allowances and charges
Creating Invoices
Review invoice creation guide
Webhooks
Monitor credit note delivery
API Reference
Explore all endpoints