Paddle Billing
Search

Cancel an invoice

Cancel an invoice if you created it in error. Canceled invoices remain on your system for record-keeping purposes.

If you've created an invoice in error, you can cancel it to say that it's no longer needed.

How it works

Invoices work using manually-collected transactions. These are transactions where the collection_mode is set to manual, which means that Paddle sends an invoice that customers must pay themselves by bank transfer or using Paddle Checkout.

You can change the status of a manually-collected transaction to canceled to mark it as canceled. When you cancel an invoice:

  • It's no longer due, so customers don't need to pay it
  • Links to pay the invoice using Paddle Checkout no longer work
  • It doesn't count as revenue for your reports
  • You can't uncancel it, or make any other changes to it

You can cancel manually-collected transactions that are billed (issued invoices) or ready. If a transaction is completed, meaning a customer has paid an invoice, you can create an adjustment to refund all or part of it instead.

Credit an invoice

You might be able to correct some errors on an issued invoice by creating a credit rather than canceling it.

For example, if you create and issue an invoice then want to remove an item, you can create an adjustment for the item you want to remove. Paddle automatically applies the credit to the issued invoice, so the amount the customer owes is reduced.

When you credit the full value of a transaction, it's marked as completed. It's no longer due.

Cancel an invoice

Update the status of a manually-collected transaction to canceled to cancel an invoice.

Build request

In your request body, include status and set to canceled. You don't need to include any other information.

Send request

Send a PATCH request to the /transactions/{transaction_id} endpoint, passing the Paddle ID of the transaction entity that you want to cancel.

Transactions must be manually collected and billed or ready to cancel them. You can get transactions that match by using the list transactions operation, passing collection_mode=manual and status=billed,ready

Response

If successful, Paddle responds with a copy of the updated transaction entity. The transaction status is canceled.

Cancel related subscription

Paddle automatically creates a subscription when you mark a manually-collected transaction as billed.

When you cancel an invoice, its related subscription isn't automatically canceled. This means the subscription remains active, so a customer may still have access to your app. Paddle reinvoices for the subscription on renewal.

Cancel using the Paddle dashboard or API

Use the Paddle dashboard or API to cancel the related subscription after you have canceled the transaction.

Build a workflow using webhooks

You can build a workflow to programmatically cancel subscriptions using webhooks:

  1. Subscribe to transaction canceled events

    Create or update a notification destination, then subscribe to transaction.canceled events.

  2. Check that the transaction is manually collected and for a subscription

    In the data payload for received events, check that collection_mode is manual and that subscription_id isn't null. This means the transaction is an issued invoice related to a subscription.

  3. Extract subscription ID, then cancel

    Extract subscription_id from the data payload, then use the cancel a subscription operation to cancel.

Common errors

transaction_invalid_status_changeTransaction isn't billed or ready.
transaction_immutableTransaction is completed. Create an adjustment instead.

Events

transaction.canceledOccurs when a transaction is canceled.

Related pages