Skip to main content
POST
Scope required: points.issue
This endpoint initiates an asynchronous bonus points issuance job. The specified number of points is added to each user’s points balance for the merchant’s points experience. 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. Points issued through this endpoint are bonus points: they are added to the user’s balance directly and do not require the user to activate a reward. See the Points guide for how points are earned and redeemed.

Best Practices for Event-Driven Workflows

We 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. Always send an idempotency key when issuing points. Retrying a request without one can credit users more than once.

Parameters

string
required
Merchant ID
integer
required
Number of bonus points to issue to each user. Must be a positive integer.
array
required
Array of user identifiers to issue points to (max 10,000)
string
Optional note describing why the points were issued. Stored with the points transaction for auditing.
string
Optional idempotency key to prevent duplicate issuance jobs.

Response

Returns 202 Accepted with the issuance job object.
string
Issuance job ID
integer
Number of points issued to each user
string
Job state: pending, processing, completed, or failed
integer
Total number of identifiers submitted
integer
Number of identifiers processed so far
integer
Number of users successfully issued points
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