POST
/api/merchant-to-merchant/transferSend Transaction
Initiate a fund transfer to another merchant's account. The sender's balance is debited and the receiver's balance is credited immediately.
Overview
The Merchant-to-Merchant Transfer API allows an active merchant to securely transfer funds directly to another active merchant account within the platform. The transaction is processed atomically and isolated using database-level locking to prevent race conditions or negative balance issues.
Authentication
Authorization: Bearer <YOUR_SECRET_KEY>
Headers
Request Headers
Authorizationrequired
Bearer <YOUR_SECRET_KEY> (your merchant API secret key)
Content-Typerequired
application/json
Request Body
Body Parameters
application/json
receiverMerchantIdrequired
String (UUID)The UUID of the target merchant receiving the transfer.
amountrequired
StringAmount to transfer. Must be a positive value with up to 2 decimal places (e.g. "1500.00").
currencyoptional
StringCurrency code (e.g. "PKR", "THB"). Defaults to the sender's currency if omitted.
Code Examples
curl -X POST "https://api.panel.Luxkgate.ca/api/merchant-to-merchant/transfer" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"receiverMerchantId": "23e7a99f-8211-4b00-855e-0646e991118d",
"amount": "500.00",
"currency": "PKR"
}'Response
Status Codes
201
Transfer executed successfully.400
Invalid request data, non-positive amount, or transfer to oneself.401
Authentication failed (missing or invalid Bearer secret).403
Insufficient balance or inactive merchant status.404
Receiver merchant not found.Success Response
Example response for a successful request
{
"id": "e93ab3f9-7159-4f51-bfa0-5d6614ae4ebc",
"type": "transfer",
"status": "success",
"amount": "500.00",
"fee_amount": "0.00",
"net_amount": "500.00",
"currency": "PKR",
"merchant_id": "8c08ec66-c23b-4d80-86d5-261b2e994c1f",
"receiver_merchant_id": "23e7a99f-8211-4b00-855e-0646e991118d",
"createdAt": "2026-06-02T09:12:41.000Z",
"updatedAt": "2026-06-02T09:12:41.000Z",
"senderName": "Sender Merchant Ltd",
"receiverName": "Receiver Merchant Ltd",
"direction": "sent",
"isSender": true
}