GET/tenants/{tenantId}/transactions/burn-rate

Returns the active redemption burn rate for the tenant — how many points are required per rand of discount. Use this to display "10 points = R1 discount" in your checkout UI or loyalty programme landing page.

Read-only — never writes to the database. Returns{ "pointsPerRand": null, "campaignId": null } when no active redemption campaign exists, rather than a 404.

Path Parameters

tenantIdstring uuid
required
Your tenant UUID.

Query Parameters

campaignIdstring uuid
optional
Return the burn rate for a specific campaign's redemption rule. Omit to use the active default.

Response 200

pointsPerRandnumber | null
required
Points required to earn R1 of discount. null when no active redemption campaign exists.
campaignIdstring uuid | null
required
UUID of the campaign driving the burn rate. null when no active redemption campaign exists.

How to use it

Display the earn rate

Show "10 points = R1 discount" — fetch burn-rate once at app start and cache it. Changes rarely.

Calculate a discount preview

discountRand = pointsRequested / pointsPerRand Use redeem-quote for the precise figure (accounts for constraints).

Disable redemption UI

If pointsPerRand is null, hide the "redeem points" option at checkout — there's no active redemption campaign.

Related endpoints

POST /transactions/redeem-quote — calculate exact discount →POST /transactions/redeem — burn points at checkout →

Request

cURL
curl "https://loyalty-engine-production-e5cb.up.railway.app/v1/tenants/$TENANT_ID/transactions/burn-rate" \
  -H "X-API-Key: sk_test_YOUR_KEY"

Response — active campaign

200 OK
{
  "pointsPerRand": 10,
  "campaignId":    "5a7b3c9d-1e2f-3a4b-5c6d-7e8f9a0b1c2d"
}

Response — no active campaign

200 OK
{
  "pointsPerRand": null,
  "campaignId":    null
}
Burn Rate — API Reference