Skip to main content
POST
Scope required: rewards.issue
This endpoint initiates an asynchronous reward issuance job. Rewards are issued to the specified users for a given campaign variant. The endpoint returns immediately with a 202 Accepted response containing the issuance job details. Use the Get Issuance Job endpoint to poll for completion status.

Best Practices for Event-Driven Workflows

While there is nothing preventing you from issuing rewards one user at a time, we strongly recommend batching identifiers into a single request whenever possible. Sending individual requests per user is significantly less efficient and may result in rate limiting under the global rate limits. Collect identifiers and submit them in batches of up to 10,000 per request for optimal throughput.

Idempotency

This endpoint supports idempotent requests via the X-Idempotency-Key header. When provided, duplicate requests with the same key return the cached response from the original request. If the request body differs from the original, a 422 Unprocessable Entity error is returned.

Parameters

string
required
Campaign ID
string
required
Merchant ID
string
required
Variant ID. Must belong to the specified campaign.
array
required
Array of user identifiers to issue rewards to (max 10,000)
string
Optional idempotency key to prevent duplicate issuance jobs.

Response

Returns 202 Accepted with the issuance job object.
string
Issuance job ID
string
Campaign ID
string
Variant ID
string
Job state: pending, processing, completed, or failed
integer
Total number of identifiers submitted
integer
Number of identifiers processed so far
integer
Number of rewards successfully issued
integer
Number of failed issuances
integer
Completion percentage (0-100)
datetime
Job creation timestamp (ISO8601)
datetime
Processing start timestamp (ISO8601), null if not started
datetime
Processing completion timestamp (ISO8601), null if not completed