Skip to main content
GET
/
partner
/
promotions
/
:id
curl https://api.thanxsandbox.com/partner/promotions/promo_abc123?merchant_id={merchant_id} \
  -X GET \
  -H 'X-ClientId: {client_id}' \
  -H 'Accept-Version: v4.0' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access_token}'
{
  "promotion": {
    "id": "promo_abc123",
    "name": "Summer 20% Off",
    "state": "active",
    "discount_type": "percent",
    "discount_value": "20.0",
    "minimum_spend": "25.0",
    "maximum_discount": "10.0",
    "fine_print": "Limit one per customer",
    "redemption_venue": "online",
    "starts_at": "2026-06-01T00:00:00Z",
    "ends_at": "2026-08-31T23:59:59Z",
    "generation_type": "single_use",
    "redemption_count": 142,
    "total_codes": 10000,
    "code_generation_status": "complete"
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Promotion not found"
  }
}
Scope required: promos.read
This endpoint returns a single active promotion for the merchant. The promotion must belong to the specified merchant and be in the active state, otherwise a 404 Not Found is returned. The fields of the promotion’s active code pool are flattened onto the promotion, including generation_type, redemption_count, and total_codes.

Parameters

id
string
required
Promotion ID
merchant_id
string
required
Merchant ID

Response

id
string
Promotion ID
name
string
Promotion name
state
string
Promotion state (always active)
discount_type
string
Type of discount the promotion applies: percent, item, or amount
discount_value
string
Discount amount, as a string. Null if not set.
minimum_spend
string
Minimum spend required to redeem, as a string. Null if not set.
maximum_discount
string
Maximum discount that can be applied, as a string. Null if not set.
fine_print
string
Terms and conditions
redemption_venue
string
Where the promotion can be redeemed: all, instore, or online
starts_at
datetime
Promotion start timestamp (ISO8601). Null if not set.
ends_at
datetime
Promotion end timestamp (ISO8601). Null if not set.
generation_type
string
How the pool’s codes are generated: multi_use (a shared code redeemable multiple times) or single_use (a batch of one-time codes). Null if the promotion has no code pool.
redemption_count
integer
Number of times codes in the active pool have been redeemed
total_codes
integer
Total number of codes in the active pool
code_generation_status
string
Status of asynchronous code generation for the active pool: none, in_progress, complete, or failed. Poll this field after requesting code generation via Create Promotion or Generate Promotion Codes.
curl https://api.thanxsandbox.com/partner/promotions/promo_abc123?merchant_id={merchant_id} \
  -X GET \
  -H 'X-ClientId: {client_id}' \
  -H 'Accept-Version: v4.0' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access_token}'
{
  "promotion": {
    "id": "promo_abc123",
    "name": "Summer 20% Off",
    "state": "active",
    "discount_type": "percent",
    "discount_value": "20.0",
    "minimum_spend": "25.0",
    "maximum_discount": "10.0",
    "fine_print": "Limit one per customer",
    "redemption_venue": "online",
    "starts_at": "2026-06-01T00:00:00Z",
    "ends_at": "2026-08-31T23:59:59Z",
    "generation_type": "single_use",
    "redemption_count": 142,
    "total_codes": 10000,
    "code_generation_status": "complete"
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Promotion not found"
  }
}