Invoices, reconciliation & disputes

This page explains how billing records are generated, how to reconcile your usage, and how to handle disputes.

Billing cycle

Routic bills based on actual token consumption, recorded per request. Here's how the pipeline works:

  1. Request — You call the API with your key.
  2. Gateway processing — The gateway routes to a model provider and logs the spend.
  3. Usage sync — A sync job (every ~5 minutes) pulls gateway spend logs into usage_records.
  4. Billing debit — A billing job (every ~1 hour) deducts the cost from your account balance.

This means:

  • Usage appears with a short delay — up to 5 minutes after the actual request.
  • Balance deduction is not instant — it happens within the next billing cycle (up to 1 hour).
  • Your dashboard shows near-real-time data — the usage and balance views refresh automatically.

Viewing your usage

In the dashboard

The Routic console provides:

  • Usage overview — token consumption by model, by day.
  • Balance — current account balance and recent transactions.
  • API Key usage — per-key breakdown of spending.

Via the API

Use the usage endpoints to query your consumption programmatically. See Models, SKUs & usage for details.


Reconciliation

What is reconciliation?

Reconciliation means comparing what you expect to be charged against what was actually charged. This is important for:

  • Budget tracking — ensure spending stays within expected bounds.
  • Audit — verify that every request was billed correctly.
  • Dispute resolution — identify specific requests where the charge is incorrect.

How to reconcile

  1. Export your request logs — from your application, export logs containing request_id, model, and timestamp.
  2. Compare with usage records — match each request_id against the usage data in your dashboard or via the API.
  3. Check totals — sum up token counts and costs for a time period and compare with the billed amount.

Common discrepancies

DiscrepancyLikely causeWhat to do
Missing usage recordSync delay (up to 5 min) or the request failed before loggingWait 5 minutes, then check again. If still missing, contact support.
Token count mismatchDifferent tokenization between your count and the model providerToken counts are determined by the model provider's tokenizer. Use the usage field in the response as the source of truth.
Cost seems wrongMarkup applied to the model provider's base priceThe charge includes a markup over the model provider's cost. Check the cost comparison for pricing context.
Double chargeRetry was not idempotent — two requests were processedThe chat completions endpoint is not idempotent. Avoid retrying on non-rate-limit errors. See Errors & retries.

Invoices

Current status

Electronic invoices are not yet available in the self-service portal. Invoice issuance follows these rules:

Invoice typeHow to request
Local statutory invoiceContact support with your billing period and company details.
USD receiptAvailable in your dashboard under billing history.
Proforma / Commercial InvoiceContact support for cross-border documentation.

Upcoming features

The following invoice capabilities are planned:

  • Self-service invoice application from the console
  • Automated invoice generation for monthly billing cycles
  • Download history and status tracking

Disputes

If you believe a charge is incorrect:

  1. Collect the evidence — note the request_id, timestamp, expected vs. actual charge.
  2. Contact support — provide the details above. Include your account ID.
  3. Resolution timeline — disputes are reviewed within 1–3 business days.

Common valid disputes:

  • You were charged for a request that returned a 500 error (tokens may not have been consumed).
  • The same request_id appears twice in your usage records.
  • The token count in the usage record doesn't match the usage field in the original response.

See also