Skip to main content
POST
/
v1
/
coupons
Create coupon API
curl --request POST \
  --url https://api.example.com/v1/coupons
{
  "data": {
    "name": "PARTNERO25",
    "uuid_code": "coupon_123",
    "active": true,
    "coupon_discount_type": "percent",
    "coupon_discount_amount": 25,
    "coupon_duration_type": "months",
    "coupon_duration_value": 11,
    "redemption_specific_date_status": false,
    "redemption_specific_date_value": null,
    "redemption_times_status": true,
    "redemption_times_value": 24,
    "metadata": [],
    "additional_info": [],
    "times_redeemed": 0,
    "created_at": "2025-05-07T17:43:26.000000Z",
    "updated_at": "2025-05-07T17:43:26.000000Z",
    "deleted_at": null
  },
  "status": 1,
  "message": "Coupon created in the app successfully.",
  "synchronization_enabled": false,
  "synchronization_successful": false,
  "synchronization_message": ""
}
Create coupons that can be assigned to partners via promotion codes. When customers use these codes at checkout, sales are attributed to the partner for commission calculation.

Endpoint

POST https://api.partnero.com/v1/coupons

Request Body

ParameterTypeRequiredDescription
namestringNoCustomer-facing name (defaults to uuid_code)
uuid_codestringNoUnique identifier (auto-generated if not provided). Allowed characters: A-Z, a-z, 0-9, -, _. Max 255 characters
coupon_discount_typestringYespercent or static
coupon_discount_amountnumberYesDiscount value (0-100 for percent, or fixed amount)
coupon_duration_typestringYesonce, hours, days, months, years, lifetime
coupon_duration_valueintegerYes*Required for hours, days, months, years
redemption_specific_date_statusbooleanNoEnable expiration date
redemption_specific_date_valuedateYes*Required if redemption_specific_date_status is true
redemption_times_statusbooleanNoEnable redemption limit
redemption_times_valueintegerYes*Required if redemption_times_status is true
promotion_codesarrayNoArray of promotion codes to create alongside the coupon
metadataobjectNoCustom key-value pairs
syncobjectNoOptional object to push the coupon to a connected integration on creation. See Syncing to a payment provider
sync.providerstringNoOne of stripe, shopify, woocommerce, paddle. Must be a provider that is currently connected to the program

Request

cURL
curl --location 'https://api.partnero.com/v1/coupons' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "PARTNERO25",
    "uuid_code": "coupon_123",
    "coupon_discount_type": "percent",
    "coupon_discount_amount": 25,
    "coupon_duration_type": "months",
    "coupon_duration_value": 11,
    "redemption_times_status": true,
    "redemption_times_value": 24
  }'

Syncing to a payment provider

If you pass a sync object with a provider, Partnero will create the coupon in the connected integration.
Provider valueIntegration
stripeStripe
shopifyShopify
woocommerceWooCommerce
paddlePaddle
Omit sync (or send null) if you don’t want the coupon pushed to any third-party system.
cURL
curl --location 'https://api.partnero.com/v1/coupons' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "PARTNERO25",
    "uuid_code": "coupon_123",
    "sync": { "provider": "stripe" },
    "coupon_discount_type": "percent",
    "coupon_discount_amount": 25,
    "coupon_duration_type": "months",
    "coupon_duration_value": 11,
    "redemption_times_status": true,
    "redemption_times_value": 24
  }'
On a successful sync the response includes:
{
  "synchronization_enabled": true,
  "synchronization_successful": true,
  "synchronization_message": "The coupon was successfully created in Stripe."
}
If the requested provider is not connected to the program, the request is rejected with 422 and:
{
  "message": "stripe is not connected for this program.",
  "errors": {
    "sync.provider": ["stripe is not connected for this program."]
  }
}

Response

{
  "data": {
    "name": "PARTNERO25",
    "uuid_code": "coupon_123",
    "active": true,
    "coupon_discount_type": "percent",
    "coupon_discount_amount": 25,
    "coupon_duration_type": "months",
    "coupon_duration_value": 11,
    "redemption_specific_date_status": false,
    "redemption_specific_date_value": null,
    "redemption_times_status": true,
    "redemption_times_value": 24,
    "metadata": [],
    "additional_info": [],
    "times_redeemed": 0,
    "created_at": "2025-05-07T17:43:26.000000Z",
    "updated_at": "2025-05-07T17:43:26.000000Z",
    "deleted_at": null
  },
  "status": 1,
  "message": "Coupon created in the app successfully.",
  "synchronization_enabled": false,
  "synchronization_successful": false,
  "synchronization_message": ""
}
Coupons can be automatically synced to Stripe, Shopify, WooCommerce, or Paddle on creation. See Syncing to a payment provider.