Skip to main content
POST
/
api
/
v4.0
/
integrations
/
coupons
/
{code}
/
validate
cURL
curl --request POST \
  --url https://api.gameball.co/api/v4.0/integrations/coupons/{code}/validate \
  --header 'Content-Type: application/json' \
  --header 'apikey: <api-key>' \
  --header 'secretkey: <api-key>' \
  --data '
{
  "customerId": "<string>",
  "email": "<string>",
  "mobile": "<string>",
  "lock": true,
  "lockReference": "<string>",
  "lockDuration": 123,
  "merchantId": "<string>",
  "collectionId": "<string>",
  "collectionsIds": [
    "<string>"
  ],
  "totalPurchaseAmount": 123
}
'
{
  "valid": true,
  "coupon": {
    "code": "<string>",
    "type": "shipping",
    "value": 123,
    "usageLimit": 123,
    "limitPerCustomer": 123,
    "startDate": "2023-11-07T05:31:56Z",
    "expiryDate": "2023-11-07T05:31:56Z",
    "capping": 123,
    "minReward": 123,
    "minOrderValue": 123,
    "entitledProductIds": [
      "<string>"
    ],
    "entitledVariantIds": [
      "<string>"
    ],
    "entitledCollectionIds": [
      "<string>"
    ],
    "entitledMerchantIds": [
      "<string>"
    ],
    "combinesWith": {
      "orderDiscounts": true,
      "productDiscounts": true,
      "shippingDiscounts": true
    }
  },
  "lockReference": "<string>",
  "dateToExpire": "2023-11-07T05:31:56Z"
}
This API validates a single coupon identified by {code} and checks its eligibility for use by a customer. It also supports a locking feature, where setting the lock flag to True reserves the coupon by creating a lock reference. This ensures the coupon cannot be used by others during the lock session, preventing conflicts or double usage. By default, the lock flag is False, allowing only validation without reserving the coupon. Alternatively, you can use the coupon code directly when placing an order instead of the hold reference. For more details, refer to the Order API.
Channel Merging Available
If your system uses different customer IDs across multiple channels (e.g., online and offline), Gameball’s channel merging feature helps unify customer profiles. By including the customer’s mobile number or email (based on your merging configuration) with each request, Gameball will combine activities into a single profile.
For more information, head to the Channel Merging Guide.
Security: Requires apikey and secretkey headers.

Authorizations

apikey
string
header
required
secretkey
string
header
required

Path Parameters

code
string
required

The coupon code you want to validate.

Body

application/json
customerId
string
required

Unique identifier for the customer that you can reference across the customer's whole lifetime. Could be a database ID, random string, email or anything that uniquely identifies the customer.

email
string

Customer's email address. Required if your account uses email-based channel merging.

mobile
string

Customer's mobile number. Required if your account uses mobile-based channel merging.

lock
boolean

Indicates whether the request is intended to validate the coupon or to lock it for a future redemption.

lockReference
string

Required only if the lock flag is set to True and you need to validate and lock a new or updated list of coupons within an existing lock session.

lockDuration
integer

Represents the number of minutes for which a coupon will be locked if the lock flag is set to True.

merchantId
string

This parameter is required only if the coupon is designed to apply to specific merchants.

collectionId
string

This parameter is required only if the coupon is configured to apply to specific collections.

collectionsIds
string[]

This parameter is required only when the coupon is configured to apply to specific collections.

totalPurchaseAmount
number

This parameter represents the total value of the purchase where the coupon will be applied.

Response

200 - application/json

Coupon validated successfully

valid
boolean

Indicates whether the coupon is valid to be used by the customer or not.

coupon
object
lockReference
string

The unique reference code associated with the coupon lock session.

dateToExpire
string<date-time>

The exact date and time when the coupon lock will expire.