Top-up history
const url = 'https://api.flotera.com/api/v1/billing/topups?limit=50&status=creating';const options = { method: 'GET', headers: {cookie: '__Host-erm_session=<__Host-erm_session>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.flotera.com/api/v1/billing/topups?limit=50&status=creating' \ --cookie __Host-erm_session=<__Host-erm_session>Payments, newest first — a separate journal from the ledger. Rows in a non-terminal provider state are shown as progress and have not moved the balance (14 §6.3).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Opaque pagination cursor from a previous next_cursor.
Page size.
Internal top-up state (14 §6.3). Exactly one of them means the money
arrived: succeeded.
partially_paid is progress information — the customer under-paid but
the payment is still moving. It does not park the top-up for an
operator and it does not move the balance (D-13).
review means invoice/order/currency disagreement, an unknown provider
status or an ambiguous create — a human has to look.
Responses
Section titled “Responses”Page of top-ups.
object
object
UUID (v7 for new entities; v4 accepted during migration).
Internal top-up state (14 §6.3). Exactly one of them means the money
arrived: succeeded.
partially_paid is progress information — the customer under-paid but
the payment is still moving. It does not park the top-up for an
operator and it does not move the balance (D-13).
review means invoice/order/currency disagreement, an unknown provider
status or an ambiguous create — a human has to look.
Invoiced amount. What was credited is the confirmed amount, not this.
Code from the server-owned catalogue, e.g. card or usdt_tron. The catalogue depends on which providers the operator has enabled, so a code that worked yesterday may be absent today — always take the list from GET /billing/payment-methods.
Hosted provider page. Open it as external navigation — never inject it as HTML. Absent once the top-up reaches a terminal state.
RFC 3339 UTC with microsecond precision, or null.
RFC 3339 UTC with microsecond precision.
Opaque cursor for the next page; null when there are no more rows.
Example
{ "items": [ { "status": "creating", "created_at": "2026-07-25T10:15:30.123456Z" } ]}Missing/invalid credentials (code=unauthorized).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Authenticated but not permitted. code=forbidden — role/scope mismatch; code=feature_not_entitled — the plan does not include the capability; code=account_frozen — the account is frozen and this operation is declared x-ermeon-frozen: deny. The three are deliberately distinct: only the last one is fixed by a top-up (13 §5.6).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Request failed validation (code=validation_failed), with per-field errors.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}