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:
- Docs: https://docs.dreamdelhi.com/
- DEV base URL:
https://dev-api.dreamdelhi.com
Requirements from Forsyt to create operator ID:
- Server IP — all requests must originate from this IP (not client-side)
- Server endpoint URL — where GAP sends debit/credit/balance/rollback requests
- Public key (can generate at https://travistidwell.com/jsencrypt/demo/)
GAP will provide:
- Server URL — dev/staging first, production after test cases pass
- GAP public key — after Forsyt shares theirs
- 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:
- 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"?
- Rate parameter — Is the
rate=1.00in sports login URL configurable? Does it apply to casino? - Balance in login vs wallet callbacks — Is login balance for display only? Does GAP call
/balancebefore every bet? - Multiple concurrent sessions — Fresh balance per session or cached from latest login?
- Min/Max bet amounts — Per game/provider or global? Configured where?
- Token lifecycle — Duration? Timeout? Auto-refund on inactivity?
- Operator configuration — Currency options? Changeable later? Rate configuration?
2026-03-15 — Answers from Ken (GAP)
From: Ken (GAP team) To: Forsyt
- Currency: Fiat only — INR, BDT, AED, HKD, etc. No custom codes.
- Rate: Internal to GAP sports config. Does NOT apply to casino.
- Balance: Fetched real-time via
/balanceendpoint, not only during login. - Concurrent sessions: Real-time balance fetched (fresh each time).
- Min/Max bets: Global operator level only. Not per-game or per-provider.
- Token lifecycle: 6 hours. Rollback/refund only from game provider, not GAP. User active state not considered.
- 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
- 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.
- Dev credentials: Need from Forsyt: (a) server IP, (b) server endpoint URL for debit/credit, (c) public key. Then GAP creates operator ID.
- Timeouts:
/balance: 4 second timeout, NO retry. If slow, balance call fails./betrequest: 4 second timeout. If no response in 4s, bet is failed./resultrequestand/rollbackrequest: 4 second timeout, 10 retries on failure.
- Login balance: Some providers (e.g., JiLi) need balance during login itself. Not purely informational.
- Multi-session: NOT feasible. One session per user at a time.
- Token refresh: Not possible. User must re-login for a new session.
- Session end notification: No. GAP does NOT notify when session ends.
- Min/Max bets: Configured via BackOffice during operator creation.
- round_closed: Flag is only supported by a few providers. Not universal.
- 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
- Round 3 answers — 10 open questions (see above), sent ~March 16, no response yet
- HKD provider list — Ken said "will share list" on March 15, still pending
- Operator ID creation — blocked on us providing: server IP, endpoint URL, public key
Waiting on Forsyt (us)
- Server IP — which server IP will originate requests to GAP? (bhdev? prod?)
- Server endpoint URL — the base URL where GAP sends wallet callbacks (e.g.,
https://bhdev.forsyt.io/api/gap/) - RSA key pair — generate via https://travistidwell.com/jsencrypt/demo/ and share public key with GAP