Controleer resource-compatibiliteit
Bevestig vóór het quoten dat:- De capability ready is, tot de klant behoort en overeenkomt met de beoogde richting en methode.
- Een stablecoinbron een actieve uitgegeven wallet is die de invoervaluta ondersteunt.
- Wallet-to-wallet-resources dezelfde valuta en netwerk gebruiken.
- Een fiat-uitbetalingsrekening of destination ready is en de outputvaluta en methode ondersteunt.
Kies het exacte bedrag
Maak een quote metPOST /v3/quotes. Verstuur één bedragskant, beide valuta’s en resource-ID’s uit de respons met deze headers:
- Exact in
- Exact out
Stel
in.amount in en laat out.amount weg. De respons berekent wat de destination ontvangt.data.id, data.status, data.expiresAt, geretourneerde legs, rate en fees. Gebruik de geretourneerde decimale strings; herbereken uitvoerbare bedragen niet met floating-point rekenen.
Lees na een stablecoin-gefinancierde exact-out-quote GET /v3/customers/{customerId}/accounts/{accountId}. Vergelijk de huidige bron balances[].available voor de invoervaluta met de geretourneerde data.in.amount. Als er onvoldoende geld is, wijzig of financier je de bron en maak je een nieuwe quote. Fiat-gefinancierde exact-out-quotes gebruiken deze bron-wallet-saldo-check niet.
Voer één keer uit en herstel veilig
Lees de huidige quote metGET /v3/quotes/{quoteId}. Voer alleen uit terwijl de status en expiresAt dit toestaan.
Maak de transfer met POST /v3/transfers:
Idempotency-Key voor deze beoogde transfer en persisteer die voordat je het request verstuurt. Als de respons verloren gaat, herhaal je dezelfde method, path, body en key. Maak geen tweede uitvoeringskey om een onzeker resultaat te herstellen.
Als de API quote_already_executed retourneert, gebruik dan de transferId om verder te gaan met de bestaande transfer. Een idempotente replay kan ook Idempotency-Replayed: true retourneren.
Volg de huidige transfer
LeesGET /v3/transfers/{transferId} na aanmaken en na elke webhook. Bewaar de nieuwste data.state, data.stateDetail en data.openTaskIds.
Wanneer er task-ID’s open zijn, haal je GET /v3/transfers/{transferId}/tasks op en voltooi je elke taak met de huidige revisie en vereisten.
Voor een inkomende beweging kan GET /v3/transfers/{transferId}/instructions transferspecifieke funding-gegevens retourneren. Render alleen de geretourneerde instructievariant en exacte referentie.
Implementeer vervolgens Webhooks zodat elke asynchrone transfer-update door hetzelfde current-state-afhandelingspad gaat.