curl -X DELETE "https://api.integrateledger.com/v1/customers?customerId=user_123&deleteInStripe=true" \
-H "Authorization: Bearer $LEDGER_API_KEY"
import ledger from "integrateledger";
const client = new ledger({ apiKey: process.env.LEDGER_API_KEY ?? "" });
const url = new URL("https://api.integrateledger.com/v1/customers");
url.searchParams.set("customerId", "user_123");
url.searchParams.set("deleteInStripe", "true");
const response = await fetch(url, {
method: "DELETE",
headers: { Authorization: `Bearer ${process.env.LEDGER_API_KEY}` },
});
console.log(response.status, await response.json());
import os
from integrateledger import ledger
client = ledger(api_key=os.environ["LEDGER_API_KEY"])
import json
from urllib.parse import urlencode
from urllib.request import Request, urlopen
query = urlencode({"customerId": "user_123", "deleteInStripe": "true"})
request = Request(
f"https://api.integrateledger.com/v1/customers?{query}",
method="DELETE",
headers={"Authorization": f"Bearer {os.environ['LEDGER_API_KEY']}"},
)
with urlopen(request) as response:
print(json.load(response))
{
"customerId": "user_123",
"deleted": true
}
{
"error": "active_paid_subscription"
}
Customers
Delete a customer
Remove a customer and everything Ledger holds for it, optionally with its Stripe customer.
DELETE
/
v1
/
customers
curl -X DELETE "https://api.integrateledger.com/v1/customers?customerId=user_123&deleteInStripe=true" \
-H "Authorization: Bearer $LEDGER_API_KEY"
import ledger from "integrateledger";
const client = new ledger({ apiKey: process.env.LEDGER_API_KEY ?? "" });
const url = new URL("https://api.integrateledger.com/v1/customers");
url.searchParams.set("customerId", "user_123");
url.searchParams.set("deleteInStripe", "true");
const response = await fetch(url, {
method: "DELETE",
headers: { Authorization: `Bearer ${process.env.LEDGER_API_KEY}` },
});
console.log(response.status, await response.json());
import os
from integrateledger import ledger
client = ledger(api_key=os.environ["LEDGER_API_KEY"])
import json
from urllib.parse import urlencode
from urllib.request import Request, urlopen
query = urlencode({"customerId": "user_123", "deleteInStripe": "true"})
request = Request(
f"https://api.integrateledger.com/v1/customers?{query}",
method="DELETE",
headers={"Authorization": f"Bearer {os.environ['LEDGER_API_KEY']}"},
)
with urlopen(request) as response:
print(json.load(response))
{
"customerId": "user_123",
"deleted": true
}
{
"error": "active_paid_subscription"
}
Deletes the customer with its subscriptions, credit grants, usage and purchases. Creating the same
customerId afterwards starts a new, empty customer.
- A customer with a paid subscription that isn’t cancelled returns
409 active_paid_subscription, because deleting only Ledger’s record would leave Stripe charging them. PassdeleteInStripe=trueto delete the Stripe customer too, which cancels its Stripe subscriptions. - Usage events are deleted in Sandbox. In Live they’re kept, as the record of what the customer used.
curl -X DELETE "https://api.integrateledger.com/v1/customers?customerId=user_123&deleteInStripe=true" \
-H "Authorization: Bearer $LEDGER_API_KEY"
import ledger from "integrateledger";
const client = new ledger({ apiKey: process.env.LEDGER_API_KEY ?? "" });
const url = new URL("https://api.integrateledger.com/v1/customers");
url.searchParams.set("customerId", "user_123");
url.searchParams.set("deleteInStripe", "true");
const response = await fetch(url, {
method: "DELETE",
headers: { Authorization: `Bearer ${process.env.LEDGER_API_KEY}` },
});
console.log(response.status, await response.json());
import os
from integrateledger import ledger
client = ledger(api_key=os.environ["LEDGER_API_KEY"])
import json
from urllib.parse import urlencode
from urllib.request import Request, urlopen
query = urlencode({"customerId": "user_123", "deleteInStripe": "true"})
request = Request(
f"https://api.integrateledger.com/v1/customers?{query}",
method="DELETE",
headers={"Authorization": f"Bearer {os.environ['LEDGER_API_KEY']}"},
)
with urlopen(request) as response:
print(json.load(response))
{
"customerId": "user_123",
"deleted": true
}
{
"error": "active_paid_subscription"
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Required string length:
1 - 255Also delete the customer's Stripe customer, which cancels its Stripe subscriptions. Required when it has one that isn't canceled.