API reference
Billing
Ledger, invoices, statements, spending and exports. All amounts are USD 6-decimal strings.
BrowseBilling
List ledger transactions
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Your account ledger, newest first, cursor-paginated. Filter by type and an ISO date range (inclusive from, exclusive to). With format=csv the response is a CSV file of every matching row (up to 10,000) instead of JSON.
Parameters
typequery · string
One of topup, charge, credit, payout, platform_fee, test_creditfromquery · string (date-time)
Inclusive start (ISO-8601)toquery · string (date-time)
Exclusive end (ISO-8601)cursorquery · string (uuid)
ThenextCursorfrom the previous pagelimitquery · integer
Default 25formatquery · string
csv streams every matching row (up to 10,000) as a spreadsheet fileOne of json, csv
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
userIdrequiredstring (uuid) · data[].userId
typerequiredstring · data[].type
charge = usage you paid for; credit = seller earnings or a grant; platform_fee = the exchange feeOne oftopup,charge,credit,payout,platform_fee,test_credit,chargeback,refund_reversal,refund,transferamountrequiredmoney · data[].amount
Signed: negative for money out (charges, fees, payouts), positive for money in USD as a decimal string with exactly 6 places, e.g. "0.012500".balanceAfterrequiredmoney · data[].balanceAfter
USD as a decimal string with exactly 6 places, e.g. "0.012500".referencerequiredstring | null · data[].reference
relatedEntityTyperequiredstring | null · data[].relatedEntityType
relatedEntityIdrequiredstring (uuid) | null · data[].relatedEntityId
callIdstring | null · data[].callId
The call or message this line bills; equals the CDR callUuidcreatedAtrequiredstring (date-time) · data[].createdAt
ISO-8601 timestamp (UTC)nextCursorrequiredstring | null
Pass ascursorto fetch the next page; null on the last page.hasMorerequiredboolean
True when another page exists.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get your spending and earnings summary
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Dashboard totals: spending (all time and today, UTC), seller earnings (all time, 30 days, today), active purchases and campaigns, and the withdrawable versus held part of your balance.
Response 200
datarequiredobject
totalSpendingrequiredmoney · data.totalSpending
USD as a decimal string with exactly 6 places, e.g. "0.012500".totalTransactionsrequiredinteger · data.totalTransactions
spendingTodayrequiredmoney · data.spendingToday
USD as a decimal string with exactly 6 places, e.g. "0.012500".transactionsTodayrequiredinteger · data.transactionsToday
activePurchasesrequiredinteger · data.activePurchases
runningCampaignsrequiredinteger · data.runningCampaigns
totalCampaignsrequiredinteger · data.totalCampaigns
totalEarningsrequiredmoney · data.totalEarnings
USD as a decimal string with exactly 6 places, e.g. "0.012500".earnings30drequiredmoney · data.earnings30d
USD as a decimal string with exactly 6 places, e.g. "0.012500".earningsTodayrequiredmoney · data.earningsToday
USD as a decimal string with exactly 6 places, e.g. "0.012500".availableBalancerequiredmoney · data.availableBalance
Withdrawable now USD as a decimal string with exactly 6 places, e.g. "0.012500".heldBalancerequiredmoney · data.heldBalance
Card top-ups still inside the chargeback hold window USD as a decimal string with exactly 6 places, e.g. "0.012500".
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get seller earnings broken down by route
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Top 50 routes by earnings over the last days. Attribution comes from call records, so it is partial: records without a route land in an "Unattributed" row, and the total can differ slightly from the credit ledger (attribution: "partial").
Parameters
daysquery · integer
Default 30
Response 200
datarequiredobject[]
routeIdrequiredstring (uuid) | null · data[].routeId
destinationNamerequiredstring · data[].destinationName
creditsrequiredmoney · data[].credits
USD as a decimal string with exactly 6 places, e.g. "0.012500".countrequiredinteger · data[].count
daysinteger
attributionstring
One ofpartial
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get your outbound usage grouped by destination country
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Records, voice sessions, answered sessions, minutes, SMS segments, ASR, ACD and cost per destination country. ASR is voice-only and counted over customer sessions (a failed-over call counts once). With no dates the window is all time; basis.window states the window used. format=csv returns a CSV file.
Parameters
fromquery · string (date-time)
toquery · string (date-time)
formatquery · string
One of json, csv
Response 200
datarequiredobject[]
countryrequiredstring · data[].country
countryCoderequiredstring | null · data[].countryCode
attemptsrequiredinteger · data[].attempts
Deprecated: same asrecords(a row count, not a call count)recordsrequiredinteger · data[].records
voiceSessionsrequiredinteger · data[].voiceSessions
answeredrequiredinteger · data[].answered
minutesrequirednumber · data[].minutes
segmentsrequiredinteger · data[].segments
asrrequirednumber | null · data[].asr
Percent, voice only; null with no voice sessionsasrBasisrequiredobject · data[].asrBasis
Which population and window the ASR countsacdrequirednumber | null · data[].acd
Average answered duration in secondscostrequiredmoney · data[].cost
USD as a decimal string with exactly 6 places, e.g. "0.012500".basisobject
populationrequiredstring · basis.population
One ofcustomer_sessionswindowrequiredstring · basis.window
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get your end-of-day balance history
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
One point per UTC day that had ledger activity. Balances here are plain JSON numbers for charting, not ledger strings.
Parameters
daysquery · integer
Default 30
Response 200
datarequiredobject
pointsrequiredobject[] · data.points
daterequiredstring · data.points[].date
YYYY-MM-DD (UTC)balancerequirednumber · data.points[].balance
currentBalancerequirednumber · data.currentBalance
hasDatarequiredboolean · data.hasData
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get daily voice and SMS spend
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Charges per UTC day split into voice and SMS. Amounts are plain JSON numbers for charting.
Parameters
daysquery · integer
Default 30
Response 200
datarequiredobject
pointsrequiredobject[] · data.points
daterequiredstring · data.points[].date
YYYY-MM-DD (UTC)voicerequirednumber · data.points[].voice
smsrequirednumber · data.points[].sms
totalrequirednumber · data.points[].total
daysrequiredinteger · data.days
hasDatarequiredboolean · data.hasData
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List your call and message records
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Your call detail records (test probes excluded), newest first, cursor-paginated. With format=csv the response is a CSV file of up to 50,000 rows. For larger exports use POST /billing/exports.
Parameters
fromquery · string (date-time)
toquery · string (date-time)
kindquery · string
One of voice, smsdirectionquery · string
One of outbound, inboundcursorquery · string (uuid)
limitquery · integer
Default 50formatquery · string
csv streams up to 50,000 rowsOne of json, csv
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
callUuidrequiredstring | null · data[].callUuid
callGroupIdrequiredstring (uuid) | null · data[].callGroupId
Groups the legs of one customer call when it failed overdirectionrequiredstring · data[].direction
One ofoutbound,inboundkindrequiredstring · data[].kind
One ofvoice,smsrouteIdrequiredstring (uuid) | null · data[].routeId
fromNumberrequiredstring | null · data[].fromNumber
toNumberrequiredstring | null · data[].toNumber
clirequiredstring | null · data[].cli
statusrequiredstring | null · data[].status
sipCoderequiredinteger | null · data[].sipCode
hangupCauserequiredstring | null · data[].hangupCause
durationSecondsrequiredinteger | null · data[].durationSeconds
billedSecondsrequiredinteger | null · data[].billedSeconds
segmentsrequiredinteger | null · data[].segments
SMS segmentspddMsrequiredinteger | null · data[].pddMs
buyerCostrequiredmoney | null · data[].buyerCost
What you were charged for this record USD as a decimal string with exactly 6 places, e.g. "0.012500".sellerCreditrequiredmoney | null · data[].sellerCredit
Seller earnings. Null unless you are the seller on this record USD as a decimal string with exactly 6 places, e.g. "0.012500".ratePerUnitrequiredmoney | null · data[].ratePerUnit
US dollars as a decimal string with exactly 6 decimal places, e.g. "0.012500". Do money arithmetic with a decimal type, not floating point. USD as a decimal string with exactly 6 places, e.g. "0.012500".answeredAtrequiredstring (date-time) | null · data[].answeredAt
ISO-8601 timestamp (UTC)endedAtrequiredstring (date-time) | null · data[].endedAt
ISO-8601 timestamp (UTC)createdAtrequiredstring (date-time) · data[].createdAt
ISO-8601 timestamp (UTC)nextCursorrequiredstring | null
Pass ascursorto fetch the next page; null on the last page.hasMorerequiredboolean
True when another page exists.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Stream your call records as CSV
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Streams every matching record (up to 1,000,000 rows) as a CSV file in one response.
Parameters
fromquery · string (date-time)
toquery · string (date-time)
kindquery · string
One of voice, smsdirectionquery · string
One of outbound, inbound
Response 200 (text/csv)
A CSV file of call detail records.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List your call-record exports
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Your 50 most recent export jobs.
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
typerequiredstring · data[].type
One ofcdrparamsrequiredobject · data[].params
fromstring (date-time) · data[].params.from
ISO-8601 timestamp (UTC)tostring (date-time) · data[].params.to
ISO-8601 timestamp (UTC)kindstring · data[].params.kind
One ofvoice,smsdirectionstring · data[].params.direction
One ofoutbound,inboundstatusrequiredstring · data[].status
One ofpending,running,done,failedrowCountrequiredinteger | null · data[].rowCount
errorrequiredstring | null · data[].error
createdAtrequiredstring (date-time) · data[].createdAt
ISO-8601 timestamp (UTC)completedAtrequiredstring (date-time) | null · data[].completedAt
ISO-8601 timestamp (UTC)downloadablerequiredboolean · data[].downloadable
True once the job is done and its file is on recorddownloadUrlrequiredstring | null · data[].downloadUrl
The download endpoint for this job once it is done (GET /billing/exports/{id}/download). The only way to the file: no server path is ever returned.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Start a background call-record export
POST/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Queues a CSV export job. At most 3 exports may be pending or running at once; a fourth gets 429 TOO_MANY_EXPORTS. Poll GET /billing/exports and download when downloadable is true.
Request body (application/json)
fromstring (date-time)
tostring (date-time)
filtersobject
Takes precedence over the top-level from/tofromstring (date-time) · filters.from
tostring (date-time) · filters.to
kindstring · filters.kind
One ofvoice,smsdirectionstring · filters.direction
One ofoutbound,inbound
Response 202
datarequiredobject
Same fields as BillingExportJob, shown earlier on this page.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support. - Also
TOO_MANY_EXPORTS
Download a finished call-record export
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Returns the CSV file. Only the account that queued the export can download it (another account gets 404). 409 EXPORT_NOT_READY while the job is not finished; 410 EXPORT_EXPIRED once the retention sweep has deleted the file.
Parameters
idrequiredpath · string
Response 200 (text/csv)
The export as a CSV file.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support. - Also
EXPORT_NOT_READY,EXPORT_EXPIRED
List your receipts and statements
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Top-up receipts and statements (up to 200, newest first). For numbered tax invoices see GET /billing/tax-invoices.
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
numberrequiredinteger · data[].number
Sequential document number; printed as INV-000123typerequiredstring · data[].type
One oftopup_receipt,statementamountrequiredmoney · data[].amount
USD as a decimal string with exactly 6 places, e.g. "0.012500".currencyrequiredstring · data[].currency
periodStartrequiredstring (date-time) | null · data[].periodStart
ISO-8601 timestamp (UTC)periodEndrequiredstring (date-time) | null · data[].periodEnd
ISO-8601 timestamp (UTC)createdAtrequiredstring (date-time) · data[].createdAt
ISO-8601 timestamp (UTC)
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get a receipt or statement
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
JSON by default; format=html returns a self-contained printable page.
Parameters
idrequiredpath · string
formatquery · string
html returns a printable pageOne of json, html
Response 200
datarequiredobject
idrequiredstring (uuid) · data.id
numberrequiredinteger · data.number
Sequential document number; printed as INV-000123typerequiredstring · data.type
One oftopup_receipt,statementamountrequiredmoney · data.amount
USD as a decimal string with exactly 6 places, e.g. "0.012500".currencyrequiredstring · data.currency
periodStartrequiredstring (date-time) | null · data.periodStart
ISO-8601 timestamp (UTC)periodEndrequiredstring (date-time) | null · data.periodEnd
ISO-8601 timestamp (UTC)createdAtrequiredstring (date-time) · data.createdAt
ISO-8601 timestamp (UTC)dataJsonrequiredobject | null · data.dataJson
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get your monthly statement
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Every ledger line in a calendar month (UTC) with totals by type and the tax on platform fees. Totals and net are plain JSON numbers; line-item amounts are ledger strings. format=csv returns a CSV file.
Parameters
monthrequiredquery · string
Calendar month, YYYY-MM (UTC)formatquery · string
One of json, csv
Response 200
datarequiredobject
monthrequiredstring · data.month
periodStartrequiredstring (date-time) · data.periodStart
ISO-8601 timestamp (UTC)periodEndrequiredstring (date-time) · data.periodEnd
ISO-8601 timestamp (UTC)netrequirednumber · data.net
credits + top-ups - charges - payoutstotalsrequiredobject · data.totals
chargesrequirednumber · data.totals.charges
creditsrequirednumber · data.totals.credits
topupsrequirednumber · data.totals.topups
payoutsrequirednumber · data.totals.payouts
byTyperequiredobject · data.totals.byType
lineItemsrequiredobject[] · data.lineItems
idrequiredstring (uuid) · data.lineItems[].id
typerequiredstring · data.lineItems[].type
One oftopup,charge,credit,payout,platform_fee,test_credit,chargeback,refund_reversal,refund,transferamountrequiredmoney · data.lineItems[].amount
USD as a decimal string with exactly 6 places, e.g. "0.012500".referencerequiredstring | null · data.lineItems[].reference
createdAtrequiredstring (date-time) · data.lineItems[].createdAt
ISO-8601 timestamp (UTC)taxrequiredobject · data.tax
taxableSupplyrequiredstring · data.tax.taxableSupply
One ofplatform_feesbaserequirednumber · data.tax.base
ratePctrequirednumber · data.tax.ratePct
taxAmountrequirednumber · data.tax.taxAmount
totalrequirednumber · data.tax.total
treatmentrequiredstring · data.tax.treatment
labelrequiredstring · data.tax.label
noterequiredstring | null · data.tax.note
taxIdrequiredstring | null · data.tax.taxId
taxCountryrequiredstring | null · data.tax.taxCountry
homeCountryrequiredstring · data.tax.homeCountry
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get the financial position of your wallet or a sub-account
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Posted balance, credit limit, reserved for live calls, settlement holds, pending payments, and what that leaves to spend, with the source of each figure. Figures are plain JSON numbers (USD). Pass customerId for a sub-account you operate.
Parameters
customerIdquery · string (uuid)
A sub-account you operate; omit for your own wallet
Response 200
datarequiredobject
walletKindrequiredstring · data.walletKind
One ofuser,sub_accountwalletIdrequiredstring (uuid) · data.walletId
labelrequiredstring · data.label
currencyrequiredstring · data.currency
postedBalancerequirednumber · data.postedBalance
creditLimitrequirednumber · data.creditLimit
creditLimitRecordedrequiredboolean · data.creditLimitRecorded
reservedForActiveCallsrequirednumber · data.reservedForActiveCalls
settlementHoldsrequirednumber · data.settlementHolds
pendingPaymentsrequirednumber · data.pendingPayments
promotionalCreditrequirednumber · data.promotionalCredit
confirmedFundsrequirednumber · data.confirmedFunds
availableToSpendrequirednumber · data.availableToSpend
overCommittedrequiredboolean · data.overCommitted
negativeBalancerequiredstring · data.negativeBalance
One ofnot_negative,within_agreed_credit,beyond_agreed_creditbeyondCreditByrequirednumber · data.beyondCreditBy
activeCallsrequiredinteger · data.activeCalls
reservationEnforcedrequiredboolean · data.reservationEnforced
True when reservations actually gate new calls, not just observe themcreditNoterequiredstring · data.creditNote
sourcesrequiredobject · data.sources
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List live call authorisations on a wallet
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Funds currently reserved for calls in progress. Amounts are plain JSON numbers (USD).
Parameters
customerIdquery · string (uuid)
A sub-account you operate; omit for your own wallet
Response 200
datarequiredobject
callsrequiredobject[] · data.calls
callUuidrequiredstring · data.calls[].callUuid
amountrequirednumber · data.calls[].amount
expiresAtrequiredstring (date-time) · data.calls[].expiresAt
ISO-8601 timestamp (UTC)totalrequirednumber · data.total
enforcedrequiredboolean · data.enforced
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Reconcile a wallet balance against its ledger
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Explains the posted balance by ledger component and reports anything it cannot explain as unreconciled, rather than as confirmed money. Amounts are plain JSON numbers (USD).
Parameters
customerIdquery · string (uuid)
A sub-account you operate; omit for your own wallet
Response 200
datarequiredobject
walletKindrequiredstring · data.walletKind
One ofuser,sub_accountwalletIdrequiredstring (uuid) · data.walletId
labelrequiredstring · data.label
currencyrequiredstring · data.currency
postedBalancerequirednumber · data.postedBalance
openingBalancerequiredobject · data.openingBalance
amountrequirednumber · data.openingBalance.amount
documentedrequiredboolean · data.openingBalance.documented
noterequiredstring · data.openingBalance.note
componentsrequiredobject[] · data.components
keyrequiredstring · data.components[].key
labelrequiredstring · data.components[].label
amountrequirednumber · data.components[].amount
countrequiredinteger · data.components[].count
sourcerequiredstring · data.components[].source
explainedrequirednumber · data.explained
unattributedrequiredobject · data.unattributed
amountrequirednumber · data.unattributed.amount
countrequiredinteger · data.unattributed.count
noterequiredstring · data.unattributed.note
unreconciledrequirednumber · data.unreconciled
hasUnreconciledrequiredboolean · data.hasUnreconciled
unpostedUsagerequiredobject · data.unpostedUsage
amountrequirednumber · data.unpostedUsage.amount
callsrequiredinteger · data.unpostedUsage.calls
noterequiredstring · data.unpostedUsage.note
checkedAtrequiredstring (date-time) · data.checkedAt
ISO-8601 timestamp (UTC)
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List posted, pending and unposted money movements
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
One timeline of posted ledger lines, pending payments and usage not yet posted. truncated is true when more rows matched than limit. Amounts are plain JSON numbers (USD).
Parameters
customerIdquery · string (uuid)
A sub-account you operate; omit for your own walletlimitquery · integer
Default 100fromquery · string (date-time)
toquery · string (date-time)
statequery · string
One of all, posted, pending, usage
Response 200
datarequiredobject
rowsrequiredobject[] · data.rows
idrequiredstring · data.rows[].id
staterequiredstring · data.rows[].state
One ofposted,pending,usageatrequiredstring (date-time) · data.rows[].at
ISO-8601 timestamp (UTC)kindrequiredstring · data.rows[].kind
labelrequiredstring · data.rows[].label
amountrequirednumber · data.rows[].amount
balanceAfterrequirednumber | null · data.rows[].balanceAfter
referencerequiredstring | null · data.rows[].reference
callIdrequiredstring | null · data.rows[].callId
traceTorequiredstring · data.rows[].traceTo
truncatedrequiredboolean · data.truncated
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List sub-account wallets you operate with their positions
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Every non-closed sub-account with its balance, credit and what it can spend now. Amounts are plain JSON numbers.
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
labelrequiredstring · data[].label
currencyrequiredstring · data[].currency
statusrequiredstring · data[].status
postedBalancerequirednumber · data[].postedBalance
creditLimitrequirednumber · data[].creditLimit
confirmedFundsrequirednumber · data[].confirmedFunds
reservedForActiveCallsrequirednumber · data[].reservedForActiveCalls
activeCallsrequiredinteger · data[].activeCalls
availableToSpendrequirednumber · data[].availableToSpend
negativeWithinAgreedCreditrequiredboolean · data[].negativeWithinAgreedCredit
beyondAgreedCreditrequiredboolean · data[].beyondAgreedCredit
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List your tax invoices
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
Numbered tax invoices (gap-free per account), newest first, up to 500.
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
seqrequiredinteger · data[].seq
Gap-free per-account sequencenumberrequiredstring · data[].number
periodrequiredstring · data[].period
YYYY-MMperiodStartrequiredstring (date-time) · data[].periodStart
ISO-8601 timestamp (UTC)periodEndrequiredstring (date-time) · data[].periodEnd
ISO-8601 timestamp (UTC)currencyrequiredstring · data[].currency
subtotalrequiredstring · data[].subtotal
Decimal stringtaxAmountrequiredstring · data[].taxAmount
Decimal stringtotalrequiredstring · data[].total
Decimal stringcreatedAtrequiredstring (date-time) · data[].createdAt
ISO-8601 timestamp (UTC)
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Generate the tax invoice for a month
POST/
- Access
- API key. Scoped keys need
account:write. - Rate limit
- 100 requests per second (the default)
Idempotent per period: if the month already has an invoice it is returned with alreadyExisted: true and status 200; a new one returns 201. 503 when the invoice register is not available on this node.
Request body (application/json)
periodrequiredstring
Response 201
datarequiredobject
idrequiredstring (uuid) · data.id
seqrequiredinteger · data.seq
Gap-free per-account sequencenumberrequiredstring · data.number
periodrequiredstring · data.period
YYYY-MMperiodStartrequiredstring (date-time) · data.periodStart
ISO-8601 timestamp (UTC)periodEndrequiredstring (date-time) · data.periodEnd
ISO-8601 timestamp (UTC)currencyrequiredstring · data.currency
subtotalrequiredstring · data.subtotal
Decimal stringtaxAmountrequiredstring · data.taxAmount
Decimal stringtotalrequiredstring · data.total
Decimal stringcreatedAtrequiredstring (date-time) · data.createdAt
ISO-8601 timestamp (UTC)dataJsonrequiredobject | null · data.dataJson
Frozen line items and the tax section as issuedalreadyExistedrequiredboolean · data.alreadyExisted
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get a tax invoice
GET/
- Access
- API key. Scoped keys need
account:read. - Rate limit
- 100 requests per second (the default)
JSON by default; format=html returns a printable invoice page.
Parameters
idrequiredpath · string
formatquery · string
html returns a printable pageOne of json, html
Response 200
datarequiredobject
idrequiredstring (uuid) · data.id
seqrequiredinteger · data.seq
Gap-free per-account sequencenumberrequiredstring · data.number
periodrequiredstring · data.period
YYYY-MMperiodStartrequiredstring (date-time) · data.periodStart
ISO-8601 timestamp (UTC)periodEndrequiredstring (date-time) · data.periodEnd
ISO-8601 timestamp (UTC)currencyrequiredstring · data.currency
subtotalrequiredstring · data.subtotal
Decimal stringtaxAmountrequiredstring · data.taxAmount
Decimal stringtotalrequiredstring · data.total
Decimal stringcreatedAtrequiredstring (date-time) · data.createdAt
ISO-8601 timestamp (UTC)dataJsonrequiredobject | null · data.dataJson
Frozen line items and the tax section as issued
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.