The StickyTier API runs loyalty, tiers and referrals for any commerce stack — WooCommerce, Magento, a custom cart, or your POS. You send commerce events; we keep an append-only rewards ledger, apply your programme's rules, and expose balances, redemptions and webhooks.
1 · Get a test key
In the StickyTier admin, open Advanced → Developers and press New API key. Leave Mode on Test (sandbox data), keep the ingest and read scopes, press Create key and copy the key — it is shown once. Test keys write to an isolated sandbox: nothing touches your live programme, and you can wipe the sandbox anytime. (Developers appears when your plan includes the API.)
2 · Verify it
curl https://stickytier.com/v1/ping \
-H "Authorization: Bearer sticky_test_YOUR_KEY"
# → { "data": { "pong": true, "mode": "test", "scopes": ["ingest","read"] } }3 · Send an order
curl -X POST https://stickytier.com/v1/events \
-H "Authorization: Bearer sticky_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "order.paid",
"order_ref": "ORDER-1001",
"email": "customer@example.com",
"gross_cents": 49900
}'
# → 202 { "data": { "id": "…", "type": "order.paid", "status": "queued", "replayed": false } }Processing is asynchronous (usually under a second). A customer we have not seen before is created as a prospect (they have not agreed to your terms yet), your active earning rules run — caps, budgets and timing included — and the resulting ledger entries attach to the event. Sending the same order again is safe: it answers 200 with replayed: true and nothing runs twice.
4 · Watch the points land
curl https://stickytier.com/v1/events/EVENT_ID \
-H "Authorization: Bearer sticky_test_YOUR_KEY"
# → { "data": { "status": "completed", "ledger_entry_ids": ["…"] } }
curl "https://stickytier.com/v1/members?email=customer@example.com" \
-H "Authorization: Bearer sticky_test_YOUR_KEY"
# → balances.available_cents / pending_cents per your rule timing5 · Redeem
curl -X POST https://stickytier.com/v1/members/MEMBER_ID/redemptions \
-H "Authorization: Bearer sticky_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "amount_cents": 5000 }'
# → 201 { "data": { "code": "RWD-XXXX-XXXX", "status": "created", … } }
# When the customer uses it at your counter/cart:
curl -X POST https://stickytier.com/v1/redemptions/REDEMPTION_ID/confirm \
-H "Authorization: Bearer sticky_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "order_ref": "ORDER-1002" }'Didn't use it? POST /v1/redemptions/{id}/void restores the value instantly — and an unconfirmed voucher returns its points by itself when it expires (72 hours unless your programme sets otherwise), so customers never lose points to an abandoned checkout.
Next steps
Read the concepts once, then authentication & scopes, idempotency and errors; subscribe to webhooks; or explore every endpoint in the API reference. When you're ready, create a live key and swap it in — the API surface is identical. A live key can change balances or read members' personal details, so only an owner or admin can create one, and your programme may ask a second owner or admin to approve it first (see authentication). The plain HTTP API shown here is the supported path; the Node.js and PHP clients are beta, on request.