The Android Retrofit interface defines two POST operations.
Base URL in the supplied source:
https://api.fastxbet.example.com/
This is a placeholder and is not a production service.
AuthInterceptor adds:
Authorization: Bearer <token>
only when TokenProvider.getToken() returns a non-empty token.
The default implementation returns null.
Therefore the current client does not authenticate remote requests by default.
Request:
{
"playerId": "123456",
"bankName": "Example Bank",
"amountMinorUnits": 100000,
"slipUri": "content://example/receipt",
"reference": "REF-001"
}
Response:
{
"success": true,
"depositId": 42
}
| Field | Type | Meaning |
|---|---|---|
playerId |
string | Client/player identifier |
bankName |
string | Selected bank/payment destination |
amountMinorUnits |
integer | Amount represented in minor currency units |
slipUri |
string/null | Client-side receipt URI |
reference |
string | Transaction/reference value |
Request:
{
"playerId": "123456",
"amountMinorUnits": 200000,
"secretCode": "<sensitive>",
"bankName": "Example Bank",
"accountHolder": "Example User",
"accountNumber": "0000000000",
"branch": "Main"
}
Response:
{
"success": true,
"withdrawalId": 7
}
The backend should additionally enforce:
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_..."
}
}
Do not return stack traces, secrets, account credentials, or internal database details.
The client currently sends slipUri, which is an Android URI, not a server-side file upload.
For production receipt handling, use:
Client -> API requests upload URL
-> Client uploads file to object storage
-> API records verified object metadata
Validate MIME type, file size, object ownership, and content integrity on the server.