Reseller margin and the tax pipeline
Platforms reselling Devotel Orbit — agencies, MSPs, vertical SaaS — price their end customers’ usage on top of the cost Orbit computes. Two different levers do that, and this page exists to keep them straight: a rate markup, which prices usage against a rate card, and a reseller margin, which marks up the resulting bill. The Usage Metering API carries the margin lever; the pricing and rate resolution page carries the markup lever. Read this page before you quote a margin percentage to your own customers, or before you reconcile the rollup, the margin preview, and the tax line against each other.What a reseller margin is
A reseller margin is a percentage (0–100) you pass per rating request,
applied to each subaccount’s rated amount. The rated amount is what the
meter definition produced: the usage events you POSTed, counted in the
meter’s unit, with includedQuantity bundled at no charge and the overflow
priced against graduated overageTiers. The margin multiplies that
per-subaccount total, never the individual usage event.
Setting itemize_fees: true on the invoice block splits every line and
the totals into the pass-through cost (base_* fields) and your margin —
the document can show your customer either the blended price or the
cost-plus-margin breakdown. Omitting the margin, or passing 0, bills at
cost.
Margin versus markup — the distinction that drives the design
A rate markup resolves the price of usage: operator cost × your organization’s markup, resolved per send, following the precedence on pricing and rate resolution. A reseller margin resolves the price of the bill: rated amount × your percentage, resolved per subaccount, after the meter has run across the whole batch. They compose cleanly because they operate on different stages. Live Orbit traffic is priced by the markup side; when you re-rate that usage for your own end customers through the Usage Metering API, the margin side applies to the totals the meter computed. Never apply a margin to an unresolved rate and never apply it to individual events — both produce numbers the ledger descriptors cannot reproduce.Margin before tax — the ordering rule
The margin applies to the rated amount before the tax line computes. Tax is a percentage of the marked-up subtotal: if your margin added 20% to a 40.32, not on $33.60. The invoice fields make the ordering auditable:subtotal_minor is the
marked-up amount, and tax_minor is derived from it.
The exemption branch sits on that same ordering. Only an approved
certificate whose jurisdiction matches tax.jurisdiction (or a blanket
certificate with no jurisdiction) and whose validity window covers the
rating period suppresses the tax line. A pending, rejected, or
expired status — or an approved certificate whose validity window has
lapsed — taxes the invoice as normal. The invoice echoes both the status
you passed (tax_exemption_status) and whether suppression actually
happened (tax_exemption_applied), so an auditor can tell an untaxed
invoice from a mistakenly untaxed one.
Resolving the certificate is a control your billing team owns: you pass
the resolved certificate into the request, and the response applies it.
Orbit does not store exemption certificates for your end customers.
Ledger descriptors, not wallet movements
The margin lands on billing documents and ledger write descriptors, not on any wallet. When you rate a batch, the response’sbilling block
carries ledger_entries — the per-subaccount debit descriptors (amount,
base amount, reference) you would commit in your own billing flow — and,
when you supply the invoice block, the branded HTML document you hand
your end customer. Nothing moves: no wallet is debited, no invoice is
persisted, no payout ledger is written.
That separation is deliberate. Your end customers’ ledgers live in your
system, and Orbit’s own wallet is never a party to your resale. The preview
endpoints return the exact descriptors you would write, so the commit step
in your flow is a replay of a previewed number, not a fresh computation.
Three surfaces, one story
Three independent surfaces compute margin-related numbers, and they must agree:- The rollup (
POST /api/v1/usage/meters/rollup) — the rated batch with your margin applied per subaccount. - The margin roll-up preview — the read-only projection of what the current period would close at, covered with the other preview endpoints on the pricing-preview pipeline.
- Live rating — Orbit’s own rated usage the way you pass it into the meter.
Boundaries — what this page does not cover
- Endpoint mechanics — request fields, response shapes, the credit-note counterpart: Usage Metering API.
- Rate-card precedence — operator overrides versus organization markup versus the platform default: pricing and rate resolution.
- Wallet, FX, and graduated tiers — the prepaid wallet and the rating model the meter definition mirrors: how billing meters your usage.
- Metering pipeline end to end — usage records, rollups, and re-aggregation: the usage metering pipeline.
- Preview endpoint inventory — the five read-only projections including the margin roll-up and partner payout ledger: the pricing-preview pipeline.
Related pages
- Usage Metering API reference — the rollup and credit-note endpoints, field by field.
- Pricing and rate resolution — the markup lever, resolved per send.
- How billing meters your usage — wallet, FX, graduated tiers, and the margin mention in the rating section.
- The pricing-preview pipeline — the read-only margin roll-up and payout projections.