All API resources
Balances and payments
Read buyer account balances and payment history, and the seller balance and payout history.
List account balances
POST/buyers/balance
Returns every buyer account you own, blocked ones included, with its balance, credit limit and low-balance alert settings, sorted by name. An account that spends another account's balance (use_balance greater than 0) also carries parent_name and parent_balance. Free.
pager and off in the form body; they are ignored in the query string. Balances are unrounded decimal strings.Parameters
pagerintegerform fieldOptionalMaximum number of accounts to return.
offintegerform fieldOptionalNumber of accounts to skip, for paging.
curl --digest -u "$TCXC_USERNAME:$TCXC_API_KEY" -X POST \
"https://apiv2.telecomsxchange.com/buyers/balance" \
-d pager=30 \
-d off=0import os
import requests
from requests.auth import HTTPDigestAuth
resp = requests.post(
"https://apiv2.telecomsxchange.com/buyers/balance",
auth=HTTPDigestAuth(os.environ["TCXC_USERNAME"], os.environ["TCXC_API_KEY"]),
data={"pager": 30, "off": 0},
)
print(resp.json())$ch = curl_init("https://apiv2.telecomsxchange.com/buyers/balance");
curl_setopt_array($ch, [
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
CURLOPT_USERPWD => getenv('TCXC_USERNAME') . ':' . getenv('TCXC_API_KEY'),
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => http_build_query(['pager' => 30, 'off' => 0]),
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);{
"status": "success",
"accounts": [
{
"i_account": "1855",
"name": "A2P-Traffic",
"ip_address": "",
"currency": "USD",
"balance": "0",
"use_balance": "1022",
"credit_limit": "0",
"i_customer": "1014",
"blocked": "0",
"notification_balance": null,
"last_notification_status": "1",
"smpp": "1",
"parent_name": "Northwind",
"parent_balance": "4106.060233818736"
},
{
"i_account": "1022",
"name": "Northwind",
"ip_address": "203.0.113.15",
"currency": "USD",
"balance": "4106.060233818736",
"use_balance": "0",
"credit_limit": "60000",
"i_customer": "1014",
"blocked": "0",
"notification_balance": "1000",
"last_notification_status": "0",
"smpp": "0"
}
]
}List payment history
POST/buyers/payhistory
Returns the payments and charges posted to all of your buyer accounts between date_from and date_to, newest first: top-ups, bank-wire credits, DID monthly fees and other balance adjustments. Each row names the account and the payment method. Free.
amount is a formatted string with a thousands separator, such as "10,000.00". status is new, confirmed or declined. Send download=1 to get every matching transaction in one response, without paging.Parameters
date_fromstringform fieldRequiredStart of the range, inclusive, as YYYY-MM-DD HH:MM:SS.
date_tostringform fieldRequiredEnd of the range, inclusive, as YYYY-MM-DD HH:MM:SS.
i_payment_systemintegerform fieldOptionalOnly return transactions from this payment method: 1 for manual payments such as bank wire, 2 for PayPal. 0 returns all.
amountstringform fieldOptionalOnly return transactions of exactly this amount, for example -1.00.
notesstringform fieldOptionalOnly return transactions whose note contains this text, for example DID.
pagerintegerform fieldOptionalMaximum number of transactions to return.
offintegerform fieldOptionalNumber of transactions to skip, for paging.
Errors
| Message | When |
|---|---|
"Wrong date_from format, expected YYYY-MM-DD HH:MM:SS" | date_from is missing or is not a YYYY-MM-DD HH:MM:SS timestamp |
"Wrong date_to format, expected YYYY-MM-DD HH:MM:SS" | date_to is missing or is not a YYYY-MM-DD HH:MM:SS timestamp |
curl --digest -u "$TCXC_USERNAME:$TCXC_API_KEY" -X POST \
"https://apiv2.telecomsxchange.com/buyers/payhistory" \
-d date_from='2026-01-01 00:00:00' \
-d date_to='2026-09-30 23:59:59' \
-d i_payment_system=0 \
-d pager=50 \
-d off=0import os
import requests
from requests.auth import HTTPDigestAuth
resp = requests.post(
"https://apiv2.telecomsxchange.com/buyers/payhistory",
auth=HTTPDigestAuth(os.environ["TCXC_USERNAME"], os.environ["TCXC_API_KEY"]),
data={"date_from": "2026-01-01 00:00:00", "date_to": "2026-09-30 23:59:59", "i_payment_system": 0, "pager": 50, "off": 0},
)
print(resp.json())$ch = curl_init("https://apiv2.telecomsxchange.com/buyers/payhistory");
curl_setopt_array($ch, [
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
CURLOPT_USERPWD => getenv('TCXC_USERNAME') . ':' . getenv('TCXC_API_KEY'),
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => http_build_query(['date_from' => "2026-01-01 00:00:00", 'date_to' => "2026-09-30 23:59:59", 'i_payment_system' => 0, 'pager' => 50, 'off' => 0]),
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);{
"status": "success",
"transactions": [
{
"i_transaction": "48213",
"i_account": "1022",
"i_payment_system": "1",
"currency": "USD",
"amount": "-1.00",
"status": "confirmed",
"ts": "2026-09-06 12:00:01",
"notepad": "Monthly charge for DID 15550104411",
"account_name": "Northwind",
"ps_name": "Manual Payment"
},
{
"i_transaction": "47702",
"i_account": "1022",
"i_payment_system": "1",
"currency": "USD",
"amount": "10,000.00",
"status": "confirmed",
"ts": "2026-08-23 10:53:02",
"notepad": "BANK WIRE",
"account_name": "Northwind",
"ps_name": "Manual Payment"
}
]
}Get seller balance
POST/sellers/balance
Returns your seller balance: the earnings available for payout, in USD. Authenticate with your seller login and seller API key. Free.
Parameters
No parameters.
curl --digest -u "$TCXC_USERNAME:$TCXC_API_KEY" -X POST \
"https://apiv2.telecomsxchange.com/sellers/balance"import os
import requests
from requests.auth import HTTPDigestAuth
resp = requests.post(
"https://apiv2.telecomsxchange.com/sellers/balance",
auth=HTTPDigestAuth(os.environ["TCXC_USERNAME"], os.environ["TCXC_API_KEY"]),
)
print(resp.json())$ch = curl_init("https://apiv2.telecomsxchange.com/sellers/balance");
curl_setopt_array($ch, [
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
CURLOPT_USERPWD => getenv('TCXC_USERNAME') . ':' . getenv('TCXC_API_KEY'),
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);{
"status": "success",
"balance": "22631.2636213539752"
}List payout history
POST/sellers/payhistory
Returns the payouts TCXC has sent you as a seller, such as bank wires and PayPal transfers, between date_from and date_to, newest first. Authenticate with your seller login and seller API key. Free.
download=1 to get every matching payout in one response, without paging.Parameters
date_fromstringform fieldRequiredStart of the range, inclusive, as YYYY-MM-DD HH:MM:SS.
date_tostringform fieldRequiredEnd of the range, inclusive, as YYYY-MM-DD HH:MM:SS.
amountstringform fieldOptionalOnly return payouts of exactly this amount.
notesstringform fieldOptionalOnly return payouts whose note contains this text, for example wire.
pagerintegerform fieldOptionalMaximum number of payouts to return.
offintegerform fieldOptionalNumber of payouts to skip, for paging.
Errors
| Message | When |
|---|---|
"Wrong date_from format, expected YYYY-MM-DD HH:MM:SS" | date_from is missing or is not a YYYY-MM-DD HH:MM:SS timestamp |
"Wrong date_to format, expected YYYY-MM-DD HH:MM:SS" | date_to is missing or is not a YYYY-MM-DD HH:MM:SS timestamp |
curl --digest -u "$TCXC_USERNAME:$TCXC_API_KEY" -X POST \
"https://apiv2.telecomsxchange.com/sellers/payhistory" \
-d date_from='2026-01-01 00:00:00' \
-d date_to='2026-09-30 23:59:59' \
-d pager=50 \
-d off=0import os
import requests
from requests.auth import HTTPDigestAuth
resp = requests.post(
"https://apiv2.telecomsxchange.com/sellers/payhistory",
auth=HTTPDigestAuth(os.environ["TCXC_USERNAME"], os.environ["TCXC_API_KEY"]),
data={"date_from": "2026-01-01 00:00:00", "date_to": "2026-09-30 23:59:59", "pager": 50, "off": 0},
)
print(resp.json())$ch = curl_init("https://apiv2.telecomsxchange.com/sellers/payhistory");
curl_setopt_array($ch, [
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
CURLOPT_USERPWD => getenv('TCXC_USERNAME') . ':' . getenv('TCXC_API_KEY'),
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => http_build_query(['date_from' => "2026-01-01 00:00:00", 'date_to' => "2026-09-30 23:59:59", 'pager' => 50, 'off' => 0]),
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);{
"status": "success",
"transactions": [
{
"i_payout": "2873",
"i_vendor": "287",
"amount": "500",
"i_admin": "0",
"ts": "2026-08-24 22:14:41",
"notepad": "Bank Wire"
},
{
"i_payout": "2865",
"i_vendor": "287",
"amount": "23000",
"i_admin": "0",
"ts": "2026-07-22 15:24:58",
"notepad": "Bank Wire"
}
]
}