---
title: "Delete an applied coupon"
method: DELETE
path: "/customers/{external_customer_id}/applied_coupons/{applied_coupon_id}"
tags: ["coupons", "customers"]
---

# Delete an applied coupon

`DELETE /customers/{external_customer_id}/applied_coupons/{applied_coupon_id}`

## Request

- Base URL: `https://api.getlago.com/api/v1`
- URL: `https://api.getlago.com/api/v1/customers/{external_customer_id}/applied_coupons/{applied_coupon_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/getlago/apis/lago-api-documentation/docs/customers/:external_customer_id/applied_coupons/:applied_coupon_id/delete.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint is used to delete a specific coupon that has been applied to a customer.

## Path parameters

- `external_customer_id` string, required
- `applied_coupon_id` string, uuid, required

## Response `200`

Successful response

- AppliedCoupon
  - `applied_coupon` AppliedCouponObject, required
    - `lago_id` string, uuid, required: Unique identifier of the applied coupon, created by Lago.
    - `lago_coupon_id` string, uuid, required: Unique identifier of the coupon, created by Lago.
    - `coupon_code` string, required: Unique code used to identify the coupon.
    - `coupon_name` string, required: The name of the coupon.
    - `coupon_description` string, nullable: The description of the parent coupon.
    - `coupon_status` 'active' | 'terminated', required: The status of the parent coupon. Can be either `active` or `terminated`.
    - `coupon_deleted_at` string, date-time, nullable: The date and time when the parent coupon was deleted. If null, the coupon still exists. It is expressed in UTC format according to the ISO 8601 datetime standard.
    - `lago_customer_id` string, uuid, required: Unique identifier of the customer, created by Lago.
    - `external_customer_id` string, required: The customer external unique identifier (provided by your own application)
    - `status` 'active' | 'terminated', required: The status of the coupon. Can be either `active` or `terminated`.
    - `amount_cents` integer, nullable: The amount of the coupon in cents. It is set for a coupon with the `fixed_amount` type.
    - `amount_cents_remaining` integer, nullable: The remaining amount in cents for a `fixed_amount` coupon with a frequency set to `once`. This field indicates the remaining balance or value that can still be utilized from the coupon.
    - `amount_currency` 'null' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', nullable
    - `percentage_rate` string, nullable: The percentage rate of the coupon. It is set for a coupon with the `percentage` type.
    - `frequency` 'once' | 'recurring' | 'forever', required: The type of frequency for the coupon. It can have three possible values: `once`, `recurring` or `forever`. - If set to `once`, the coupon is applicable only for a single use. - If set to `recurring`, the coupon can be used multiple times for recurring billing periods. - If set to `forever`, the coupon has unlimited usage and can be applied indefinitely.
    - `frequency_duration` integer, nullable: The number of billing periods to which the coupon applies. It is set when the frequency is `recurring`.
    - `frequency_duration_remaining` integer, nullable: The remaining number of billing periods to which the coupon is applicable. This field determines the remaining usage or availability of the coupon based on the remaining billing periods.
    - `expiration_at` string, date-time, nullable: The date and time after which the coupon will stop applying to customer's invoices. Once the expiration date is reached, the coupon will no longer be applicable, and any further invoices generated for the customer will not include the coupon discount. This value comes from the parent coupon.
    - `created_at` string, date-time, required: The date and time when the coupon was assigned to a customer. It is expressed in UTC format according to the ISO 8601 datetime standard.
    - `terminated_at` string, date-time, nullable: This field indicates the specific moment when the coupon amount is fully utilized or when the coupon is removed from the customer's coupon list. It is expressed in UTC format according to the ISO 8601 datetime standard.

## Other responses

- `401`: Unauthorized error
- `404`: Not Found error

## Changes

- **2026-10-16** `fce1879654d8`: 2 warning, 2 info
  - added the new `SYP` enum value to the `applied_coupon/amount_currency` response property for the response status `200`
  - added the new `TND` enum value to the `applied_coupon/amount_currency` response property for the response status `200`
  - added the optional property `applied_coupon/coupon_description` to the response with the `200` status
  - the response property `applied_coupon/coupon_status` became required for the status `200`
- **2026-05-20** `24e860ade740`: 2 info
  - added the optional property `applied_coupon/coupon_deleted_at` to the response with the `200` status
  - added the optional property `applied_coupon/coupon_status` to the response with the `200` status
- **2025-04-25** `86ccaf2d7c61`: 1 warning
  - added the new `undefined` enum value to the `applied_coupon/amount_currency` response property for the response status `200`
- **2024-12-09** `d7f5a2be797e`: 2 breaking, 137 warning, 1 info
  - the response property `applied_coupon/amount_currency` became nullable for the status `200`
  - the `applied_coupon/amount_currency` response's property type changed from no type to `string` for status `200`
  - added the new `AED` enum value to the `applied_coupon/amount_currency` response property for the response status `200`
  - added the new `AFN` enum value to the `applied_coupon/amount_currency` response property for the response status `200`
  - …136 more

[Operation history](https://skmtc.dev/getlago/apis/lago-api-documentation/changes/customers/:external_customer_id/applied_coupons/:applied_coupon_id/delete.md)

---

[API](https://skmtc.dev/getlago/apis/lago-api-documentation.md) - [All operations](https://skmtc.dev/getlago/apis/lago-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/getlago/apis/lago-api-documentation/revisions/29aef7967e61?raw)
