credit_note_already_issued
The same route against an invoice that already carries a credit note in the credit_notes mirror. The route is a re-attempt, not an issuer - the invoice.finalized webhook handler is the issuer - and Stripe permits credit notes summing to the invoice total, so an unguarded second press is representable at Stripe and would over-credit. What an operator does: nothing; the comp landed. Read the credit note on the tenant's commercial summary. If the amount is wrong that is an arrangement question and not a second credit note. P1 - built 2026-08-19 (billing_admin.py:1466 on the local mirror and :1484 on the gateway re-read; credit_notes shipped as migration 0077).
Problem shape
Every non-2xx response is an RFC 9457 application/problem+json body. The type URI below is stable and machine-matchable, so branch on the final path segment (the code) and treat the status as redundant confirmation. See the error-handling guide.
{
"type": "https://docs.vocapable.com/errors/credit_note_already_issued",
"title": "…",
"status": 409,
"detail": "…",
"instance": "/v1/…"
}