Money tab summary — receivables by departure date, executed refunds, decisions waiting
const url = 'https://quikstik-core.fly.dev/money/summary';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://quikstik-core.fly.dev/money/summary \ --header 'Authorization: Bearer <token>'Core’s view of the money, not the ledger’s and not Stripe’s. Every figure is read from
core’s own database (source: "core"); this read never opens the ledger database and never
calls a payment processor. Revenue, cash-at-Stripe and the nightly tie are ledger facts and
are not in this response. Stripe is the source of truth for “paid”; settled here is
whatever core last synced from the ledger.
receivableis not revenue and not cash. It is the unpaid balance (gross - settled, the figureGET /obligations/{ref}/balanceserves) on bookings that are not cancelled, grouped by departure date in the merchant timezone (tz), under the accrual law: an unpaid balance is a receivable, never on-site cash. Buckets:overdue(departed before today with a balance still owed),today,next_7(tomorrow through today+7) andlater(to the end of the window). All four always appear, in that order.partiescounts obligations. Whenfromis today or earlier, everything already overdue is included regardless offrom; afromafter today is a future-only window and omitsoverdue/today.refundscounts refunds recorded in core’s executed-refund table over the trailing 7 and 30 days (independent of the window);total_minoris their sum.decisions.held_sendsis the number of outbound hub replies held for approval.decisions.tasks_moneyis the number of open tasks that are money decisions: kindrefund_review, orapprove_replywhose draft contains$. Norefund_reviewwriter exists yet, so today this counts only dollar-bearing reply approvals.settled_synced_at_msis when the lastobligation-settled-syncrun stampedops_heartbeats;nullwhile nothing records it (tracked indocs/DEFECTS.md).
Session, or an operator key scoped bookings.read. Window defaults: from = today,
to = today + 14 (merchant timezone); at most 92 days (window_too_large, 422).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Window start, a merchant-timezone calendar date (YYYY-MM-DD). Window is at most 92 days.
Window end, inclusive (YYYY-MM-DD).
Responses
Section titled “Responses”Core’s money summary for the window
object
Window start (merchant-timezone date).
Window end, inclusive.
IANA zone the dates are read in.
Every figure is core’s view — not the ledger’s, not Stripe’s.
When the last obligation-settled-sync run beat; null while nothing records it.
Unpaid balances by departure date. Not revenue and not cash.
object
ISO code of every figure here; null when there are no receivables.
Always four entries, in order overdue, today, next_7, later.
object
Departure-date bucket of an open receivable, relative to the merchant’s today.
Sum of balances owed in this bucket, minor units. Core’s view; not revenue.
Number of obligations in this bucket.
object
object
Sum of executed refunds recorded in core, minor units.
object
Sum of executed refunds recorded in core, minor units.
object
Example
{ "tz": "America/New_York", "source": "core", "receivable": { "by_bucket": [ { "bucket": "overdue" } ] }}Missing or invalid session bearer token
object
Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).
Example
{ "reason": "sold_out"}The session’s effect authority does not cover this operation
object
Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).
Example
{ "reason": "sold_out"}Invalid query. reason is one of invalid_date, invalid_window (from after to),
window_too_large (more than 92 days), invalid_limit, invalid_bucket.
object
Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).
Example
{ "reason": "sold_out"}No durable backend is wired for this operation (fail-closed)
object
Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).
Example
{ "reason": "sold_out"}