invoice_not_open_for_out_of_band_payment
billing.invoice.mark_paid_out_of_band invoked against an invoice that is not open - draft, void, uncollectible, or already paid. What an operator does: read the invoice's current status. A draft has not finalized and cannot be paid; a void invoice is terminal and Stripe's own reference says voiding cannot be undone; an already-paid invoice needs no record. If the intent was to reverse a mis-recorded payment, that is an unapply and not a second payment. P2, unbuilt.
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/invoice_not_open_for_out_of_band_payment",
"title": "…",
"status": 409,
"detail": "…",
"instance": "/v1/…"
}