Skip to main content
POST
Create Promotion

Authorizations

Authorization
string
header
required

Bearer API key for server-to-server access. Session auth is also supported in first-party UI flows.

Body

application/json
name
string
required
Maximum string length: 200
discountType
enum<string>
required
Available options:
percentage,
fixed_amount
discountValue
number
required

Discount amount or percentage. Use 0 for gift/sample-only and free Buy-X-Get-Y mechanics.

Required range: x >= 0
targetStores
object[]
required

Connected stores as { marketplace, country, storeId }. Copy from existing promotion targetStores or product marketplaceDetails.

Required array length: 1 - 100 elements
organizationId
string

Required for session auth across multiple organizations. Optional for OAuth/API keys bound to one organization.

Maximum string length: 120
description
string | null
Maximum string length: 2000
kind
enum<string>
Available options:
product_discount,
flash_sale,
voucher,
gift_with_purchase,
buy_x_get_y,
bundle_deal,
free_shipping,
early_bird_price
status
enum<string>
default:active

Defaults to active. Future start dates display as scheduled. Use draft to save without activation; explicit inactive lifecycle states are preserved.

Available options:
draft,
scheduled,
active,
paused,
ended,
archived
startsAt
string<date-time> | null
endsAt
string<date-time> | null
minSalePrice
number | null
Required range: x >= 0
maxDiscountAmount
number | null
Required range: x >= 0
minSpend
number | null

Lazada voucher minimum spend. Defaults to 1 when unset.

Required range: x >= 0
totalUsageLimit
integer | null

Total redemption/order limit, or per-SKU promotional quantity for flash sales.

Required range: x >= 1
mechanicConfig
object
storeDiscounts
object[]

Patch discount overrides by exact target store key. Other stores retain their terms. Null discountValue restores shared terms for that store.

Maximum array length: 100

Response

Promotion created.

promotion
object
required