Receipts And Billing
How B3IQ records signed receipts, customer debits, node payout rows, usage exports, and settlement evidence.
B3IQ receipt and billing surfaces connect completed work to usage, customer balances, node payout rows, and public-safe settlement commitments.
Receipt Role
A receipt is signed evidence of completed work. It can bind:
- Node identity.
- Model identity.
- Usage totals.
- Price and billing references.
- Receipt hash.
- Optional private-job
tee_attestation_hashcommitment.
Public receipt payloads must not expose raw prompts, outputs, customer tokens, exact private routes, raw request logs, local URLs, or raw TEE quotes.
Billing Flow
Customer APIs
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/billing/account | Balance, reserved funds, available funds, and active gateway policy |
| GET | /v1/billing/usage | Ledger totals and recent ledger rows without encrypted payloads, prompts, outputs, or raw credentials |
| GET | /v1/billing/jobs/{job_id} | Billing state for a private job or paid pooled-sync gateway call |
| GET | /v1/receipts/{receipt_hash} | Receipt lookup by hash |
Retry And Refund Policy
Paid work should be deterministic around reservation, release, debit, payout, timeout, and stale-reservation recovery.
Paid jobs reserve customer balance before dispatch. Reservation conflicts fail closed instead of risking double spend.
Accepted receipts debit the customer, release the reservation, and create node payout evidence.
Jobs that fail, timeout, or never produce accepted receipt evidence should release reserved funds instead of debiting the customer.
Admin stale-reservation recovery can dry-run or release stale queued, claimed, or awaiting-receipt reservations according to policy windows.
Payout Settlement
B3IQ batches node payout rows into public-safe payout roots. The B3 mainnet settlement pilot publishes payout batch proof logs and lets the control plane finalize batches from real chain receipt evidence.
See Receipts and settlement for the protocol view.
