> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/cloud/payments/discounts/editor.md).

# Add or edit a discount

Add or edit a discount — not in Cloud today; do it at your payment provider.

**Where:** Payments → Discounts → **Add New** / a discount · `/projects/<project>/payments/discounts/new` — not available today

{% hint style="warning" %}
Cloud has no Discounts screen yet, and Norbix has no discount endpoints, so the SDK, the CLI and the API cannot do it either. The V2 code for this screen exists, but its routes are switched off (*restore when backend support returns*); the address `/projects/<project>/payments/discounts` opens the **404** page. Create coupons and promotion codes at your provider (for example **Stripe Dashboard → Product catalog → Coupons**).
{% endhint %}

## Before you start

* A [connected integration](/codemash/cloud/payments/integrations/providers.md), so Norbix hears about the discounts you create at the provider.

## Steps

1. Open your provider's dashboard and create or change the discount there. Create coupons and promotion codes at your provider (for example **Stripe Dashboard → Product catalog → Coupons**).
2. In Norbix, [create a payment trigger](/codemash/cloud/payments/triggers/new.md) for the provider events you care about.

## Result

The discount exists only at your provider. Norbix does not store it; it sees it when the provider sends an event that names it (its id is in the `@Model.Payment.ExternalIds.*` tokens of the trigger).

## Change or remove it later

* Change or remove the discount at your provider — see [Delete a discount](/codemash/cloud/payments/discounts/delete.md).

## Do it from code

There is no discount call. What Norbix can do today is react when your provider reports a change, with a [payment trigger](/codemash/cloud/payments/triggers/new.md) on events such as `checkout.session.completed`, `invoice.paid` (Stripe), `transaction.completed` (Paddle), `order_created` (Lemon Squeezy). List the events Norbix received:

```ts
const { list } = await norbix.hub.payments.getPaymentsWebhookLog({ limit: 20 });
for (const call of list) console.log(call.receivedOn, call.eventName, call.statusCode, call.description);
```

```sh
norbix hub payments webhook log get --limit 5
```

The client setup is on the [Payments page](/codemash/cloud/payments.md#use-it-from-code). API: [Get Payments Webhook Log](/codemash/api-reference/payments/webhooks/get-payments-webhook-log.md)
