---
title: "Bulk-generate coupons for a cart rule"
method: POST
path: "/marketing/cart-rules/{cartRuleId}/coupons/generate"
tags: ["Admin Marketing: Promotions"]
---

# Bulk-generate coupons for a cart rule

`POST /marketing/cart-rules/{cartRuleId}/coupons/generate`

## Request

- Base URL: `http://localhost:8000/api/admin`
- URL: `http://localhost:8000/api/admin/marketing/cart-rules/{cartRuleId}/coupons/generate`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bagisto/apis/bagisto-admin-api/docs/marketing/cart-rules/:cartRuleId/coupons/generate/post.ts> (a function with typed inputs; its response is checked against the schema)

Generates `coupon_qty` random codes of the given format and length, optionally with prefix/suffix. Inherits usage_limit/usage_per_customer/expired_at from the parent cart rule.

## Path parameters

- `cartRuleId` integer, required

## Request body

- object
  - `length` integer, required
  - `format` 'alphabetic' | 'alphanumeric' | 'numeric', required
  - `prefix` string, nullable
  - `suffix` string, nullable
  - `coupon_qty` integer, required

## Response `201`

Coupons generated.

## Other responses

- `400`: Invalid input
- `404`: Parent cart rule not found.
- `422`: Validation failed (invalid length, format, or coupon_qty).

---

[API](https://skmtc.dev/bagisto/apis/bagisto-admin-api.md) - [All operations](https://skmtc.dev/bagisto/apis/bagisto-admin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bagisto/apis/bagisto-admin-api/revisions/3198f11be70f?raw)
