Billing history
Reading your transaction ledger and reconciling charges against usage.
Every change to your balance is a ledger entry. Nothing adjusts a balance without leaving a row.
Transactions#
credits.history returns your entries, newest first, with limit (default 50,
max 1000) and offset:
{
"transactions": [
{
"transaction_id": "txn_...",
"type": "purchase",
"amount": 25,
"currency": "USD",
"payment_ref": "cs_...",
"created_at": "2026-08-20T10:14:03Z",
"status": "completed"
}
]
}| Field | Meaning |
|---|---|
type | What moved the balance — a purchase, a usage charge, an adjustment |
amount | Credits added or deducted |
currency | The currency actually paid, for purchases |
payment_ref | The Stripe checkout session, for purchases |
status | Whether the entry completed |
Reconciling a charge against usage#
Transactions tell you that credits left your balance. To see what spent them, use your usage log — every model call records its model, its app, and its cost. See Usage and logs.
Working from the two together answers the usual question, "why did this cost what it cost":
- Find the charge in your transaction history.
- Find the matching calls in your usage log for the same window.
- Compare the per-call cost against the model's price and your app's markup — see Pricing and markup.
Receipts#
Purchase receipts come from Stripe, to the email on your account. PortModels does not store your card details at any point; the processor holds them.
Disputes and corrections#
If a charge looks wrong, gather the transaction id and the approximate time and contact support. Corrections are made as their own ledger entries rather than by editing history, so the record stays auditable.