Skip to content

Stripe: Delete a customer discount — customers delete Customers Customer Discount

Stripe customers.deleteCustomersCustomerDiscount: arguments, response, policy and SDK examples.

← Customers operations · Get started

Operation stripe.deletecustomerscustomerdiscount

Provider route: DELETE /v1/customers/{customer}/discount. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/stripe with npm, or alter-sdk-stripe with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { StripeIntegration } from "@alter-ai/stripe";
async function execute(input: Parameters<StripeIntegration["customers"]["deleteCustomersCustomerDiscount"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new StripeIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.customers.deleteCustomersCustomerDiscount(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_stripe import StripeIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = StripeIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.customers.delete_customers_customer_discount(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.customerstringRequired within parentMaximum length: 5000

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Delete a subscription discount — response body

Referenced models: Delete a subscription discount — response body

702 more schemas are linked from the tables above, on the schema pages.

Delete a subscription discount — response body
FieldTypePresenceDescription and constraints
$objectRoot
checkout_sessionJSONOptional
checkout_session (anyOf 1)stringAlternativeThe Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Not present for subscription mode.
Maximum length: 5000
checkout_session (anyOf 2)nullAlternative
customerJSONOptional
customer (anyOf 1)JSONAlternativeThe ID of the customer associated with this discount.
customer (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
customer (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a customer — response body
customer (anyOf 1) (anyOf 3)ModelAlternativeExpand Delete a customer — response body
customer (anyOf 2)nullAlternative
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeThe ID of the account representing the customer associated with this discount.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
deletedbooleanRequired within parentAlways true for a deleted object
Known values: True
idstringRequired within parentThe ID of the discount object. Discounts can't be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array.
Maximum length: 5000
invoiceJSONOptional
invoice (anyOf 1)stringAlternativeThe invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.
Maximum length: 5000
invoice (anyOf 2)nullAlternative
invoice_itemJSONOptional
invoice_item (anyOf 1)stringAlternativeThe invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.
Maximum length: 5000
invoice_item (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: discount
promotion_codeJSONOptional
promotion_code (anyOf 1)JSONAlternativeThe promotion code applied to create this discount.
promotion_code (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
promotion_code (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a promotion code — response body
promotion_code (anyOf 2)nullAlternative
sourceModelRequired within parentExpand Get Customers Customer Discount — response body — source
startJSONRequired within parent
start (anyOf 1)integerAlternativeDate that the coupon was applied.
Format: unix-time
start (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
subscriptionJSONOptional
subscription (anyOf 1)stringAlternativeThe subscription that this coupon is applied to, if it is applied to a particular subscription.
Maximum length: 5000
subscription (anyOf 2)nullAlternative
subscription_itemJSONOptional
subscription_item (anyOf 1)stringAlternativeThe subscription item that this coupon is applied to, if it is applied to a particular subscription item.
Maximum length: 5000
subscription_item (anyOf 2)nullAlternative

Referenced models: Create a customer — response body, Delete a customer — response body, Get Customers Customer Discount — response body — source, Create a promotion code — response body

Delete a customer — response body
FieldTypePresenceDescription and constraints
$objectRoot
deletedbooleanRequired within parentAlways true for a deleted object
Known values: True
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: customer
Get Customers Customer Discount — response body — source
FieldTypePresenceDescription and constraints
$objectRoot
couponJSONOptional
coupon (anyOf 1)JSONAlternativeThe coupon that was redeemed to create this discount.
coupon (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
coupon (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a coupon — response body
coupon (anyOf 2)nullAlternative
typestringRequired within parentThe source type of the discount.
Known values: coupon

Referenced models: Create a coupon — response body

Create a Location — response body — address
FieldTypePresenceDescription and constraints
$objectRoot
cityJSONOptional
city (anyOf 1)stringAlternativeCity, district, suburb, town, or village.
Maximum length: 5000
city (anyOf 2)nullAlternative
countryJSONOptional
country (anyOf 1)stringAlternativeTwo-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
Maximum length: 5000
country (anyOf 2)nullAlternative
line1JSONOptional
line1 (anyOf 1)stringAlternativeAddress line 1, such as the street, PO Box, or company name.
Maximum length: 5000
line1 (anyOf 2)nullAlternative
line2JSONOptional
line2 (anyOf 1)stringAlternativeAddress line 2, such as the apartment, suite, unit, or building.
Maximum length: 5000
line2 (anyOf 2)nullAlternative
postal_codeJSONOptional
postal_code (anyOf 1)stringAlternativeZIP or postal code.
Maximum length: 5000
postal_code (anyOf 2)nullAlternative
stateJSONOptional
state (anyOf 1)stringAlternativeState, county, province, or region ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)).
Maximum length: 5000
state (anyOf 2)nullAlternative
Retrieve a cash balance — response body
FieldTypePresenceDescription and constraints
$objectRootA customer's `Cash balance` represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account.
availableJSONOptional
available (anyOf 1)objectAlternativeA hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal).
Additional keys: see wildcard field
available (anyOf 1).*JSONAdditional keys
available (anyOf 1).* (anyOf 1)integerAlternative
available (anyOf 1).* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
available (anyOf 2)nullAlternative
customerstringRequired within parentThe ID of the customer whose cash balance this object represents.
Maximum length: 5000
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeThe ID of an Account representing a customer whose cash balance this object represents.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: cash_balance
settingsModelRequired within parentExpand Retrieve a cash balance — response body — settings

Referenced models: Retrieve a cash balance — response body — settings

Create a promotion code — response body — promotion
FieldTypePresenceDescription and constraints
$objectRoot
couponJSONOptional
coupon (anyOf 1)JSONAlternativeIf promotion `type` is `coupon`, the coupon for this promotion.
coupon (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
coupon (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a coupon — response body
coupon (anyOf 2)nullAlternative
typestringRequired within parentThe type of promotion.
Known values: coupon

Referenced models: Create a coupon — response body

Create a Payment Method — response body — zip
FieldTypePresenceDescription and constraints
$objectRoot

SDK function policy ID: stripe.deletecustomerscustomerdiscount. Catalog operation: DeleteCustomersCustomerDiscount. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Pinned headers: {"Stripe-Version": "2026-09-30.endive"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.