Comprova la compatibilitat dels recursos
Abans de cotitzar, confirma que:- La capacitat està preparada, pertany al client i coincideix amb la direcció i el mètode previstos.
- Una font de stablecoin és una cartera emesa activa que suporta la moneda d’entrada.
- Els recursos de cartera a cartera utilitzen la mateixa moneda i xarxa.
- Un compte de pagament fiat o una destinació està preparat i suporta la moneda i el mètode de sortida.
Escull l’import exacte
Crea una cotització ambPOST /v3/quotes. Envia un costat de l’import, les dues monedes i els IDs de recurs derivats de la resposta amb aquestes capçaleres:
- Entrada exacta
- Sortida exacta
Estableix
in.amount i omet out.amount. La resposta calcula el que rep la destinació.data.id, data.status, data.expiresAt, els trams retornats, la taxa i les comissions de la cotització. Utilitza les cadenes decimals retornades; no recalculis els imports executables amb aritmètica de coma flotant.
Després d’una cotització de sortida exacta finançada amb stablecoin, llegeix GET /v3/customers/{customerId}/accounts/{accountId}. Compara l’actual balances[].available de la font per a la moneda d’entrada amb el data.in.amount retornat. Si els fons són insuficients, canvia o finança la font i crea una nova cotització. Les cotitzacions de sortida exacta finançades amb fiat no utilitzen aquesta comprovació de saldo de la cartera d’origen.
Executa una vegada i recupera de manera segura
Llegeix la cotització actual ambGET /v3/quotes/{quoteId}. Executa només mentre el seu estat i expiresAt ho permetin.
Crea la transferència amb POST /v3/transfers:
Idempotency-Key per a aquesta transferència prevista i persisteix-la abans d’enviar la sol·licitud. Si la resposta es perd, reintenta el mateix mètode, camí, cos i clau. No creïs una segona clau d’execució per recuperar un resultat incert.
Si l’API retorna quote_already_executed, utilitza el seu transferId per continuar amb la transferència existent. Una repetició idempotent també pot retornar Idempotency-Replayed: true.
Segueix la transferència actual
LlegeixGET /v3/transfers/{transferId} després de la creació i després de cada webhook. Emmagatzema els data.state, data.stateDetail i data.openTaskIds més recents.
Quan hi hagi IDs de tasca oberts, obté GET /v3/transfers/{transferId}/tasks i completa cada tasca utilitzant la seva revisió i requisits actuals.
Per a un moviment entrant, GET /v3/transfers/{transferId}/instructions pot retornar detalls de finançament específics de la transferència. Renderitza només la variant d’instrucció retornada i la referència exacta.
A continuació, implementa Webhooks perquè cada actualització asíncrona de la transferència entri al mateix camí de gestió d’estat actual.