405 method not allowed when voiding a credit note

Last updated: July 10, 2026

A 405 Method Not Allowed response from PUT /api/v1/credit_notes/{lago_id}/void does not mean the HTTP method is wrong, PUT is correct. It's the status Lago returns when you try to void a credit note that's already voided, and it comes with the error code no_voidable_amount.

How to confirm the cause

Retrieve the credit note with GET /api/v1/credit_notes/{invoice_id} and check its status field. If it's already voided, the 405 confirms the credit note was previously voided, either by an earlier call, through the dashboard, or by an automated process. Common causes include a retry loop calling the endpoint a second time after the first call succeeded, or a webhook handler voiding a credit note that another process already voided.

How to resolve the issue

Check the credit note's current status before calling the void endpoint, and only call it if the status is available:

response = lago_client.credit_notes.find(credit_note_id)
if response.credit_note.status == "available":
    lago_client.credit_notes.void(credit_note_id)

If the status is already voided, no further action is needed, the credit note has already been voided successfully.


This article reflects guidance drawn from customer case resolutions. It is not officially supported documentation and may not apply to all situations.