> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pulse-sell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Codes promo

> Créer et gérer des codes de réduction par API, et les appliquer au checkout.

Les codes promo sont les mêmes que dans votre tableau de bord, et s'appliquent automatiquement sur la page de paiement.

> [!NOTE]
>
> Permissions : `discounts.read` et `discounts.write`. Référence : [Codes promo](https://docs.pulse-sell.com/api-reference/remises).

## Créer un code

```bash theme={null}
curl -X POST https://api.pulse-sell.com/v1/discounts \
  -H "Authorization: Bearer $PULSESELL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: promo-lance20" \
  -d '{
    "name": "Lancement",
    "code": "LANCE20",
    "type": "percentage",
    "value": 20,
    "max_uses": 100,
    "ends_at": "2026-12-31T23:59:59Z"
  }'
```

| Champ | Règle |
| - | - |
| `code` | 3 à 32 caractères : `A-Z`, `0-9`, `_`, `-` (converti en majuscules). |
| `type` | `percentage` (jusqu'à 100) ou `fixed` (montant dans la devise de la boutique). |
| `value` | Nombre supérieur à 0. |
| `max_uses` | Nombre maximal d'utilisations, ou `null` pour illimité. |
| `starts_at`, `ends_at` | Fenêtre de validité (ISO 8601). `ends_at` doit suivre `starts_at`. |
| `status` | `active` ou `inactive`. |

`used_count` indique combien de fois le code a servi.

## Désactiver plutôt que supprimer

Un code qui a déjà servi ne peut pas être supprimé (`409`) : son historique doit rester cohérent avec vos ventes. Désactivez-le :

```bash theme={null}
curl -X PATCH https://api.pulse-sell.com/v1/discounts/cm1disc001 \
  -H "Authorization: Bearer $PULSESELL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "status": "inactive" }'
```

## Appliquer un code

Passez `discount_code` à [`POST /checkout`](https://docs.pulse-sell.com/guides/checkout) : il est validé immédiatement et appliqué automatiquement sur la page de paiement. Ou partagez l'adresse de paiement d'un produit avec `?promo=LANCE20` : le code est appliqué à l'ouverture de la page.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.