Skip to content

We use only strictly necessary storage (this choice). Optional analytics stay off unless you accept. Nothing from third parties loads before that. Cookie policy

Business-to-business service. We do not accept players.

Platform

Two layers, one integration

Aggregated game content and a mobile trust layer, exposed through a single API and governed by a single contract.

01 · Content aggregation

The catalogue, through one API

Studios are integrated once on our side. The core aggregation engine is provided by a technology partner; mob2.win is your single counterparty for contract, support and traceability.

Single integration

One set of endpoints and webhooks for game launch, sessions and round reporting.

Studio screening

Studios are onboarded only after due diligence and certification review.

Jurisdiction-aware

Catalogue availability filtered by the markets in which you are licensed.

02 · Mobile trust layer

Verifiable mobile identity

Signals from mobile networks help you confirm that the person behind a phone number is who they say they are — before onboarding and before every withdrawal.

VERIFY

Number verification

Confirms that the device session matches the claimed phone number, without an SMS round-trip where the network supports it.

How it works

  1. 1Your app opens a device session over mobile data.
  2. 2We ask the network whether that session belongs to the number.
  3. 3You receive a match / no-match result with a trace ID.
Request
POST /v1/number-verification
Idempotency-Key: 7f3c9a2e-1b4d

{
  "phone_number": "+51900000000",
  "session_token": "<device_session>"
}
Response · illustrative
200 OK
{
  "request_id": "req_01HZX4K8Q2",
  "match": true,
  "trace": "trc_9b2e41"
}
SIMSWAP

SIM-swap signal

Shows whether the SIM behind a number changed recently — a common precursor to account takeover at withdrawal.

How it works

  1. 1You send the number and a time window.
  2. 2We query the carrier for the latest SIM change.
  3. 3You hold or step up the withdrawal if a recent swap is found.
Request
POST /v1/sim-swap/check
Idempotency-Key: 2a91c0de-55f1

{
  "phone_number": "+573000000000",
  "max_age_hours": 72
}
Response · illustrative
200 OK
{
  "request_id": "req_01HZX4M1T7",
  "swapped": false,
  "trace": "trc_4c18d0"
}
OTP

One-time passwords

Issues and validates OTP codes with expiry, retry limits and an audit record per attempt.

How it works

  1. 1You request a code for a number and channel.
  2. 2We deliver it and track expiry and attempts.
  3. 3You validate the code; every attempt is logged.
Request
POST /v1/otp
Idempotency-Key: 9b77e012-0c3a

{
  "phone_number": "+51900000000",
  "channel": "sms",
  "ttl_seconds": 300
}
Response · illustrative
202 Accepted
{
  "otp_id": "otp_01HZX4P9R3",
  "expires_at": "2027-05-03T10:05:00Z",
  "attempts_left": 3
}
NOTIFY

Delivery-tracked notifications

Transactional messages with per-message delivery status that you can keep as evidence.

How it works

  1. 1You send a templated message.
  2. 2We route it and collect carrier receipts.
  3. 3A signed webhook reports the final delivery status.
Request
POST /v1/notifications
Idempotency-Key: 4d0f6a88-71be

{
  "phone_number": "+573000000000",
  "template": "withdrawal_review",
  "locale": "es-CO"
}
Response · illustrative
202 Accepted
{
  "message_id": "msg_01HZX4S2W8",
  "status": "queued"
}
// webhook → status: "delivered"

Network coverage varies by carrier and country. Signals support your risk decisions; they do not replace them.

03 · API & integration

Built to be read by engineers

REST over TLS, idempotency keys on every write, signed webhooks and request IDs on every response for end-to-end traceability.

  • Sandbox environment under NDA
  • OpenAPI specification
  • Signed webhooks (HMAC-SHA256)
  • Per-request trace IDs
  • Request a demo
Example request (illustrative)
POST /v1/trust/check
Authorization: Bearer <api_key>
Idempotency-Key: 7f3c9a2e-1b4d-4e8a-9c61-0d2f5b8e4a17

{
  "phone_number": "+51 900 000 000",
  "checks": ["number_verification", "sim_swap"],
  "context": { "event": "withdrawal", "operator_ref": "WD-000123" }
}

202 Accepted
{
  "request_id": "req_01HZX4K8Q2",
  "number_verification": { "match": true },
  "sim_swap": { "changed_within_hours": null, "swapped": false },
  "trace": "trc_9b2e41"
}