Skip to main content
POST
/
partner
/
campaigns
curl https://api.thanxsandbox.com/partner/campaigns \
  -X POST \
  -H 'X-ClientId: {client_id}' \
  -H 'Accept-Version: v4.0' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access_token}' \
  -d '{
    "campaign": {
      "merchant_id": "k2lye10h32l5wzo",
      "name": "Summer Free Coffee",
      "objective": "Re-engage lapsed customers",
      "fine_print": "Limit one per customer",
      "start_at": "2025-06-01T00:00:00Z",
      "end_at": "2025-08-31T23:59:59Z",
      "redeemable_from": "2025-06-01T00:00:00Z",
      "redeemable_to": "2025-09-30T23:59:59Z",
      "variants": [
        {
          "name": "Treatment",
          "reward_template_id": "abc123def456"
        },
        {
          "name": "Control"
        }
      ]
    }
  }'
{
  "campaign": {
    "id": "camp_abc123",
    "name": "Summer Free Coffee",
    "objective": "Re-engage lapsed customers",
    "start_at": "2025-06-01T00:00:00Z",
    "end_at": "2025-08-31T23:59:59Z",
    "redeemable_from": "2025-06-01T00:00:00Z",
    "redeemable_to": "2025-09-30T23:59:59Z",
    "time_zone": "America/Los_Angeles",
    "fine_print": "Limit one per customer",
    "variants": [
      {
        "id": "var_treat1",
        "name": "Treatment",
        "reward_template_id": "abc123def456"
      },
      {
        "id": "var_ctrl1",
        "name": "Control",
        "reward_template_id": null
      }
    ]
  }
}
Scope required: rewards.issue
This endpoint creates a new partner-initiated campaign for a merchant. A campaign defines the time window, terms, and reward variants for issuing rewards to users. Each campaign must have between 1 and 4 variants. Treatment variants specify a reward_template_id that defines the reward to be issued. Control variants (named “Control”) do not require a reward_template_id. Use the List Reward Templates endpoint to discover available reward templates for a merchant.

Parameters

campaign.merchant_id
string
required
Merchant ID
campaign.name
string
required
Campaign name
campaign.objective
string
Campaign objective
campaign.fine_print
string
Terms and conditions
campaign.start_at
string
required
Campaign start date (ISO8601)
campaign.end_at
string
required
Campaign end date (ISO8601)
campaign.redeemable_from
string
required
Reward redemption start date (ISO8601)
campaign.redeemable_to
string
required
Reward redemption end date (ISO8601)
campaign.variants
array
required
Campaign variants (1-4 variants)

Response

Returns 201 Created with the campaign object.
curl https://api.thanxsandbox.com/partner/campaigns \
  -X POST \
  -H 'X-ClientId: {client_id}' \
  -H 'Accept-Version: v4.0' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access_token}' \
  -d '{
    "campaign": {
      "merchant_id": "k2lye10h32l5wzo",
      "name": "Summer Free Coffee",
      "objective": "Re-engage lapsed customers",
      "fine_print": "Limit one per customer",
      "start_at": "2025-06-01T00:00:00Z",
      "end_at": "2025-08-31T23:59:59Z",
      "redeemable_from": "2025-06-01T00:00:00Z",
      "redeemable_to": "2025-09-30T23:59:59Z",
      "variants": [
        {
          "name": "Treatment",
          "reward_template_id": "abc123def456"
        },
        {
          "name": "Control"
        }
      ]
    }
  }'
{
  "campaign": {
    "id": "camp_abc123",
    "name": "Summer Free Coffee",
    "objective": "Re-engage lapsed customers",
    "start_at": "2025-06-01T00:00:00Z",
    "end_at": "2025-08-31T23:59:59Z",
    "redeemable_from": "2025-06-01T00:00:00Z",
    "redeemable_to": "2025-09-30T23:59:59Z",
    "time_zone": "America/Los_Angeles",
    "fine_print": "Limit one per customer",
    "variants": [
      {
        "id": "var_treat1",
        "name": "Treatment",
        "reward_template_id": "abc123def456"
      },
      {
        "id": "var_ctrl1",
        "name": "Control",
        "reward_template_id": null
      }
    ]
  }
}