Skip to main content

GAP Casino — Communications Log

All communication with the GAP team regarding integration. Contact: Ken (GAP team member, +1 510 370 0943), via WhatsApp group "GAP integrration - AmKa". Forsyt side: Amit Kanodia (CEO), Bhargav Veepuri (Dev) Other group members: Badal, Prashant, +44 7308 516197, +45 36 96 58 50

Raw WhatsApp exports: See comms/ directory for verbatim chat transcripts.


2026-03-04 — Initial Setup (Amit)

From: Amit (Forsyt CEO) To: GAP team

GAP shared documentation link and onboarding requirements:

Requirements from Forsyt to create operator ID:

  1. Server IP — all requests must originate from this IP (not client-side)
  2. Server endpoint URL — where GAP sends debit/credit/balance/rollback requests
  3. Public key (can generate at https://travistidwell.com/jsencrypt/demo/)

GAP will provide:

  1. Server URL — dev/staging first, production after test cases pass
  2. GAP public key — after Forsyt shares theirs
  3. Operator ID

2026-03-15 — Integration Questions (Bhargav)

From: Bhargav (Forsyt Dev) To: GAP team

Questions about integrating GAP with Hannibal's internal points system:

  1. Currency & Conversion — Want to use HKD with conversion rate on our side. Will amounts in wallet callbacks always match the login currency? Do you support custom codes like "PTS"?
  2. Rate parameter — Is the rate=1.00 in sports login URL configurable? Does it apply to casino?
  3. Balance in login vs wallet callbacks — Is login balance for display only? Does GAP call /balance before every bet?
  4. Multiple concurrent sessions — Fresh balance per session or cached from latest login?
  5. Min/Max bet amounts — Per game/provider or global? Configured where?
  6. Token lifecycle — Duration? Timeout? Auto-refund on inactivity?
  7. Operator configuration — Currency options? Changeable later? Rate configuration?

2026-03-15 — Answers from Ken (GAP)

From: Ken (GAP team) To: Forsyt

  1. Currency: Fiat only — INR, BDT, AED, HKD, etc. No custom codes.
  2. Rate: Internal to GAP sports config. Does NOT apply to casino.
  3. Balance: Fetched real-time via /balance endpoint, not only during login.
  4. Concurrent sessions: Real-time balance fetched (fresh each time).
  5. Min/Max bets: Global operator level only. Not per-game or per-provider.
  6. Token lifecycle: 6 hours. Rollback/refund only from game provider, not GAP. User active state not considered.
  7. Currency config: Multiple fiat currencies supported. Currency can be changed later.

2026-03-15 — Follow-up Questions (Bhargav)

From: Bhargav (Forsyt Dev) To: GAP team

10 follow-up questions covering setup, balance, sessions, and bet lifecycle.


2026-03-16 — Follow-up Answers from Ken (GAP)

From: Ken (GAP team) To: Forsyt

  1. HKD provider list: Will share list of providers supporting HKD. If you send HKD for a provider that doesn't support it, login won't work.
  2. Dev credentials: Need from Forsyt: (a) server IP, (b) server endpoint URL for debit/credit, (c) public key. Then GAP creates operator ID.
  3. Timeouts:
    • /balance: 4 second timeout, NO retry. If slow, balance call fails.
    • /betrequest: 4 second timeout. If no response in 4s, bet is failed.
    • /resultrequest and /rollbackrequest: 4 second timeout, 10 retries on failure.
  4. Login balance: Some providers (e.g., JiLi) need balance during login itself. Not purely informational.
  5. Multi-session: NOT feasible. One session per user at a time.
  6. Token refresh: Not possible. User must re-login for a new session.
  7. Session end notification: No. GAP does NOT notify when session ends.
  8. Min/Max bets: Configured via BackOffice during operator creation.
  9. round_closed: Flag is only supported by a few providers. Not universal.
  10. Signature failure: Return OP_INVALID_SIGNATURE.

Key Implications

  • 4-second SLA is HARD — our /balance and /betrequest must respond within 4 seconds or the user's game action fails
  • No multi-session — must enforce single active session on our side (invalidate previous on new login)
  • JiLi needs login balance — login balance is NOT just informational, must be accurate
  • No session end callback — need our own cleanup (TTL-based, 6hr)
  • 10 retries for result/rollback — idempotency is absolutely critical

2026-03-16 — Follow-up Questions Round 3 (Bhargav)

From: Bhargav (Forsyt Dev) To: GAP team Status: PENDING RESPONSE

10 open questions covering bet timeout behavior, session lifecycle, endpoint paths, retry intervals, HKD provider list, GAP server IPs, reconciliation API, BackOffice access, rollbackAmount sign convention, and zero-amount bets.

(Full question text in 12-hannibal-integration-plan.md)


Action Items (as of 2026-03-20)

Waiting on GAP team

  1. Round 3 answers — 10 open questions (see above), sent ~March 16, no response yet
  2. HKD provider list — Ken said "will share list" on March 15, still pending
  3. Operator ID creation — blocked on us providing: server IP, endpoint URL, public key

Waiting on Forsyt (us)

  1. Server IP — which server IP will originate requests to GAP? (bhdev? prod?)
  2. Server endpoint URL — the base URL where GAP sends wallet callbacks (e.g., https://bhdev.forsyt.io/api/gap/)
  3. RSA key pair — generate via https://travistidwell.com/jsencrypt/demo/ and share public key with GAP