1. Configura sandbox
Usa una chiave API sandbox dal tuo backend:Sandbox setup
2. Crea un cliente
Crea un cliente individuale conPOST /v3/customers:
Create customer
data.id come CUSTOMER_ID.
3. Scegli il risultato
- Pay-in: ricevi USD e regola USDC nel wallet emesso del cliente.
- Payout: invia USDC dal wallet emesso del cliente a un conto bancario di proprietà del cliente.
- Conto bancario emesso: emetti un conto ACH/USD che si regola nel wallet emesso del cliente.
4. Trova una capability idonea
Elenca le capability supportate conGET /v3/customers/{customerId}/capabilities/supported:
Supported capabilities
availability impostato su available o beta, eligibility.eligible impostato su true, con le directions e il method necessari e l’accountType corrispondente. Usa il wallet emesso del cliente come destinazione del pay-in, sorgente del payout o conto di regolamento del conto bancario; usa il conto di proprietà del cliente come destinationId per questo percorso di payout. Se vengono restituite institutions, usa solo una scelta di institution restituita. Salva l’id della voce come CAPABILITY_ID; non codificare in modo rigido un ID di capability universale.
5. Richiedi la capability
Richiedi la capability selezionata conPOST /v3/customers/{customerId}/capabilities/{capabilityId}:
Request capability
data.status come CAPABILITY_STATUS e data.openTaskIds come TASK_IDS.
6. Completa l’onboarding in sandbox
SeTASK_IDS non è vuoto, completa ogni requisito corrente tramite Capability e task.
Per questa guida, imposta la capability su ready con POST /v3/sandbox/customers/{customerId}/capabilities/{capabilityId}/status:
Set capability ready
GET /v3/customers/{customerId}/capabilities/{capabilityId}:
Refetch capability
CAPABILITY_STATUS e TASK_IDS da data.status e data.openTaskIds. Prosegui solo quando CAPABILITY_STATUS è ready.
7. Costruisci il flusso selezionato
Crea un wallet USDC emesso su Base conPOST /v3/customers/{customerId}/accounts:
Create wallet
data.id come FLOW_WALLET_ID, data.status come FLOW_WALLET_STATUS e data.openTaskIds come FLOW_WALLET_TASK_IDS. Se FLOW_WALLET_TASK_IDS non è vuoto, completa i task correnti tramite Capability e task.
Rileggi il wallet con GET /v3/customers/{customerId}/accounts/{accountId}:
Refetch wallet
FLOW_WALLET_STATUS e FLOW_WALLET_TASK_IDS da data.status e data.openTaskIds. Prosegui solo quando FLOW_WALLET_STATUS è ready.
- Pay-in
- Payout
- Conto bancario emesso
Crea un quote USD-a-USDC con Salva Salva La risposta contiene
POST /v3/quotes:Pay-in quote
data.id come QUOTE_ID, quindi eseguilo con POST /v3/transfers:Execute quote
data.id come TRANSFER_ID. Recupera le istruzioni con GET /v3/transfers/{transferId}/instructions:Funding instructions
data.transferId e data.instructions. Salva data.transferId come TRANSFER_ID e data.instructions come FUNDING_INSTRUCTIONS.TRANSFER_ID con GET /v3/transfers/{transferId}:
Monitor transfer
Pay-in
Costruisci il flusso completo di pay-in.
Payout
Costruisci la gestione del payout di produzione.
Conto bancario emesso
Gestisci provisioning e dettagli.