POST /customers/{customer-id}/delete
Deletes a specified customer.
This operation schedules the customer resource for deletion, and it is permanently deleted after a few minutes.
If you wish to retain the customer data but stop further subscription renewals, consider canceling or pausing the subscriptions instead.
Prerequisites & Constraints
- The customer must not be part of an account hierarchy (neither a parent nor a child).
- The customer record must not have any linked gift subscriptions (neither gifter nor recipient).
- None of the customer's invoices may be paid by a different customer.
- None of the customer's credit notes may be allocated to an invoice that belongs to a different customer.
Impacts
Subscriptions
- All the subscriptions belonging to the customer are deleted.
- See Delete a subscription API for more details on the impacts of deleting a subscription.
Invoices
- All the invoices belonging to the customer are deleted.
- See Delete an invoice API for more details on the impacts of deleting an invoice.
Credit notes
- All the credit notes belonging to the customer are deleted.
Payment sources
The payment sources linked to the customer are deleted and also removed from the payment gateway. To retain payment gateway records, pass delete_payment_method = false.
Reports
- The numbers in the following reports are modified when a customer is deleted: Payments, New Revenue, Signups, Activations, Cancellations, and Refunds.
Implementation Notes
Before deleting a customer, ensure the following:
- Check and remove account hierarchy linkage:
- Use the Get hierarchy API to check if the customer is part of an account hierarchy.
- If the customer is part of an account hierarchy, use the Unlink a customer from its parent account API to remove the customer from the hierarchy.
- Remove any payments by other customers:
- Use the List invoices API to retrieve all the invoices for this customer.
- For each invoice, look up all the linked payments (
invoice.linked_payments[]). - For each linked payment, check if the payer (
transaction.customer_id) is this customer. - If not, use the Remove payment from an invoice API to remove the payment from the invoice.
- Remove credit note allocations to other customers:
- Use the List credit notes API to retrieve all the credit notes for this customer.
- For each credit note, look up all the invoice allocations (
credit_note.allocations.invoice_id). - For all such invoices, check if the associated customer (
invoice.customer_id) is this customer. - If not, use the Remove credit note from an invoice API to remove the allocation.
- Remove credit note allocations from other customers:
- Use the List invoices API to retrieve all the invoices for this customer.
- For each invoice, look up all the applied credit notes (
credit_note.applied_credits.cn_id). - For all such credit notes, check if the associated customer (
credit_note.customer_id) is this customer. - If not, use the Remove credit note from an invoice API to remove the credit note allocation.
Servers
- {protocol}://{site}.{environment}:{port}/api/v2
- {protocol}://{site}-test.{environment}:{port}/api/v2
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
customer-id |
String | Yes |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
chargebee-request-origin-device |
String | No |
The device from which the customer has made the request |
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/x-www-form-urlencoded" |
chargebee-event-webhook |
String | No |
skip only webhooks Valid values:
|
chargebee-business-entity-id |
String | No |
If the site has multiple business entities, you can use this custom HTTP header to specify the business entity for which Chargebee should perform the operation. |
chargebee-event-actions |
String | No |
skip all actions to be done on the events Valid values:
|
chargebee-request-origin-user |
String | No |
The email address of your customer/user. Use this when the email address has only ASCII characters. |
chargebee-request-origin-ip |
String | No |
The IP address of the customer where the request originated |
chargebee-request-origin-user-encoded |
String | No |
The Base64-encoded email address of your customer/user. Use this if the email address has UTF-8 characters. When this header is provided, the header chargebee-request-origin-user is ignored. |
chargebee-event-email |
String | No |
skip only emails Valid values:
|
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
delete_payment_method |
Boolean | No |
Deletes the Payment Method from the gateway/vault. Default value: true |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.