Call minutes billed the way carriers bill them

Finished calls meter exactly once in whole rounded-up minutes, guarded so a repeated provider callback cannot bill twice.

What it is

Metering on the call record. A connected call is never zero minutes and any started minute is a whole minute, matching carrier behaviour. A forwarded inbound call is two billable legs at the carrier and is metered once, idempotently.

Also called: call charges · per minute billing · double billed for a call

See it
Call minutes billed the way carriers bill them
CustomerBuildingAmountStatus
Ronan PetschEquipment Storage$6,330Paid
Delia Yoder40×64 Shop$10,700Draft
Ronan PetschBarndominium$6,900Draft
Ivy BrubakerRiding Arena$17,540Approved
Gideon Alt30×40 Garage$2,340Open
A usage card row: 'Calls — 214 minutes' with the per-minute rate. commsShared.tsx. Sample data — no customer information appears here.
How it works
  1. 1calls.metered_at is stamped after metering, and a retried status callback checks it first
  2. 2Whole minutes, rounded up, minimum one for a connected call
  3. 3The usage row is written with channel 'call' and unit kind 'call_minute'
Why we built it

Billing voice minutes at a text-message rate is the kind of mistake that never announces itself — it quietly overcharges some builders and undercharges others, and nobody finds it for months. Finished calls now meter exactly once, in whole rounded-up minutes, the way carriers bill them. The unit being billed has to be stated explicitly rather than defaulted, so it cannot silently fall back to the wrong rate, and a repeated callback from the provider cannot bill the same call twice.

The problem
  • Double-billing from retried provider callbacks
  • Voice minutes priced at the wrong rate
  • Metering that disagrees with the carrier
Sound familiar?
What you get
Charges that reconcile with the carrier invoice
Retries are harmless
The rate applied is provably the right one

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →