Skip to content

Developers · Pilot

The loyalty API for Bangladesh.

Programs, customers, earning, refunds, checkout holds, wallet passes and campaigns from your own POS, website or CRM. The same balances the counter and the wallet pass show.

Add a stamp
curl -X POST "https://app.revisit.cards/v1/developer/programs/$PROGRAM_ID/actions" \
  -H "Authorization: Bearer $DEVELOPER_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "action": "earn", "externalCustomerId": "user-42", "sourceEventId": "order-2041" }'
200 OK
{
  "data": {
    "action": "earn",
    "balance": 8,
    "delta": 1,
    "duplicate": false,
    "externalCustomerId": "user-42",
    "sourceEventId": "order-2041"
  },
  "success": true
}

What you can build

Loyalty that runs inside your stack.

Stamp from the till

Your POS earns for each paid order. Retries are safe: one order, one stamp, and the wallet pass updates on its own.

Join at checkout

Enroll a customer by your own id on your website or order form, then hand them an Apple or Google Wallet pass.

Refunds that add up

Take back stamps, points or credit for a refund. If the reward was already used, the owner decides.

Run campaigns

Send wallet push or SMS campaigns under the shop's own rules, consent and daily limits.

Your first run

Four calls to your first stamp.

A test key, an invented customer and a stamp. Four calls, no real data touched.

  1. 01

    Get a test key

    The business owner makes one in the app under Settings, Developers.

  2. 02

    Pick a program

    List the programs and keep the id of the one you earn on.

  3. 03

    Enroll a customer

    Enroll a customer by your own id. You get a membership back.

  4. 04

    Earn a stamp

    Earn for an order id. Send it twice: it still counts once.

Read the quickstart
Earn
curl -X POST "https://app.revisit.cards/v1/developer/programs/e01b010d-2c65-48e1-83a0-acad79f8d3b4/actions" \
  -H "Authorization: Bearer $DEVELOPER_API_KEY" \
  -H "Idempotency-Key: 5f0c2a8e-7b1d-4c3e-9a6f-0d4b8e36983a" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "earn",
    "externalCustomerId": "user-42",
    "sourceEventId": "order-1001"
  }'

Made for here

Built for how shops here work.

Exact money

Whole minor units in the program's currency, never floats. 1250 is 12.50 BDT.

Any BD number

01XXXXXXXXX, +8801XXXXXXXXX or an international number. All accepted.

Private by default

Numbers go in, never out. You get a mask and a member code.

Common questions.

Do I need an SDK?

No. It is plain HTTPS and JSON, so any language that can make a web request works. Every endpoint shows cURL, Node.js and Python.

Can I read customers' phone numbers?

No. Revisit seals customers' numbers and no business sees a full one, in the app or the API. You can send a phone to enroll or find a customer; you get back a masked number and a member code.

Is there a sandbox?

Yes. A test key works in an isolated workspace with invented programs and members. Nothing you try sends a real message, pass or payment.

My POS timed out. Did the stamp land?

Retry with the same Idempotency-Key and the same order id as sourceEventId. The stamp is added once, however many times the call arrives.

Does it work alongside the Revisit scanner?

Yes. The API and the scanner write to the same balances, so staff can keep scanning while your POS earns too.

Are there webhooks?

Not in this release. You call the API and read status; background jobs answer with a reference you read later.

Pilot access

Build it with us.

The API is in a pilot with a few businesses. Tell us what you are building and we will open it for your shop.