Skip to content
GET /billing/summary

Query Parameters

team_idstring · uuid
required·

The team to summarise. The caller must be an admin of this team.

Example: 05daecaf-4365-42e8-8370-8127de5dd717

Response Body

accountobject
billing_addressobject
7 properties
citystring
countrystring
line1string
line2string
namestring
postal_codestring
statestring
billing_emailstring
billing_statusstring

Informational; nothing is enforced on it today.

Possible values:
activepast_duesuspendedexempt
currencystring
Example: usd
has_payment_methodboolean
has_stripe_customerboolean
last_payment_failed_atstring · date-time
last_synced_atstring · date-time
payment_method_summaryobject
6 properties
brandstring
Example: visa
exp_monthinteger
exp_yearinteger
last4string
Example: 4242
stripe_payment_method_idstring
typestring
Example: card
stripe_customer_idstring
tax_idsobject[]
2 properties
typestring
Example: us_ein
valuestring
team_idstring · uuid
connector_termsobject[]

Connectors paid up front (a plan component with charge_timing advance) whose term covers today. Each connector renews, and is charged again, on term_end while it is still enabled (or connected, for the connector metric).

amount_centsinteger

Net amount charged for the term.

component_keystring
Example: enabled_connector
integration_idstring
integration_namestring
Example: salesforce
invoice_statusstring

Status of the Stripe invoice that charged the term (open, paid, uncollectible, void). paid is the only state in which the term is paid. Null while the invoice is still being created.

statusstring

invoiced means the invoice was issued, not that it was paid — see invoice_status.

Possible values:
pendinginvoiced
term_endstring · date

Exclusive end, the renewal date.

term_startstring · date
current_periodobject

Month-to-date charges priced against the plan. Everything — platform fee, fixed items and usage — bills in arrears, so these are invoiced on invoice_date, after the month ends. null when the team has no active plan.

estimated_total_centsinteger
invoice_datestring · date

When these charges are invoiced, the plan's billing_day in the month after period_end. Null for manual plans and while the plan has not started.

linesobject[]
20 properties
amount_centsinteger

Net amount charged.

Example: 28800
connector_groupstring

Usage lines only — which connectors the count covers. Absent on a line written before connector groups existed, which means all.

Possible values:
allgoogle_workspaceother
descriptionstring

Invoice wording. Usage lines mention the included allowance only when the component has one.

Example: Active connections — August 2026 (42 used, 10 included)
discount_centsinteger
Example: 3200
discount_percentnumber
Example: 10
gross_amount_centsinteger

Amount before discount.

Example: 32000
included_quantityinteger
integration_idstring

Connector-term lines only — the connector the term is for.

integration_namestring

Connector-term lines only — the connector's name.

Example: salesforce
keystring

Stable per plan and period. usage:<metric> for a usage line over all connectors, usage:<metric>@<connector_group> for a grouped one; term:<component key>:<integration id>:<term start> for a connector billed in advance.

Example: usage:active_connection@google_workspace
kindstring
Possible values:
base_feeusagefixedconnector_term
measured_quantityinteger
metricstring
Possible values:
connectorenabled_connectoractive_connectionapi_callsuperquery_account
overage_quantityinteger

Usage lines only — measured minus included, before block rounding.

Example: 32
period_endstring · date

Exclusive end (first day of the next period).

period_startstring · date
quantityinteger

Units charged; for usage lines the number of blocks of unit_size.

Example: 32
tierobject

