/api/quoteOuvertCoter une operation
Rend la decomposition complete d’une vente : le taux mid-market utilise, chaque prelevement sur sa ligne, le net et le taux effectif reellement obtenu. La somme des lignes egale exactement l’ecart entre le brut et le net — l’invariant est verifie avant que la reponse parte, et une reponse desequilibree n’est jamais rendue.
Authentification : aucune aujourd’hui. L’endpoint de cotation est ouvert : une cotation ne revele aucune donnee personnelle.
Parametres
| Champ | Type | Description |
|---|---|---|
assetIdrequis | string | Identifiant de l’actif depose, par exemple « btc », « usdt », « sol ». |
railIdrequis | string | Identifiant du moyen de paiement de reception, par exemple « sepa_instant », « br_pix », « ke_mpesa ». |
networkId | string | Reseau de depot. Facultatif : le premier reseau de l’actif est pris par defaut. Le cout reseau varie fortement d’un reseau a l’autre, ce champ change donc le montant net. |
directionrequis | "sell" | "receive" | Sens de la saisie. « sell » : le montant est ce que vous deposez. « receive » : le montant est ce que vous voulez recevoir, et le depot requis est resolu par recherche binaire. |
amountrequis | string | Montant en unite majeure, transmis en CHAINE. Un nombre flottant JSON perdrait des unites mineures sur les grands montants : la chaine est le seul format sur lequel client et serveur sont d’accord au centime pres. |
curl -sS -X POST https://fiatside.com/api/quote \
-H 'Content-Type: application/json' \
-d '{
"assetId": "usdt",
"railId": "sepa_instant",
"networkId": "tron",
"direction": "sell",
"amount": "1000"
}'{
"deposit": { "amount": "1000.000000", "ticker": "USDT", "decimals": 6 },
"gross": "921.68",
"net": "912.28",
"currency": "EUR",
"currencyDecimals": 2,
"midRate": "0.92168430",
"effectiveRate": "0.91228000",
"totalCostBps": 102,
"lines": [
{ "code": "network", "amount": "1.11", "basis": "Cout reseau tron, preleve en USDT" },
{ "code": "spread", "amount": "8.29", "basis": "0.90 % du montant converti" }
],
"settlement": { "p50Minutes": 1, "p95Minutes": 12 },
"lockSeconds": 1800,
"rateAsOf": 1788356981608,
"rateSource": "mock",
"limitError": null
}- La reponse porte l’en-tete Cache-Control: no-store. Une cotation mise en cache est un prix perime servi comme un prix ferme.
- Un depassement de limite du rail n’est pas une erreur HTTP : la cotation est rendue avec un objet limitError qui contient le code below_min ou above_max et la limite exacte, pour que votre interface puisse afficher le bon message sans second appel.
- rateSource indique la source du prix. La valeur « mock » designe la source deterministe de developpement : elle ne peut pas demarrer en production, ou le processus refuse de se lancer plutot que de coter des prix figes.
Erreurs possibles : invalid_request, unknown_asset_or_rail, rail_not_open, asset_not_offered, invalid_amount, rate_stale, rate_unavailable, quote_failed. Catalogue complet