curl --request POST \
--url "https://api.stablepay.co/api/v1/fund/account_transfers" \
--header "Authorization: Bearer <API_KEY>" \
--header "X-StablePay-Timestamp: <TIMESTAMP>" \
--header "X-StablePay-Nonce: <NONCE>" \
--header "X-StablePay-Signature: <SIGNATURE>" \
--header "Content-Type: application/json" \
--data '{
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002"
}'
const response = await fetch("https://api.stablepay.co/api/v1/fund/account_transfers", {
method: "POST",
headers: {
"Authorization": "Bearer <API_KEY>",
"X-StablePay-Timestamp": "<TIMESTAMP>",
"X-StablePay-Nonce": "<NONCE>",
"X-StablePay-Signature": "<SIGNATURE>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002"
})
});
console.log(await response.json());
{
"account_transfer_id": "9000000034",
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002",
"status": "completed",
"created": 1718726401
}
Global Accounts API
Create an account transfer
Create an account transfer
POST
/
api
/
v1
/
fund
/
account_transfers
curl --request POST \
--url "https://api.stablepay.co/api/v1/fund/account_transfers" \
--header "Authorization: Bearer <API_KEY>" \
--header "X-StablePay-Timestamp: <TIMESTAMP>" \
--header "X-StablePay-Nonce: <NONCE>" \
--header "X-StablePay-Signature: <SIGNATURE>" \
--header "Content-Type: application/json" \
--data '{
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002"
}'
const response = await fetch("https://api.stablepay.co/api/v1/fund/account_transfers", {
method: "POST",
headers: {
"Authorization": "Bearer <API_KEY>",
"X-StablePay-Timestamp": "<TIMESTAMP>",
"X-StablePay-Nonce": "<NONCE>",
"X-StablePay-Signature": "<SIGNATURE>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002"
})
});
console.log(await response.json());
{
"account_transfer_id": "9000000034",
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002",
"status": "completed",
"created": 1718726401
}
See authentication, signing, data conventions, and errors. Regenerate the timestamp, nonce, and signature on every retry.
POST /fund/account_transfers Moves same-currency funds between two accounts of the same merchant; synchronous.
Request headers
string
required
Bearer API Key.
string
required
Unix seconds, within five minutes of server time.
string
required
Unique per request, 16–64 characters.
string
required
Lowercase hexadecimal HMAC-SHA256 signature for the exact request body.
string
Idempotency key
Request parameters
string
10 digits; omit for merchant apps, required for service-provider apps
string
Business reference
string
required
Currency shared by both accounts
integer
required
Amount
string
required
Source account
string
required
Target account
object
Custom metadata
Response
string
required
Transfer ID
string
required
Merchant ID
string
Business reference
string
required
Currency
integer
required
Amount
string
required
Source account
string
required
Target account
string
required
completed
integer
required
Creation time
Status and errors
400 invalid parameters; 409 insufficient funds or idempotency conflict.curl --request POST \
--url "https://api.stablepay.co/api/v1/fund/account_transfers" \
--header "Authorization: Bearer <API_KEY>" \
--header "X-StablePay-Timestamp: <TIMESTAMP>" \
--header "X-StablePay-Nonce: <NONCE>" \
--header "X-StablePay-Signature: <SIGNATURE>" \
--header "Content-Type: application/json" \
--data '{
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002"
}'
const response = await fetch("https://api.stablepay.co/api/v1/fund/account_transfers", {
method: "POST",
headers: {
"Authorization": "Bearer <API_KEY>",
"X-StablePay-Timestamp": "<TIMESTAMP>",
"X-StablePay-Nonce": "<NONCE>",
"X-StablePay-Signature": "<SIGNATURE>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002"
})
});
console.log(await response.json());
{
"account_transfer_id": "9000000034",
"merchant_id": "2000000001",
"currency": "USDC",
"amount": 500000,
"source_account_no": "00000001",
"target_account_no": "00000002",
"status": "completed",
"created": 1718726401
}
Last modified on October 29, 2026
Was this page helpful?
