{"info":{"name":"Tulus Partner API v1","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{apiKey}}","type":"string"}]},"variable":[{"key":"baseUrl","value":"https://tulus.ee/api/v1"},{"key":"apiKey","value":"tls_test_xxxxxxxxxxxx_paste-your-key-here"}],"item":[{"name":"GET /me — Describe the current API key","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/me","host":["{{baseUrl}}"],"path":["me"]}}},{"name":"GET /shops — List shops this key may access","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/shops","host":["{{baseUrl}}"],"path":["shops"]}}},{"name":"GET /categories — List public coupon categories (ids for category_ids)","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/categories","host":["{{baseUrl}}"],"path":["categories"]}}},{"name":"GET /shops/{id} — Get a shop","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/shops/:id","host":["{{baseUrl}}"],"path":["shops",":id"]}}},{"name":"GET /coupons — List coupons","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupons","host":["{{baseUrl}}"],"path":["coupons"]}}},{"name":"POST /coupons — Create a coupon","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons","host":["{{baseUrl}}"],"path":["coupons"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"GET /coupons/{id} — Get a coupon","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupons/:id","host":["{{baseUrl}}"],"path":["coupons",":id"]}}},{"name":"PATCH /coupons/{id} — Partially update a coupon","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id","host":["{{baseUrl}}"],"path":["coupons",":id"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"PUT /coupons/{id} — Replace a coupon (omitted optional fields reset to defaults)","request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id","host":["{{baseUrl}}"],"path":["coupons",":id"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /coupons/{id}/activate — Publish / resume (optionally schedule with starts_at/ends_at)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id/activate","host":["{{baseUrl}}"],"path":["coupons",":id","activate"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /coupons/{id}/pause — Pause a coupon","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id/pause","host":["{{baseUrl}}"],"path":["coupons",":id","pause"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /coupons/{id}/archive — Archive a coupon (irreversible; duplicate to reuse)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id/archive","host":["{{baseUrl}}"],"path":["coupons",":id","archive"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /coupons/{id}/duplicate — Duplicate as a new draft","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id/duplicate","host":["{{baseUrl}}"],"path":["coupons",":id","duplicate"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /coupons/bulk — Bulk create (≤50 inline, ≤5000 async)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/bulk","host":["{{baseUrl}}"],"path":["coupons","bulk"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /coupons/sync — Synchronise coupons by external_reference","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/sync","host":["{{baseUrl}}"],"path":["coupons","sync"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"GET /coupons/export — Export coupons as CSV/JSON (≤1000 inline, larger async)","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupons/export","host":["{{baseUrl}}"],"path":["coupons","export"]}}},{"name":"GET /coupons/{id}/usage — Usage: limits, confirmed redemptions, measured engagement","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupons/:id/usage","host":["{{baseUrl}}"],"path":["coupons",":id","usage"]}}},{"name":"GET /coupons/{id}/analytics — Time series for one coupon","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupons/:id/analytics","host":["{{baseUrl}}"],"path":["coupons",":id","analytics"]}}},{"name":"GET /coupons/{id}/redemptions — List confirmed/reversed redemptions","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupons/:id/redemptions","host":["{{baseUrl}}"],"path":["coupons",":id","redemptions"]}}},{"name":"POST /coupons/{id}/redemptions — Report a confirmed redemption (idempotent on external_redemption_id)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id/redemptions","host":["{{baseUrl}}"],"path":["coupons",":id","redemptions"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /coupons/{id}/redemptions/{redemption}/reverse — Reverse (cancel) a redemption","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id/redemptions/:redemption/reverse","host":["{{baseUrl}}"],"path":["coupons",":id","redemptions",":redemption","reverse"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"GET /coupons/{id}/codes — List single-use codes","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupons/:id/codes","host":["{{baseUrl}}"],"path":["coupons",":id","codes"]}}},{"name":"POST /coupons/{id}/codes/bulk — Generate (async) or import single-use codes","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/coupons/:id/codes/bulk","host":["{{baseUrl}}"],"path":["coupons",":id","codes","bulk"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"GET /coupon-code-batches/{id} — Code batch status","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/coupon-code-batches/:id","host":["{{baseUrl}}"],"path":["coupon-code-batches",":id"]}}},{"name":"GET /operations/{id} — Async operation status","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/operations/:id","host":["{{baseUrl}}"],"path":["operations",":id"]}}},{"name":"GET /operations/{id}/download — Download an export result","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/operations/:id/download","host":["{{baseUrl}}"],"path":["operations",":id","download"]}}},{"name":"GET /analytics/overview — Totals for a period (optionally with series via group)","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/analytics/overview","host":["{{baseUrl}}"],"path":["analytics","overview"]}}},{"name":"GET /analytics/coupons — Per-coupon breakdown","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/analytics/coupons","host":["{{baseUrl}}"],"path":["analytics","coupons"]}}},{"name":"GET /analytics/shops — Per-shop breakdown","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/analytics/shops","host":["{{baseUrl}}"],"path":["analytics","shops"]}}},{"name":"GET /analytics/redemptions — Redemption log across shops, or series with group=","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/analytics/redemptions","host":["{{baseUrl}}"],"path":["analytics","redemptions"]}}},{"name":"GET /webhooks — List webhook endpoints","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/webhooks","host":["{{baseUrl}}"],"path":["webhooks"]}}},{"name":"POST /webhooks — Create a webhook endpoint (signing secret returned once)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/webhooks","host":["{{baseUrl}}"],"path":["webhooks"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"GET /webhooks/{id} — Get an endpoint","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/webhooks/:id","host":["{{baseUrl}}"],"path":["webhooks",":id"]}}},{"name":"PATCH /webhooks/{id} — Update URL, events or enabled","request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/webhooks/:id","host":["{{baseUrl}}"],"path":["webhooks",":id"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"DELETE /webhooks/{id} — Delete an endpoint","request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/webhooks/:id","host":["{{baseUrl}}"],"path":["webhooks",":id"]}}},{"name":"POST /webhooks/{id}/rotate-secret — Rotate the signing secret (old one valid 24 h)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/webhooks/:id/rotate-secret","host":["{{baseUrl}}"],"path":["webhooks",":id","rotate-secret"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"POST /webhooks/{id}/ping — Send a test webhook.ping","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/webhooks/:id/ping","host":["{{baseUrl}}"],"path":["webhooks",":id","ping"]},"body":{"mode":"raw","raw":"{\n}"}}},{"name":"GET /webhooks/{id}/deliveries — Delivery log","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{baseUrl}}/webhooks/:id/deliveries","host":["{{baseUrl}}"],"path":["webhooks",":id","deliveries"]}}},{"name":"POST /webhook-deliveries/{id}/retry — Retry a failed delivery (same event id)","request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"},{"key":"Idempotency-Key","value":"{{$guid}}"}],"url":{"raw":"{{baseUrl}}/webhook-deliveries/:id/retry","host":["{{baseUrl}}"],"path":["webhook-deliveries",":id","retry"]},"body":{"mode":"raw","raw":"{\n}"}}}]}