🔌 API

Developers — the Hasalti API

Issue wallet cards and tickets from your own software. Two small JSON APIs, one key, no SDK needed.

Authentication

Every request carries your business's API key in the X-Api-Key header. The key lives in your dashboard: Members page (membership businesses) or Events page (ticket businesses). Keep it server-side — never in a mobile app or public website source.

X-Api-Key: hsk_your_key_here
Content-Type: application/json

Base URL: https://hasalti.com · All bodies are JSON · Rate limit ≈60 writes/min per IP (HTTP 429 beyond).

Membership API gyms · clubs · studios

Sync your management software with the wallet card in your member's pocket: create members, renew terms, read live status. Renewals update the card on the member's phone within seconds.

Create a member

POST https://hasalti.com/api/partner/members
{
  "tenant": "your-business-slug",
  "name":   "Sara Ali",
  "phone":  "0790000000",
  "months": 12            // optional — TOTAL first term (default: your plan's term)
}

→ 201
{
  "ok": true,
  "serial":    "YOURBIZ-AB12CD",
  "appleUrl":  "https://hasalti.com/p/YOURBIZ-AB12CD.pkpass?t=…",
  "googleUrl": "https://pay.google.com/gp/v/save/…"
}

Send appleUrl / googleUrl to the member (SMS, email, or your app) — one tap adds the card to their wallet.

Renew a membership

POST https://hasalti.com/api/partner/members/renew
{
  "tenant": "your-business-slug",
  "phone":  "0790000000",   // or "serial": "YOURBIZ-AB12CD"
  "months": 1               // optional — default: your plan's term
}

→ 200  { "ok": true, "serial": "YOURBIZ-AB12CD", "membership": { "active": true, "untilDate": "2027-08-26" } }

Check live status

GET https://hasalti.com/api/partner/members/YOURBIZ-AB12CD

→ 200
{
  "ok": true, "serial": "YOURBIZ-AB12CD", "name": "Sara Ali", "phone": "0790000000",
  "active": true, "until": 1787000000, "untilDate": "2027-08-26"
}

Tickets API venues · organizers

Issue wallet tickets from your own website, box office, or POS. Each issued ticket consumes one prepaid credit (25¢); when an email is given, the guest receives their Add-to-Wallet links automatically.

POST https://hasalti.com/api/partner/tickets
{
  "showId": "yourbiz-EV12345",   // from your Events dashboard
  "name":   "Adam Brown",
  "email":  "adam@example.com"   // optional — enables auto-delivery
}

→ 201  { "ok": true, "serial": "YOURBIZ-TK9XYZ", "appleUrl": "…", "googleUrl": "…", "emailed": true }

Errors

CodeMeaning
400Missing or invalid field (name, phone, tenant…)
401Missing or wrong X-Api-Key
402Limit reached — member cap (capReached) or out of ticket credits (noCredits)
403Account on hold (billing)
404Unknown tenant, member, or show
409Show sold out
429Rate limited — retry with backoff

Questions?

We integrate alongside your existing software — we never replace it. Write to hello@hasalti.com and an engineer answers.