/deposit/paydCreate Payment
Initiate a new payment deposit request to generate payment details or an upload slip reference.
Overview
The Create Payment API allows a merchant to initialize a deposit using the PayD gateway. You must provide the customer's personal details and banking information to receive a transaction reference for processing the deposit.
Authentication
Headers
AuthorizationBearer <YOUR_SECRET_KEY> (your merchant API secret key)
Content-Typeapplication/json
Request Body
amountDeposit amount (e.g. 50).
userNameCustomer's username or full name string.
firstNameCustomer's first name.
lastNameCustomer's last name.
bankNameName of the customer's bank (e.g. "kasikorn bank").
accountNumberCustomer's bank account number.
Code Examples
curl -X POST "https://api.luxkgate.com/deposit/payd" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 1500,
"userName": "janedoe99",
"firstName": "Jane",
"lastName": "Doe",
"bankName": "SCB",
"accountNumber": "09876543213423"
}'Response
Status Codes
{
"status": 1001,
"message": "success",
"data": {
"orderId": "d52b3b72-fa3c-4545-81f5-99dd59b0fd80",
"url": "https://airzpay.info/view-bank-details/wL6iwSWPX52hGboO"
}
}Next Steps: Completing the Payment
The response includes a data.url (e.g. https://airzpay.info/view-bank-details/...). You must redirect your customer to this URL, where they will see the bank details and a QR Code to complete the payment. After paying, they may need to upload their payment slip using the Upload Payment Slip endpoint below.
/deposit/payd/upload-slipUpload Payment Slip
Submit a payment receipt or slip image to verify and confirm a deposit transaction.
Overview
The Upload Slip API is used to submit a proof of payment (such as a bank receipt image) associated with a specific transaction order ID. The image must be base64-encoded.
Request Body
orderIdThe unique transaction ID for this deposit.
refThe reference code obtained from the Create Payment response.
base64ImageThe base64 encoded string of the receipt/slip image (e.g. data:image/jpeg;base64,...).
Code Examples
curl -X POST "https://api.luxkgate.com/deposit/payd/upload-slip" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"orderId": "order_id",
"ref": "reference",
"base64Image": "iVBORw0KGgoAAAANSUhEUgAABQAAAAR+CAIAAAAA2Q..."
}'Response
Status Codes
{
"status": 1001,
"message": "Slip uploaded successfully",
"data": {}
}/deposit/payd/webhookProvider Webhook
Asynchronous callback endpoint called by the payment provider (PayD) to update transaction status.
Overview
The webhook endpoint receives real-time updates regarding deposit transactions directly from the PayD gateway. Once the transaction is successfully processed or declined, the provider will send a POST request here to update the transaction status and update the merchant's balance automatically.
Request Body
orderIdThe unique transaction order ID that was passed during payment creation.
statusThe new status of the transaction (e.g. "success", "1001", "failed", "declined").
Code Examples
curl -X POST "https://api.luxkgate.com//deposit/payd/webhook" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"orderId": "order_id",
"status": "success"
}'Response
Status Codes
{
"status": true,
"message": "Callback processed successfully"
}/withdraw/paydCreate Withdrawal
Initiate a new withdrawal payout request to transfer funds to a customer's bank account.
Overview
The Create Withdrawal API allows a merchant to initialize a payout using the PayD gateway. You must provide the customer's personal details and banking information to process the withdrawal.
Request Body
amountWithdrawal amount (e.g. 51).
usernameCustomer's username.
bankNameName of the customer's bank (e.g. "kasikorn bank").
accountNumberCustomer's bank account number.
firstNameTHCustomer's first name in Thai.
lastNameTHCustomer's last name in Thai.
Code Examples
curl -X POST "https://api.luxkgate.com/withdraw/payd" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 51,
"username": "username",
"bankName": "bank_name",
"accountNumber": "account_number",
"firstNameTH": "first_name_th",
"lastNameTH": "last_name_th"
}'Response
Status Codes
{
"status": 1001,
"message": "success",
"orderId": "order_id"
}/withdraw/payd/webhookWithdrawal Webhook
Asynchronous callback endpoint called by the payment provider (PayD) to update withdrawal transaction status.
Overview
The withdrawal webhook endpoint receives real-time updates regarding withdrawal transactions directly from the PayD gateway. Once the withdrawal is successfully processed or declined, the provider will send a POST request here to notify the merchant.
Request Body
orderIdThe unique transaction order ID that was generated during withdrawal creation.
statusThe new status of the withdrawal transaction (e.g. "success", "failed").
Code Examples
curl -X POST "https://api.luxkgate.com/withdraw/payd/webhook" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"orderId": "order_id",
"status": "success"
}'Response
Status Codes
{
"status": true,
"message": "Callback processed successfully"
}