This page explains the concepts. To turn it on step by step, follow the credit-notes setup guide.
When to Issue Credit Notes
Credit notes represent refunds or credits issued to customers. They can be:- Invoice adjustments (incorrect charges)
- Refunds (returned payments)
- Credits (goodwill, service issues)
Create a Credit Note
Refund Reasons
Apply to Invoice
Credit notes can offset future invoices:Apply to Future Invoices
When a credit note has remaining balance, it can be applied to the customer’s next invoice automatically:auto_apply: true, Recurso deducts the credit note balance from the customer’s next invoice. If the credit exceeds the invoice total, the remaining balance carries forward.
Issue Refund
Process an actual refund to the payment method:Credit Note Lifecycle
Refund Lifecycle
Refund credit notes additionally track the gateway refund inrefund_status:
Automatic settlement via gateway webhooks
Pending refunds no longer sit atpending forever. When the gateway settles a refund asynchronously, Recurso consumes its webhooks and advances the credit note automatically:
- Stripe:
charge.refunded/refund.updated/refund.failed - Razorpay:
refund.processed/refund.failed
pending credit notes move; every other state is a no-op, so re-delivered or late gateway webhooks cannot flip a settled refund. The credit note is looked up by the stored gateway refund ID.
Mandate payments are refundable
Invoices collected via mandate auto-debit (UPI Autopay, cards on file) now capture the real gateway payment ID when the payment-captured webhook arrives, so their credit notes can be refunded through the normal flow instead of landing inmanual_required.
List Credit Notes
Retrieve credit notes with filters:Filter Parameters
Credit Note Balance Tracking
Each credit note tracks how much has been used and how much remains:Void a Credit Note
Cancel a credit note that was issued in error. Only credit notes with no applications or refunds can be voided:Get Credit Note PDF
Statutory tax breakdown (GST-grade CDN)
Credit notes record their tax breakdown at creation and the document renders it — taxable value (with HSN), and the GST components that apply (IGST inter-state, CGST + SGST intra-state). For Indian tenants this makes the document a statutory-grade credit note (CDN) the buyer can use to reverse input tax:- an invoice-linked credit (refund or adjustment) slices the invoice’s tax proportionally — the same math the GSTR-1 CDNR report uses, so the document and the return always agree
- a downgrade credit carries the proration tax actually reversed
- a standalone goodwill credit reverses no supply and stays gross-only
subtotal,
tax_amount, igst_amount, cgst_amount, sgst_amount, tax_type,
hsn_code — zero/empty when no breakdown was recorded), and the dashboard’s
detail view mirrors them.
Customer notifications
The customer is emailed automatically when a credit note goes live:- a refund note sends “your refund is on its way” (with the 5–10 business-day banking note)
- an account credit note explains it will be applied automatically to upcoming invoices
Credit expiry
An adjustment credit can carry an optionalexpires_at. When that date passes
with balance still remaining, a background sweep writes the unused balance off
and moves the credit to status expired, posting the reversal of the original
issuance to the ledger:
- DR Customer Credit (2300) — the liability we no longer owe
- CR Credits & Adjustments (5100) — reverses the original grant expense
expires_at when issuing the credit; omit it for a credit that never
expires:
Expiry applies only to spendable adjustment credits — a refund carries no
balance to lapse. Once
expired, a credit is unspendable and its balance is 0.Customer credit statement
To see a customer’s running account credit — the spendable balance, every grant, and the invoice draw-down history — call the credit-statement endpoint:balances (spendable, per currency), grants (every credit note),
applications (the draw-down trail), and a per-currency summary. The spendable
balance equals what the billing engine can actually apply, and reconciles to the
Customer Credit (2300) ledger account. See
Customer credit statement for the
full schema.
Watching credit-note activity
There are nocredit_note.* webhook event types. Credit-note activity is
visible on the credit note itself (status, balance), in the
Events feed, and in the invoice’s applied
credits — poll or read on demand rather than subscribing.