Results where
your systems already are.

Submit evidence through short-lived upload sessions, get notified by signed webhooks, and read results through a typed SDK. For loyalty programs, approved submissions post straight into Open Loyalty as transactions or custom events, with every delivery recorded in a ledger you can retry.

A customer support conversation on a laptop.
Auth
Bearer API keys per organisation
Events
session.completed, session.review_required, submission.approved, submission.rejected, and more
Targets
Webhooks, Open Loyalty transactions, Open Loyalty custom events

What it does for you.

Sessions and idempotency

Open a session, upload to pre-signed URLs, submit. Client submission ids make retries safe. Batch references group campaigns.

Signed webhooks

Session and submission events signed with HMAC SHA-256 and deduplicated by id. A test endpoint is one call away.

Typed SDK

A TypeScript client covering the API and webhook signature verification.

Open Loyalty delivery ledger

Delivered, failed, skipped, or pending, per submission and target. Automatic retries, manual retry, exactly-once per submission.

How it works in practice.

  1. Create a session

    Receive upload URLs for the evidence.

  2. Submit

    Steve processes, verifies, and routes.

  3. Receive

    Webhook fires. Read the result, or let Open Loyalty award the points.

Where this earns its keep.

Use cases that lean on delivery and api the most.

See it work
on your evidence.

See delivery and api running on your own evidence. Thirty minutes, no slides.

Book a demo 30 minutes. Your use case. Real possibilities.