Server-owned catalog of payment methods
const url = 'https://api.flotera.com/api/v1/billing/payment-methods';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/payment-methods \ --cookie __Host-erm_session=<__Host-erm_session>Asset/network pairs the merchant account actually accepts, with the confirmed provider minimum (14 §6.1). The panel must never hardcode this list: an unconfirmed method is reported available: false rather than omitted, so the UI can explain why it is greyed out.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Payment methods.
object
object
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.
What kind of instrument this is. card has neither an asset nor a network; crypto has both. Clients render the two differently, and deriving the kind from code would put a copy of the server-owned catalogue into every client.
Crypto asset. Always null for card.
Crypto network. Always null for card.
False when the merchant account has not confirmed the network or the provider minimum is stale. An unavailable method is still listed so the UI can say why it is greyed out. Methods of a provider the operator has switched off are not listed at all — “greyed out” and “withdrawn” are different answers.
Confirmed provider minimum; null until it is confirmed.
Example
{ "items": [ { "kind": "card" } ]}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"}