🔌 API

للمطوّرين — واجهة حصالتي البرمجية

أصدر بطاقات المحفظة والتذاكر من نظامك مباشرة. واجهتا JSON بسيطتان، مفتاح واحد، بلا SDK.

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.