neo-pays

Référentiel

Page générée depuis la spécification OpenAPI que la passerelle sert (GET /v1/openapi.json). Ne la modifiez pas à la main : elle est réécrite à chaque build.

Méthode Chemin Description
GET /v1/assets Actifs et décimales
GET /v1/balances Consulter les soldes
GET /v1/corridors Corridors ouverts à votre compte

GET /v1/assets

Actifs et décimales

Chaque actif porte son symbole et son nombre de décimales, qui est ce qui convertit une unité mineure en montant lisible.

⚠️ Ne codez pas les décimales en dur — lisez-les ici. C'est la seule protection contre un facteur cent sur un montant réel.

Réponses

  • 200 — OK (AssetList)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

GET /v1/balances

Consulter les soldes

Solde disponible, en attente et réservé, PAR ACTIF et par (plateforme, pays).

⚠️ Les soldes ne s'additionnent jamais entre actifs : il n'existe aucune conversion de devise sur cette plateforme, donc un total tous actifs confondus n'aurait pas de sens. Le montant réservé couvre les sorties déjà engagées ; il n'est pas dépensable.

Paramètres

Nom Emplacement Requis Description
asset_id query oui Obligatoire. L'actif dont on veut les soldes ; son identifiant vient de GET /v1/assets. Sans lui la route repond 422 invalid_request — les soldes sont tenus par (actif, plateforme, pays) et il n'existe pas de total tous actifs confondus.

Réponses

  • 200 — OK (BalanceList)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

GET /v1/corridors

Corridors ouverts à votre compte

Les (actif, pays, plateforme, sens) que VOTRE compte peut emprunter, dans l'ordre où le routage les choisirait, avec les identifiants à passer dans asset_id et platform_id.

ⓘ Le routage est inspectable, pas devinable : si un encaissement est refusé pour corridor fermé, cette liste dit lequel manquait. Elle ne donne PAS de tarif — la tarification dépend du client, du montant et du sens.

Paramètres

Nom Emplacement Requis Description
asset_id query oui Obligatoire. L'actif du corridor ; son identifiant vient de GET /v1/assets. Sans lui la route repond 422 invalid_request — un corridor est une paire (pays, actif) et il n'existe pas de reponse tous actifs confondus.
country query non Pays du corridor, en ISO 3166-1 alpha-2. Omis, il prend celui du compte. La route ne refuse que si les DEUX manquent — un compte sans pays configure ne peut pas etre devine.
direction query non Sens du corridor. Omis, il vaut INBOUND. Une valeur autre que INBOUND ou OUTBOUND est refusee plutot qu'ignoree.

Réponses

  • 200 — OK (CorridorList)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

Schémas

Les formes renvoyées par les opérations ci-dessus.

AssetList

Champ Type Description
data Asset[]
data[].id integer
data[].symbol string
data[].decimals integer
page integer
per_page integer

Error

Champ Type Description
error object
error.code string
error.message string

BalanceList

La réponse réelle de GET /v1/balances : une enveloppe data portant l'actif, ses sous-soldes et leur total disponible.

Champ Type Description
data object
data.asset_id integer
data.balances Balance[]
data.balances[].platform_id integer
data.balances[].platform_code string Le code STABLE de la plateforme ('wave', 'sn-ecobank-senegal'). null si la plateforme n'est pas (ou plus) active. Ajouté sans rupture ; platform_id reste la clé.
data.balances[].country string ISO 3166-1 alpha-2
data.balances[].platform_account_id integer Le pot. 0 est une vraie valeur : NOTRE compte de plateforme, toujours émis. ⚠️ Non portable entre environnements — nommez un pot par platform_account_handle.
data.balances[].platform_account_handle string Le NOM stable du pot (client_platform_accounts.handle, ex. 'neo-card-card-programme'), celui qu'accepte platform_account_handle sur /v1/payouts et /v1/rebalances. null pour platform_account_id 0.
data.balances[].available_minor string
data.balances[].reserved_minor string Engagé par des sorties en cours ; non dépensable.
data.balances[].held_minor string Retenu par une revue (porte humaine) ; non dépensable.
data.balances[].asset_id integer Non émis par ligne : l'actif est porté une fois par l'enveloppe (data.asset_id). Conservé pour compatibilité de la documentation.
data.balances[].pending_minor string Jamais émis par GET /v1/balances (voir reserved_minor et held_minor). Conservé pour compatibilité de la documentation.
data.total_available_minor string Information seulement : rien ne s'autorise contre le total — chaque pot est distinct et toute dépense en nomme un.
page integer Jamais émis : la liste n'est pas paginée.
per_page integer Jamais émis : la liste n'est pas paginée.

CorridorList

Champ Type Description
data Corridor[]
data[].asset_id integer
data[].country string
data[].platform_id integer
data[].platform string
data[].direction string
data[].rails string[]
page integer
per_page integer