Skip to content
innovorder
⌘K

Commercial rules

Coupons

System map · Coupon evaluation
Cart
Coupon
Discounted total
⚠️

Platform Limitation

Couponing features currently only function on Web Ordering channels and via the Create Order API. Coupons configured here will not be applicable or recognized on POS or Kiosk devices at this time.

Manage promotional codes for your brand. Coupons can be configured with specific validity dates, usage limits, consumption mode restrictions, and discount types.

List Coupons

Retrieve all promotional codes configured for your brand or specific restaurants.

GET/promocodesList All Coupons

Returns a list of all active and inactive coupons.

Response

json
{
  "status": 200,
  "code": "promocode_succeed",
  "message": "Le promocode a été récupéré.",
  "data": [
    {
      "promocodeId": 29,
      "code": "SALUT",
      "reductionType": "absolute",
      "restaurantName": "Sushi shop courcelle",
      "reductionValue": 500,
      "isActive": true,
      "startDate": "2017-07-01T16:46:11.000Z",
      "endDate": "2017-08-03T22:00:00.000Z",
      "isActivatedOnDelivery": true,
      "isActivatedOnSitIn": false,
      "isActivatedOnTakeAway": false,
      "consumptionFlags": 1,
      "nonCumulative": false,
      "used": 0
    },
    {
      "promocodeId": 32,
      "code": "FIDELITE2017",
      "reductionType": "percentage",
      "restaurantName": "Sushi shop courcelle",
      "reductionValue": 1500,
      "isActive": true,
      "startDate": "2017-07-02T17:08:28.000Z",
      "endDate": "2017-07-30T22:00:00.000Z",
      "isActivatedOnDelivery": true,
      "isActivatedOnSitIn": false,
      "isActivatedOnTakeAway": false,
      "consumptionFlags": 1,
      "nonCumulative": false,
      "used": 0
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"promocode_succeed"Machine-readable application code for the result.
messagestring"Le promocode a été récupéré."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].promocodeIdinteger29Identifier of the associated promocode.
data[].codestring"SALUT"Machine-readable application code for the result.
data[].reductionTypestring"absolute"The reduction type value.
data[].restaurantNamestring"Sushi shop courcelle"The restaurant name value.
data[].reductionValueinteger500The reduction value value.
data[].isActivebooleantrueWhether this resource is active.
data[].startDatestring"2017-07-01T16:46:11.000Z"Date or timestamp for start.
data[].endDatestring"2017-08-03T22:00:00.000Z"Date or timestamp for end.
data[].isActivatedOnDeliverybooleantrueWhether activated on delivery is enabled or applies.
data[].isActivatedOnSitInbooleanfalseWhether activated on sit in is enabled or applies.
data[].isActivatedOnTakeAwaybooleanfalseWhether activated on take away is enabled or applies.
data[].consumptionFlagsinteger1The consumption flags value.
data[].nonCumulativebooleanfalseThe non cumulative value.
data[].usedinteger0The used value.

Create Coupon

Create a new promotional campaign.

POST/promocodesCreate Coupon

Request Body

json
{
  "brandId": 22,
  "code": "TEST",
  "reductionType": "absolute",
  "reductionValue": "200",
  "quantity": 100,
  "minimumAmount": "200",
  "startDate": "2025-12-07T23:00:00.000Z",
  "endDate": "2025-12-08T22:59:59.059Z",
  "consumptionFlags": 15,
  "restaurantIds": [
    195
  ],
  "noLimit": true,
  "isUnique": true,
  "nonCumulative": true
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
brandIdinteger22Identifier of the brand.
codestring"TEST"Machine-readable application code for the result.
reductionTypestring"absolute"The reduction type value.
reductionValuestring"200"The reduction value value.
quantityinteger100The quantity value.
minimumAmountstring"200"The minimum amount value.
startDatestring"2025-12-07T23:00:00.000Z"Date or timestamp for start.
endDatestring"2025-12-08T22:59:59.059Z"Date or timestamp for end.
consumptionFlagsinteger15The consumption flags value.
restaurantIdsarray[…]List of restaurant ids entries.
restaurantIds[]integer195The restaurant ids value.
noLimitbooleantrueThe no limit value.
isUniquebooleantrueWhether unique is enabled or applies.
nonCumulativebooleantrueThe non cumulative value.

Response

json
{
  "status": 201,
  "code": "promocode_created_succeed",
  "message": "Le promocode a été créé.",
  "data": [
    {
      "promocodeId": 351693,
      "code": "TEST",
      "isActive": true,
      "reductionType": "absolute",
      "reductionValue": 200,
      "minimumAmount": 200,
      "startDate": "2025-12-07T23:00:00.000Z",
      "endDate": null,
      "consumptionFlags": 15,
      "isUnique": true,
      "nonCumulative": true,
      "created_at": "2025-12-08T17:23:45.000Z"
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger201HTTP status code returned by the API.
codestring"promocode_created_succeed"Machine-readable application code for the result.
messagestring"Le promocode a été créé."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].promocodeIdinteger351693Identifier of the associated promocode.
data[].codestring"TEST"Machine-readable application code for the result.
data[].isActivebooleantrueWhether this resource is active.
data[].reductionTypestring"absolute"The reduction type value.
data[].reductionValueinteger200The reduction value value.
data[].minimumAmountinteger200The minimum amount value.
data[].startDatestring"2025-12-07T23:00:00.000Z"Date or timestamp for start.
data[].endDatenullnullDate or timestamp for end.
data[].consumptionFlagsinteger15The consumption flags value.
data[].isUniquebooleantrueWhether unique is enabled or applies.
data[].nonCumulativebooleantrueThe non cumulative value.
data[].created_atstring"2025-12-08T17:23:45.000Z"Timestamp when this resource was created.

Field Reference

FieldTypeDescription
brandIdIntegerThe unique identifier of the brand owning the coupon.
codeStringThe alphanumeric code entered by the user (e.g., "SUMMER2025").
reductionTypeEnumabsolute for fixed amount discount, percentage for relative discount.
reductionValueIntegerValue of the discount. If absolute: value in cents (e.g., 500 = 5.00). If percentage: basis points (e.g., 1500 = 15%).
minimumAmountIntegerMinimum cart total (in cents) required to apply the coupon.
quantityIntegerGlobal limit of usages for this campaign.
noLimitBooleanIf true, ignores the quantity limit.
startDate / endDateISO DateValidity window for the coupon.
consumptionFlagsInteger (Bitmask)1 = Delivery, 2 = Takeaway, 4 = Sit-in. Sum to combine (e.g., 15 = all).
isUniqueBooleanIf true, the code is a single-issue identifier.
nonCumulativeBooleanIf true, cannot be combined with other discounts.
restaurantIdsArray<Integer>List of restaurant IDs where this coupon is valid.

Update Coupon

Modify an existing coupon's properties, such as extending the end date or changing the quantity.

PUT/promocodes/{promocodeId}Update Coupon

Parameters

NameTypeRequiredDescription
promocodeIdintegerYesID of the coupon to update.

Request Body

json
{
  "promocodeId": 29,
  "code": "SALUT",
  "reductionValue": 500,
  "isActive": true,
  "startDate": "2017-06-30T22:00:00.000Z",
  "endDate": "2017-08-04T21:59:59.059Z",
  "quantity": 100,
  "minimumAmount": 1000,
  "consumptionFlags": 1,
  "noLimit": false
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
promocodeIdinteger29Identifier of the associated promocode.
codestring"SALUT"Machine-readable application code for the result.
reductionValueinteger500The reduction value value.
isActivebooleantrueWhether this resource is active.
startDatestring"2017-06-30T22:00:00.000Z"Date or timestamp for start.
endDatestring"2017-08-04T21:59:59.059Z"Date or timestamp for end.
quantityinteger100The quantity value.
minimumAmountinteger1000The minimum amount value.
consumptionFlagsinteger1The consumption flags value.
noLimitbooleanfalseThe no limit value.

Response

json
{
  "status": 200,
  "code": "promocode_updated_succeed",
  "message": "Le promocode a été mis à jour.",
  "data": {
    "promocodeId": 29,
    "code": "SALUT",
    "isActive": true,
    "updated_at": "..."
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"promocode_updated_succeed"Machine-readable application code for the result.
messagestring"Le promocode a été mis à jour."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.promocodeIdinteger29Identifier of the associated promocode.
data.codestring"SALUT"Machine-readable application code for the result.
data.isActivebooleantrueWhether this resource is active.
data.updated_atstring"..."Timestamp when this resource was last updated.

Delete Coupon

Permanently remove a coupon. This action cannot be undone.

DELETE/promocodes/{promocodeId}Delete Coupon

Parameters

NameTypeRequiredDescription
promocodeIdintegerYesID of the coupon to delete.

Response

json
{
  "status": 200,
  "code": "promocode_deleted_succeed",
  "message": "Le promocode a été détruit."
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"promocode_deleted_succeed"Machine-readable application code for the result.
messagestring"Le promocode a été détruit."Human-readable result message. Do not use this value for program logic.