02 / Login + Wallet Transfer APIs
Once you have your api_key and api_secret, you can begin integration.
API domain: https://gateway-api.bwsh7twk.com/
After the Login API integration is complete, use the redirect_url to redirect the player directly to the game page. Integrating the Wallet API afterward completes the integration.
There are four APIs in total:
2.1 Common Conventions
Response fields are always named in snake_case (for example, temporary_key, redirect_url, currency_code).
All responses are wrapped in a unified envelope:
{
"code": 0,
"message": "success",
"data": { /* Actual business payload; see each API for its structure */ }
}code == 0indicates success; the business data is in thedatafield.code != 0indicates failure; refer tomessage.
Time Format
All time fields are RFC3339 UTC (e.g. 2026-05-19T00:00:00Z), but the number of fractional-second digits is not fixed. Always parse with a general-purpose RFC3339 parser; never compare or truncate them as fixed-length strings.
| Source field | Precision |
|---|---|
| Bet ticket query order_time, updated_at | Whole seconds, no fraction |
| Bet ticket query trades[].settled_time | Milliseconds |
| Wallet transfer / wallet records created_at | Up to nanoseconds |
When a time field is empty it is returned as null; the field is not omitted.
Common Error Code Examples
| code | message | Description |
|---|---|---|
| 10000 | authentication failed / missing body-hash in metadata | Signature or header is incorrect |
| 10020 | ticket_id is required | Missing required field |
| 10080 | internal server error | Internal server error |
For the complete error reference, see Common Integration Errors.
Next, read the HMAC Signing Flow. All APIs (including GET) require a correct signature to be called successfully.