Integration & API

Point your feed at us. Be monitored by tomorrow.

Four ways to connect a seamless-wallet stream — from a one-line curl to a zero-latency edge tap. The API is self-describing, strictly validated, and returns detections inline.

Four ways to connect

All four land in the same pipeline: contract validation → tenant-identity guard → detection rules → alerts and cases. Pick by how your side of the integration is shaped.

01 · Direct HTTPS

Send the canonical event

One JSON event per authenticated POST. You control the producer and emit our schema directly — the strictest, simplest path.

Best for: in-house integrations and platforms with an event bus.

02 · Provider-native

Send your wire format as-is

POST your seamless-wallet payloads in the wire shape you already emit — single events or batches of up to 500. We map the fields; no adapter to write.

Best for: provider-side feeds and taps on provider ↔ operator traffic.

03 · UDP tap agent

Fire-and-forget on your LAN

Your proxy emits one datagram per event to a local agent — zero latency added to the transaction path. The agent batches and forwards over reliable, authenticated HTTPS.

Best for: wallet proxies that cannot afford a blocking call.

04 · Cloudflare edge tap

Mirror traffic with no app changes

A reference Worker on your zone passes your wallet-API traffic through untouched, then mirrors a copy to us after the response is already on its way.

Best for: operators already proxied by Cloudflare.

Discover the contract

No PDF handoffs. The ingest endpoints publish their own live contract — auth, field-by-field schema, limits, and response shapes — so your integration can't drift from ours.

# The API is self-describing — the live contract, no auth needed:
curl -s https://dev.gameshieldpro.com/api/ingest   # canonical contract
# provider-native connector descriptors are shared during onboarding

The fields that matter

round_id / transaction_idCorrelation keys — round lifecycle + per-leg identity.
transaction_typebet · win · cancel · tip · bonus
bet_amount / win_amountDecimal strings, ≥ 0, with an ISO-4217 currency.
hashIntegrity hash. Present but may be empty — an empty hash is flagged as anomaly A-003, not bounced.
player_ip / supplier_ipReal IPs power collusion, syndicate, and allowlist detection.
leg / match_keyOptional dual-leg pairing — unlocks operator↔supplier reconciliation.
ntp_timestampISO-8601, NTP-disciplined — orders events inside a round.

A stream, end to end

The provider-native connector takes the wire format you already emit — batched up to 500 events per request — and answers with per-event results and any detections it raised, synchronously.

POST /api/ingest/<connector>?currency=EUR
Authorization: Bearer <tenant-api-key>

[
  { "TrnType": "BET", "Amount": 25.0, "userId": "player-77",
    "sessionId": "sess-1", "roundId": 990011, "TransactionId": "txn-5001",
    "gameId": "bj-267", "History": "live-blackjack",
    "tableGUID": "tbl-267", "hash": "d41d8c…", "isRoundFinished": false },
  { "TrnType": "WIN", "Amount": 40.0, "userId": "player-77",
    "sessionId": "sess-1", "roundId": 990011, "TransactionId": "txn-5002",
    "gameId": "bj-267", "hash": "9e107d…", "isRoundFinished": true }
]

→ 200 { "status": "batch", "received": 2,
        "summary": { "ok": 2, "rejected": 0, "quarantined": 0 },
        "results": [ { "index": 0, "status": "ok", "alerts": [] }, … ] }

What you can rely on

Validated before it lands

Every event is checked against the full contract before any write. A malformed event is rejected with every violation listed — not just the first.

Identity-guarded

An event claiming an operator, supplier, or aggregator id your tenant doesn't own is quarantined — never written to the live stream — and a SOC investigation opens automatically.

Detection at ingest

Protocol rules run synchronously: the response tells you immediately which alerts an event raised, with severity and evidence.

Signed outbound alerts

Alert delivery to your webhook is Ed25519-signed with a public, well-known verification key — plus Slack, PagerDuty, SMS, and email channels, retried with backoff.

Predictable back-pressure

Per-key token-bucket rate limits with Retry-After semantics. Batches are admitted atomically — whole or not at all, never half-applied.

Tenant-scoped keys

API keys are issued per tenant, shown once, revocable instantly, and every use is audited.

Integrating a live feed? The full partner contract — every field, default, and error semantic, plus the tap agents — is shared during onboarding. Talk to us to get access.

See it on your own traffic.

We'll run a monitored pilot on a slice of your seamless-wallet feed and show you the drift, errors, and fraud signals it surfaces.