Top-up status, including intermediate provider states
const url = 'https://api.flotera.com/api/v1/billing/topups/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';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/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --cookie __Host-erm_session=<__Host-erm_session>The only authoritative source of payment outcome. partially_paid is progress information, not an operator decision, and does not move the balance (D-13).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”UUID (v7 for new entities; v4 accepted during migration).
Responses
Section titled “Responses”Top-up.
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.
Example
{ "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"}Resource does not exist in this tenant. Foreign identifiers also return 404 (anti-enumeration).
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"}