Complete API reference for Member Payment V2 endpoints
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
page |
number | Optional | Page number (default: 1) |
limit |
number | Optional | Number of items per page (default: 10) |
period |
string | Optional | Date period filter: "today", "7d", "30d", "90d" |
startDate |
string | Optional | Start date filter (ISO date string) |
endDate |
string | Optional | End date filter (ISO date string) |
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
Body: Empty
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"list": [
{
"id": 1,
"transactionRef": "TXN123456",
"transactionType": "DEPOSIT",
"status": "SUCCESS",
"amount": 1000.00,
"feeAmount": 0.00,
"netAmount": 1000.00,
"currency": "THB",
"createdAt": "2024-01-15T10:00:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 25,
"totalPages": 3
}
}
}
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."
}
}
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
page |
number | Optional | Page number (default: 1) |
limit |
number | Optional | Number of items per page (default: 10) |
period |
string | Optional | Date period filter: "today", "7d", "30d", "90d" |
startDate |
string | Optional | Start date filter (ISO date string) |
endDate |
string | Optional | End date filter (ISO date string) |
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
Body: Empty
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"list": [
{
"id": 1,
"transactionRef": "TXN123456",
"transactionType": "DEPOSIT",
"status": "SUCCESS",
"amount": 1000.00,
"feeAmount": 0.00,
"netAmount": 1000.00,
"currency": "THB",
"createdAt": "2024-01-15T10:00:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 15,
"totalPages": 2
}
}
}
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."
}
}
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
page |
number | Optional | Page number (default: 1) |
limit |
number | Optional | Number of items per page (default: 10) |
period |
string | Optional | Date period filter: "today", "7d", "30d", "90d" |
startDate |
string | Optional | Start date filter (ISO date string) |
endDate |
string | Optional | End date filter (ISO date string) |
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
Body: Empty
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"list": [
{
"id": 2,
"transactionRef": "TXN789012",
"transactionType": "WITHDRAW",
"status": "PENDING",
"amount": 500.00,
"feeAmount": 0.00,
"netAmount": 500.00,
"currency": "THB",
"createdAt": "2024-01-15T11:00:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 10,
"totalPages": 1
}
}
}
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."
}
}
Body:
| Field | Type | Required | Description |
|---|---|---|---|
amount |
number | Yes | Deposit amount (must be a whole number, no decimals) |
depositAccountNumber |
string | Yes | Destination account number |
depositAccountBank |
string | Yes | Destination bank code (e.g., "KBANK", "SCB") |
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"transactionRef": "TXN123456",
"amount": 1000,
"accounts": {
"from": {
"code": "KBANK",
"number": "1234567890",
"name": "John Doe"
},
"to": {
"code": "KBANK",
"number": "0987654321",
"name": "Account Name"
}
},
"message": "Deposit order created successfully"
}
}
400 Bad Request Invalid amount (decimals not allowed)
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "INVALID_AMOUNT",
"errorMessage": "Amount must be a whole number"
}
}
400 Bad Request Bank account required
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "BANK_ACCOUNT_REQUIRED",
"errorMessage": "Please register your bank account before making a deposit"
}
}
400 Bad Request Payment account not found
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "PAYMENT_ACCOUNT_NOT_FOUND",
"errorMessage": "Deposit account not found"
}
}
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."
}
}
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
uid |
string | Yes | Transaction reference (transactionRef) |
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
Body: Empty
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"transactionRef": "TXN123456",
"amount": 1000.00,
"feeAmount": 0.00,
"netAmount": 1000.00,
"status": "PENDING",
"currency": "THB",
"requestedAt": "2024-01-15T10:00:00.000Z",
"processedAt": null,
"completedAt": null,
"cancelledAt": null,
"failedAt": null,
"failureReason": null,
"metadata": {},
"paymentAccountV2": {
"paymentCodeName": "KBANK",
"accountNumber": "0987654321",
"accountName": "Account Name"
},
"statusLogs": [
{
"status": "PENDING",
"event": "CREATED",
"note": "SLIP123",
"createdAt": "2024-01-15T10:00:00.000Z"
}
]
}
}
404 Not Found Deposit order not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "DEPOSIT_ORDER_NOT_FOUND",
"errorMessage": "Deposit order 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."
}
}
Body:
| Field | Type | Required | Description |
|---|---|---|---|
amount |
number | Yes | Withdraw amount (ignored if partner has force full withdraw enabled) |
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"id": 1,
"transactionRef": "TXN789012",
"transactionType": "WITHDRAW",
"status": "PENDING",
"amount": 500.00,
"feeAmount": 0.00,
"netAmount": 500.00,
"currency": "THB",
"createdAt": "2024-01-15T11:00:00.000Z"
}
}
400 Bad Request Withdraw disabled
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "WITHDRAW_DISABLED",
"errorMessage": "Withdraw is not allowed"
}
}
400 Bad Request Invalid amount
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "WITHDRAW_INVALID_AMOUNT",
"errorMessage": "Invalid withdraw amount"
}
}
400 Bad Request Too frequent requests
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "WITHDRAW_REQUEST_TOO_FREQUENT",
"errorMessage": "Please wait before making another withdraw request"
}
}
400 Bad Request Duplicate request
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "DUPLICATE_REQUEST",
"errorMessage": "Duplicate request detected"
}
}
404 Not Found Member not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "MEMBER_NOT_FOUND",
"errorMessage": "Member not found"
}
}
406 Not Acceptable Insufficient balance
{
"isSuccess": false,
"statusCode": 406,
"message": {
"errorCode": "WITHDRAW_INSUFFICIENT_BALANCE",
"errorMessage": "Insufficient balance"
}
}
406 Not Acceptable Payment service unavailable
{
"isSuccess": false,
"statusCode": 406,
"message": {
"errorCode": "PAYMENT_SERVICE_UNAVAILABLE",
"errorMessage": "Cannot transfer to bank at this time"
}
}
Body:
| Field | Type | Required | Description |
|---|---|---|---|
uid |
string | Yes | Transaction reference (transactionRef) |
bracketUid |
string | Yes | Bracket transaction reference |
qrcode |
string | Yes | QR code data from payment slip |
Headers:
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer {accessToken} |
200 OK Success
{
"isSuccess": true,
"statusCode": 200,
"data": {
"message": "Slip uploaded successfully"
}
}
400 Bad Request Incomplete information
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "INVALID_REQUEST",
"errorMessage": "Incomplete information"
}
}
400 Bad Request Invalid QR code
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "QR_CODE_INVALID",
"errorMessage": "Invalid QR code"
}
}
400 Bad Request Transaction already processed
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "DEPOSIT_ORDER_ALREADY_PROCESSED",
"errorMessage": "This deposit transaction has already been processed"
}
}
400 Bad Request Transaction expired
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "DEPOSIT_ORDER_EXPIRED",
"errorMessage": "This deposit transaction has expired"
}
}
400 Bad Request QR code verification failed
{
"isSuccess": false,
"statusCode": 400,
"message": {
"errorCode": "QR_CODE_VERIFICATION_FAILED",
"errorMessage": "Sender bank code does not match deposit bank code"
}
}
404 Not Found Deposit transaction not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "DEPOSIT_ORDER_NOT_FOUND",
"errorMessage": "Deposit transaction not found"
}
}
404 Not Found Payment account not found
{
"isSuccess": false,
"statusCode": 404,
"message": {
"errorCode": "PAYMENT_ACCOUNT_NOT_FOUND",
"errorMessage": "Deposit account not found or disabled"
}
}