Complete API reference for Member User Profile endpoints
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
Body: Empty
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"id": 1712,
"uid": "user-uid-123",
"username": "member123",
"alternateUsername": null,
"mobileNumber": "0912345678",
"partnerId": 123,
"isEnable": true,
"memberGroupV2Id": null,
"baseCurrency": "THB",
"convertRate": 1,
"email": null,
"currentCredit": 1000.50,
"coinCurrentCoin": 500,
"coinTotalCoin": 1000,
"totalDepositCredit": 5000.00,
"totalWithdrawCredit": 2000.00,
"totalDirectCredit": 0,
"isDeposited": true,
"cashbackCurrentCredit": 50.00,
"cashbackTotalCredit": 100.00,
"turnoverCurrentCredit": 3000.00,
"turnoverTotalCredit": 5000.00,
"turncreditCurrentCredit": 0,
"todayDepositCount": 2,
"todayDepositCredit": 500.00,
"todayWithdrawCount": 1,
"todayWithdrawCredit": 200.00,
"affiliateCurrentCredit": 0,
"affiliateTotalCredit": 0,
"affiliateTotalMemberCount": 0,
"affiliateTotalClickCount": 0,
"isUplineOwner": false,
"paymentBankCodeName": "KBANK",
"paymentBankAccountName": "John Doe",
"paymentBankAccountNumber": "1234567890",
"favoriteGame": [],
"disabledGame": [],
"isAutoReceivePromotion": true,
"preferredPromotionId": null,
"isLinkLine": false,
"promotion": {
"activePromotion": null,
"currentTurnover": 0,
"neededTurn": 0,
"canAddFund": true
},
"providerCurrencyKeys": [],
"partner": {
"isEnableAffiliate": true,
"isEnableCashback": true,
"isEnableCoupon": true,
"agentMaxDeposit": 10000,
"agentMinDeposit": 100,
"agentMaxWithdraw": 5000,
"agentMinWithdraw": 100,
"agentMaxWithdrawPerDay": 10000,
"isEnableForceFullWithdraw": false,
"isEnablePaymentGateway": true,
"isEnableMemberAffiliateDetail": true,
"PartnerLanguageSettingV2": [
{
"language": "th"
}
]
}
}
}
404 Not Found Member not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "MEMBER_NOT_FOUND",
"errorMessage": "Member not found"
}
}
401 Unauthorized Member is disabled
{
"isSuccess": false,
"statusCode": 401,
"message": {
"errorCode": "MEMBER_DISABLED",
"errorMessage": "Member is disabled"
}
}
429 Too Many Requests Duplicate request detected
{
"isSuccess": false,
"statusCode": 429,
"message": {
"errorCode": "DUPLICATE_REQUEST",
"errorMessage": "Duplicate request. Please try again after a short wait."
}
}
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
Body: Empty
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"currentCredit": 1000.50,
"coinCurrentCoin": 500,
"baseCurrency": "THB",
"convertRate": 1,
"showLastPromotionMessage": false
}
}
404 Not Found Member not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "MEMBER_NOT_FOUND",
"errorMessage": "Member not found"
}
}
429 Too Many Requests Duplicate request detected
{
"isSuccess": false,
"statusCode": 429,
"message": {
"errorCode": "DUPLICATE_REQUEST",
"errorMessage": "Duplicate request. Please try again after a short wait."
}
}
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
Body: Empty
200 OK Success
Note: The otp field is only returned in development/staging
environments. In production, the OTP is sent via SMS and not included in the response.
Development/Staging Response:
{
"isSuccess": true,
"statusCode": 200,
"data": {
"otp": "4496",
"referCode": "7fp25p"
}
}
Production Response:
{
"isSuccess": true,
"statusCode": 200,
"data": {
"referCode": "7fp25p"
}
}
404 Not Found Member or Partner not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "MEMBER_NOT_FOUND",
"errorMessage": "Member not found"
}
}
403 Forbidden Partner disabled
{
"isSuccess": false,
"statusCode": 403,
"message": {
"errorCode": "UNABLE_TO_SEND_OTP",
"errorMessage": "Unable to send OTP message [DX]"
}
}
429 Too Many Requests Duplicate request detected
{
"isSuccess": false,
"statusCode": 429,
"message": {
"errorCode": "DUPLICATE_REQUEST",
"errorMessage": "Duplicate request. Please try again after a short wait."
}
}
500 Internal Server Error Unable to send OTP
{
"isSuccess": false,
"statusCode": 500,
"message": {
"errorCode": "UNABLE_TO_SEND_OTP",
"errorMessage": "Unable to send OTP message"
}
}
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Content-Type |
string | Yes | application/json |
Authorization |
string | Yes | Bearer {accessToken} |
Body:
| Field | Type | Required | Description |
|---|---|---|---|
oldPassword |
string | Yes | Current password of the member |
newPassword |
string | Yes | New password for the member account |
confirmNewPassword |
string | Yes | Confirmation of the new password (must match newPassword) |
otp |
string | Yes | OTP code received via SMS from change password OTP request |
{
"oldPassword": "oldPassword123",
"newPassword": "newPassword123",
"confirmNewPassword": "newPassword123",
"otp": "123456"
}
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"message": "Password changed successfully"
}
}
400 Bad Request Current password required
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "CURRENT_PASSWORD_REQUIRED",
"errorMessage": "Please provide current password"
}
}
400 Bad Request Current password incorrect
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "CURRENT_PASSWORD_INCORRECT",
"errorMessage": "Please enter the current password correctly"
}
}
400 Bad Request Password confirmation mismatch
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "PASSWORD_CONFIRMATION_MISMATCH",
"errorMessage": "Please enter the new password confirmation correctly"
}
}
400 Bad Request Invalid OTP
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "OTP_INVALID",
"errorMessage": "Invalid OTP"
}
}
410 Gone OTP expired
{
"isSuccess": false,
"statusCode": 410,
"message": {
"errorCode": "OTP_EXPIRED",
"errorMessage": "OTP expired"
}
}
429 Too Many Requests Duplicate request detected
{
"isSuccess": false,
"statusCode": 429,
"message": {
"errorCode": "DUPLICATE_REQUEST",
"errorMessage": "Duplicate request. Please try again after a short wait."
}
}
500 Internal Server Error Unable to change password
{
"isSuccess": false,
"statusCode": 500,
"message": {
"errorCode": "UNABLE_TO_CHANGE_PASSWORD",
"errorMessage": "Unable to change password"
}
}
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Content-Type |
string | Yes | application/json |
Authorization |
string | Yes | Bearer {accessToken} |
Body:
| Field | Type | Required | Description |
|---|---|---|---|
paymentCode |
string | Yes | Bank code name (e.g., "KBANK", "SCB", "BBL") |
paymentNumber |
string | Yes | Bank account number |
paymentName |
string | Yes | Account holder name |
{
"paymentCode": "KBANK",
"paymentNumber": "1234567890",
"paymentName": "John Doe"
}
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"message": "Bank account registration successful"
}
}
400 Bad Request Bank account already exists
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "BANK_ACCOUNT_ALREADY_EXISTS",
"errorMessage": "Bank account already exists"
}
}
404 Not Found User not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "USER_NOT_FOUND",
"errorMessage": "User not found"
}
}
429 Too Many Requests Duplicate request detected
{
"isSuccess": false,
"statusCode": 429,
"message": {
"errorCode": "DUPLICATE_REQUEST",
"errorMessage": "Duplicate request. Please try again after a short wait."
}
}