curl --request POST \
--url https://business.planewallet.org/api/v1/card-account/invoices \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"amount": "50.00",
"walletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: '50.00', walletId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://business.planewallet.org/api/v1/card-account/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://business.planewallet.org/api/v1/card-account/invoices"
payload = {
"amount": "50.00",
"walletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"environment": "<string>",
"status": "creating",
"depositAmount": "100.00",
"fee": "1.49",
"creditAmount": "99.00",
"totalDebit": "100.49",
"address": "<string>",
"walletId": "<string>",
"pricingVersion": "nominal_150",
"payAmount": "100.024",
"asset": "<string>",
"network": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 123,
"message": "<string>"
}Create a card account invoice
Required permission: funding:write. Idempotent. Transfer the exact payAmount of USDT on TRON to address before expiresAt. The issuer confirms settlement; never infer credit from a client transaction ID. Only one unresolved invoice is allowed per workspace/environment. Creating or ambiguous requests are never automatically repeated. Network fees require TRX in the sender wallet.
curl --request POST \
--url https://business.planewallet.org/api/v1/card-account/invoices \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"amount": "50.00",
"walletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: '50.00', walletId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://business.planewallet.org/api/v1/card-account/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://business.planewallet.org/api/v1/card-account/invoices"
payload = {
"amount": "50.00",
"walletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"environment": "<string>",
"status": "creating",
"depositAmount": "100.00",
"fee": "1.49",
"creditAmount": "99.00",
"totalDebit": "100.49",
"address": "<string>",
"walletId": "<string>",
"pricingVersion": "nominal_150",
"payAmount": "100.024",
"asset": "<string>",
"network": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 123,
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
128Body
Deposit nominal in whole USD, minimum 10 USD or the issuer minimum; 10, 11, 12 and so on. The issuer deducts 1% of this nominal. The total customer fee remains 1.5% of credit, rounded upward to cents, and includes that deduction. Nominal 100.00 credits 99.00; fee 1.49; total debit 100.49 USDT before separate TRX network fees.
^\d+(\.\d{1,2})?$"50.00"
Required for API keys: an active Plane wallet in this workspace and Live environment. Console requests default to the signed-in user wallet.
Response
Success
creating, pending, completed, expired, failed, manual_review ^\d+(\.\d{1,2})?$"100.00"
Total customer fee on creditAmount, including the issuer deduction; rounded upward to cents.
^\d+(\.\d{1,2})?$"1.49"
Actual amount credited after the issuer deduction.
^\d+(\.\d{1,2})?$"99.00"
creditAmount plus fee. TRX network fees are separate.
^\d+(\.\d{1,2})?$"100.49"
"nominal_150"
Exact USDT transfer amount; up to 6 decimals. Never round this value.
"100.024"