Console
Billing

Postpaid billing

A credit line with monthly invoices.

With postpaid billing, your organization uses RouterPlus on a credit line and pays after the month ends. RouterPlus sends an invoice each month for that month's usage.

To get a credit line, contact RouterPlus. RouterPlus sets the limit, the payment terms and the email address that gets the invoices.

How a credit line works

  • Without a credit line, RouterPlus refuses new requests when your balance is at zero.
  • With a credit line, your balance can go below zero, down to minus the line's limit. With a $5,000 line, your organization can use $5,000 before it pays. Your balance then shows -$5,000.
  • Credit you buy is added to your balance and gives you more room on the line.
  • RouterPlus holds the maximum cost of each request while it runs, as for prepaid credit. Requests in flight count against the line until they finish.

At the limit

When a request would take your balance past minus the limit, RouterPlus refuses it with the usual out-of-credit error: 429 insufficient_quota. The message says that the organization reached the end of its credit line. Do not retry. The request fails until the balance goes up.

To continue, pay the open invoice or ask RouterPlus for a higher limit. A new limit applies within a few seconds.

Your spend caps and guardrail budgets still apply. RouterPlus refuses a request that fits the credit line but breaks a monthly cap or a budget.

Invoices

  • An invoice covers one UTC calendar month. It bills the month's usage at the prices you paid on each request.
  • It has one line per model and provider, with the token counts and the amount.
  • RouterPlus issues it after the month ends and emails it to your billing address. It shows the period, the amount due, the terms and the due date.
  • When RouterPlus records your payment, it adds the invoice amount to your balance. When all your usage is invoiced and paid, your balance is back at zero.
  • Quote the invoice number (inv_...) with your payment.
TermsDue
net1515 days after the invoice is issued
net3030 days after the invoice is issued (the default)
net4545 days after the invoice is issued

Read your credit line and invoices

These routes need a management key (Authorization: Bearer tm_mk_...). Each shows only your own organization. They also work under /api/v1/.

RouteReturns
GET /v1/billing/credit-lineYour credit line. 404 without one.
GET /v1/billing/invoicesYour invoices, newest month first, without lines.
GET /v1/billing/invoices/{id}One invoice with its lines.

GET /v1/billing/credit-line:

json
{
  "data": {
    "limit_usd": 5000,
    "terms": "net30",
    "billing_email": "[email protected]",
    "enabled": true,
    "balance_usd": -1250.5,
    "available_usd": 3749.5,
    "open_invoices_usd": 900,
    "created_at": "2026-10-01T09:00:00.000Z",
    "updated_at": "2026-10-01T09:00:00.000Z"
  }
}
FieldMeaning
balance_usdYour credit minus your settled usage. Below zero while you use the line.
available_usdWhat you can still use: the balance plus the limit while the line is enabled. Requests in flight are not subtracted.
open_invoices_usdThe total of issued invoices not yet paid.

GET /v1/billing/invoices/{id}:

json
{
  "data": {
    "id": "inv_3f2a9c0d1e4b5a6978c0d1e2",
    "period_start": "2026-09-01",
    "period_end": "2026-09-30",
    "amount_usd": 900,
    "amount_microusd": 900000000,
    "status": "issued",
    "terms": "net30",
    "issued_at": "2026-10-02T10:00:00.000Z",
    "due_at": "2026-11-01T10:00:00.000Z",
    "paid_at": null,
    "lines": [
      { "model": "deepseek/deepseek-v3.2", "provider": "deepinfra", "attempts": 41200,
        "input_tokens": 512000000, "cached_input_tokens": 120000000, "cache_write_tokens": 0,
        "output_tokens": 61000000, "reasoning_tokens": 0,
        "amount_microusd": 900000000, "amount_usd": 900 }
    ]
  }
}

status is issued (not paid yet), paid or void (cancelled).

For agents: /docs/postpaid.md and /llms.txt