Credit Notes — Production Guide
Licensing
- Catalog slug:
credit-notes - Category: Billing (
billing) - Free Marketplace opt-in (not auto-installed)
- Catalog flags:
is_default_included = false,is_billable = false, price0,sort_order = 30 - Hard dependency on Invoices — declares a required
module_dependenciesrow oninvoices; Marketplace blocks installing Credit Notes on a workspace that doesn't already have Invoices entitled
Bootstrap
On new workspace create:
installDefaultModules()installs publishedis_default_includedmodules only (Credit Notes is never auto-installed)- Operators must enable Invoices before Credit Notes becomes installable from Marketplace
- Tenant permissions include
credit-notes.*viaconfig/tenant-permissions.php/ default role maps
Permissions rollout
New Credit Notes permissions for existing workspaces ship as an additive data migration using TenantPermissionSynchronizer::grantMissingDefaultRolePermissions([...]) (see database/migrations/2026_07_31_222005_add_credit_notes_permissions.php). Do not re-seed roles.
Monitoring
- Platform audit events:
customer_credit_note_created,customer_credit_note_updated,customer_credit_note_deleted,customer_credit_note_assigned,customer_credit_note_status_changed,customer_credit_note_note_added,customer_credit_note_applied,customer_credit_note_refunded - Notifications: assignment via
CustomerCreditNoteAssignedNotification - Issuing/applying/refunding/voiding a credit note updates the linked
CustomerInvoicebalance synchronously in the same request — no queued job to monitor
Deploy checklist
- Migrate tables (
customer_credit_notes,customer_credit_note_lines,customer_credit_note_notes,customer_credit_note_activities) - Register the
credit-notescatalog module via migration (DefaultModuleRegistrar) as free Billing opt-in — notdb:seed - Run the
module_dependenciesmigration that linkscredit-notes→invoices(required) - Run credit notes permissions migrations so default roles receive missing
credit-notes.*grants (includingcredit-notes.refund) - Confirm catalog version 1.2.0 (
…_bump_credit_notes_module_version_to_1_2_0) - Confirm
module:credit-notes+credit-notes.*permissions on target roles - Deploy Frontend SPA with Credit Notes nav (Billing sidebar group, after Payments) — verify a workspace without Invoices installed cannot install Credit Notes from Marketplace
- Verify apply → refund correctly adjusts
amount_credited/balance_due(and voids the apply journal when Accounting is entitled) in a staging smoke test before rollout