1. Configura el sandbox
Utiliza una clave de API de sandbox desde tu backend:Sandbox setup
2. Crea un cliente
Crea un cliente individual conPOST /v3/customers:
Create customer
data.id como CUSTOMER_ID.
3. Elige el resultado
- Cobro (pay-in): recibe USD y liquida USDC en la cartera emitida del cliente.
- Pago (payout): envía USDC desde la cartera emitida del cliente a una cuenta bancaria propiedad del cliente.
- Cuenta bancaria emitida: emite una cuenta ACH/USD que se liquida en la cartera emitida del cliente.
4. Encuentra una capacidad elegible
Lista las capacidades soportadas conGET /v3/customers/{customerId}/capabilities/supported:
Supported capabilities
availability en available o beta, eligibility.eligible en true, los directions y method necesarios y el accountType correspondiente. Utiliza la cartera emitida del cliente como destino del cobro, origen del pago o cuenta de liquidación de la cuenta bancaria; utiliza la cuenta propiedad del cliente como destinationId para esta ruta de pago. Si se devuelven institutions, utiliza únicamente una elección de institución devuelta. Guarda el id de la entrada como CAPABILITY_ID; no fijes en el código un ID de capacidad universal.
5. Solicita la capacidad
Solicita la capacidad seleccionada conPOST /v3/customers/{customerId}/capabilities/{capabilityId}:
Request capability
data.status como CAPABILITY_STATUS y data.openTaskIds como TASK_IDS.
6. Completa el onboarding en sandbox
SiTASK_IDS no está vacío, completa cada requisito actual mediante Capacidades y tareas.
Para este recorrido, establece la capacidad en ready con POST /v3/sandbox/customers/{customerId}/capabilities/{capabilityId}/status:
Set capability ready
GET /v3/customers/{customerId}/capabilities/{capabilityId}:
Refetch capability
CAPABILITY_STATUS y TASK_IDS a partir de data.status y data.openTaskIds. Continúa solo cuando CAPABILITY_STATUS sea ready.
7. Construye el flujo seleccionado
Crea una cartera USDC emitida en Base conPOST /v3/customers/{customerId}/accounts:
Create wallet
data.id como FLOW_WALLET_ID, data.status como FLOW_WALLET_STATUS y data.openTaskIds como FLOW_WALLET_TASK_IDS. Si FLOW_WALLET_TASK_IDS no está vacío, completa las tareas actuales mediante Capacidades y tareas.
Vuelve a consultar la cartera con GET /v3/customers/{customerId}/accounts/{accountId}:
Refetch wallet
FLOW_WALLET_STATUS y FLOW_WALLET_TASK_IDS a partir de data.status y data.openTaskIds. Continúa solo cuando FLOW_WALLET_STATUS sea ready.
- Cobro
- Pago
- Cuenta bancaria emitida
Crea una cotización USD a USDC con Guarda Guarda La respuesta contiene
POST /v3/quotes:Pay-in quote
data.id como QUOTE_ID y luego ejecútala con POST /v3/transfers:Execute quote
data.id como TRANSFER_ID. Obtén las instrucciones con GET /v3/transfers/{transferId}/instructions:Funding instructions
data.transferId y data.instructions. Guarda data.transferId como TRANSFER_ID y data.instructions como FUNDING_INSTRUCTIONS.TRANSFER_ID con GET /v3/transfers/{transferId}:
Monitor transfer
Cobro
Construye el flujo completo de cobro.
Pago
Construye la gestión de pagos en producción.
Cuenta bancaria emitida
Gestiona el aprovisionamiento y los datos.