Usage lines of a tiered component only — the band this line prices. Keys are usage:<component key>:tier:<index> (per-unit) and …:tier:<index>:flat (the band's flat amount).

4 properties
frominteger

First unit of the band (1-based, inclusive).

indexinteger
kindstring
Possible values:
unitflat
tointeger

Last unit of the band (inclusive); null for "and up".

unit_price_centsnumber

Price per charged unit (per block for usage lines).

Example: 1000
unit_sizeinteger

Usage lines only — units per block.

Example: 1
period_endstring · date
period_startstring · date
usageobject
2 properties
countsobject
5 properties
active_connectioninteger
api_callinteger
connectorinteger
enabled_connectorinteger
superquery_accountinteger
detailsobject

How the counts were arrived at — per-environment API calls, the active connectors (connectors) and every enabled connector (enabled_connectors), and, when the plan prices a metric per connector group, groups with the same counts narrowed to each priced group (google_workspace, other).

last_invoiceobject

A Stripe invoice mirrored into Truto. Stripe remains the system of record; use hosted_invoice_url to view or pay it.

amount_due_centsinteger
Example: 82000
amount_paid_centsinteger
Example: 82000
amount_remaining_centsinteger
Example: 0
attempt_countinteger
Example: 1
currencystring
Example: usd
finalized_atstring · date-time
hosted_invoice_urlstring

Stripe-hosted page to view and pay the invoice.

idstring · uuid

Truto's id for the mirrored invoice row.

Example: 1ba1f401-7183-47c5-9e39-e8e257e3c795
invoice_pdfstring
last_payment_errorstring
numberstring
Example: TRUTO-0042
paid_atstring · date-time
period_endstring · date-time
period_startstring · date-time
sourcestring

automated when Truto generated it from a plan; stripe_manual when it was raised by hand in Stripe.

Possible values:
automatedstripe_manual
statusstring

Raw Stripe invoice status.

Possible values:
draftopenpaidvoiduncollectible
stripe_created_atstring · date-time
stripe_customer_idstring
Example: cus_QgZ1XkKl2m3n4o
stripe_invoice_idstring
Example: in_1PqWq2LkdIwHu7ix
team_idstring · uuid
Example: 05daecaf-4365-42e8-8370-8127de5dd717
voided_atstring · date-time
next_invoice_datestring · date

Next date the daily billing run will invoice this team (its plan's billing_day). Never earlier than the month after the plan's effective_from, since everything bills in arrears. Null for manual or inactive plans.

planobject
base_fee_anchor_monthinteger
base_fee_centsinteger
Example: 50000
base_fee_descriptionstring
base_fee_discount_percentnumber
base_fee_intervalstring
Possible values:
monthquarterhalf_yearyear
billing_dayinteger

Day of the month (UTC) automatic invoices are issued.

billing_modestring

automatic invoices are generated by the daily billing run on billing_day; manual plans are invoiced by Truto staff.

Possible values:
automaticmanual
componentsarray
One of
usage · 12 properties
anchor_monthinteger
charge_timingstring

arrears bills the cycle when it closes. advance (only for connector; refused for enabled_connector for now, because it counts sandbox and development environments) charges every counted connector unit_price_cents up front for its own term of interval months, starting the day it is first counted (enabled, or first active connection), on an invoice created that day; the term renews and is charged again on its anniversary while the connector is still counted. No proration or refund. Requires a flat price, unit_size 1, no included_quantity, no tiers and no anchor_month.

Possible values:
arrearsadvance
connector_groupstring

Which connectors this component counts. all is every connector; google_workspace is the Google Workspace connector allow-list (gmail, googledrive, googlecalendar, …); other is everything else — for API calls that includes requests with no integration attached, so google_workspace + other always equals all. A plan prices a metric either once for all or once per group, never both.

Possible values:
allgoogle_workspaceother
descriptionstring
discount_percentnumber

Percentage taken off this line; shown on the invoice as a separate discount line.

included_quantityinteger

Units included before the unit price applies.

Example: 10
intervalstring

How often the metric is billed; the unit price is per interval. Non-monthly metrics bill at the end of each cycle starting in anchor_month.

Possible values:
monthquarterhalf_yearyear
metricstring
Possible values:
connectorenabled_connectoractive_connectionapi_callsuperquery_account
tiersobject[]

Graduated ("tax bracket") pricing instead of one flat unit price. Each band prices only the units inside it, and each band that has units becomes its own invoice line. When set, unit_price_cents, unit_size and included_quantity must be left at 0 / 1 / 0 — a free allowance is a band priced at zero.

3 properties
flat_price_centsinteger

Whole cents charged once when at least one unit lands in the band. Not charged at zero usage. Default 0.

Example: 24900
unit_price_centsnumber

Cents (may be fractional) per unit inside the band. Default 0.

Example: 80
up_tointeger

Inclusive upper bound of the band in units. null only on the last band ("and up"); earlier bands must ascend strictly.

Example: 250
typestring
Possible values:
usage
unit_price_centsnumber

Price in cents (may be fractional) for one block of unit_size units, per interval. "$0.99 per 5,000 API calls" is 99 with unit_size 5000.

Example: 1000
unit_sizeinteger

Units per priced block. Overage is billed in whole blocks, rounded up. Default 1.

Example: 5000
fixed · 6 properties
amount_centsinteger
Example: 20000
anchor_monthinteger

Non-monthly items only — the calendar month each cycle starts in.

descriptionstring
Example: Dedicated support
discount_percentnumber
intervalstring
Possible values:
monthquarterhalf_yearyear
typestring
Possible values:
fixed
created_atstring · date-time
effective_fromstring · date

First calendar month (always the 1st) this plan bills. Everything bills in arrears, so the first invoice is issued on billing_day of the following month.

Example: 2026-09-01
is_activeboolean
namestring
Example: Growth
team_idstring · uuid
updated_atstring · date-time
curl -X GET 'https://api.truto.one/billing/summary' \
  -H 'Authorization: Bearer <your_api_token>' \
  -H 'Content-Type: application/json'
const response = await fetch('https://api.truto.one/billing/summary', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer <your_api_token>',
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
import requests

url = "https://api.truto.one/billing/summary"
headers = {
    "Authorization": "Bearer <your_api_token>",
    "Content-Type": "application/json",
}
params = {
}

response = requests.get(url, headers=headers, params=params)
print(response.json())