API de pagos con stablecoins: integra USDC y USDT en una tarde
Una API de pagos con stablecoins permite que tu backend cobre a los clientes en USDC o USDT sin operar nodos de blockchain ni conciliar transferencias a mano. Creas un pago, envías al cliente a una página de pago y recibes un webhook cuando llega el dinero.
Esta guía explica qué hace una API así, qué revisar antes de elegir una y cómo integrar la API de OrcaRail de principio a fin. Si ya tienes un backend con una tabla de pedidos, todo el flujo cabe en una tarde.
Qué es una API de stablecoins
"API de stablecoins" abarca tres tipos de producto distintos:
| Tipo | Qué hace | Quién la usa |
|---|---|---|
| API del emisor | Emitir y redimir una stablecoin contra dólares | Exchanges y fintech que mueven grandes saldos |
| API de wallets o infraestructura | Crear wallets, firmar y enviar transacciones | Apps que custodian fondos de usuarios |
| API de pagos | Cotizar un pedido, cobrarlo, confirmarlo y avisar a tu servidor | Comercios y SaaS que quieren cobrar |
Si vendes algo y quieres cobrar en USDC o USDT, necesitas el tercer tipo: una API de pagos con stablecoins, también llamada API de pagos con criptomonedas. El resto del artículo trata de eso.
Qué debe resolver una API de pagos con stablecoins
- Cotización: convertir el total en USD en un importe exacto en tokens, con caducidad.
- Elección de red: USDC y USDT existen en muchas cadenas. La API debe dejarte elegir qué recibes y permitir que el cliente pague con lo que tiene.
- Confirmación: vigilar la cadena y decidir cuándo un pago es definitivo.
- Webhooks: firmados, con reintentos y protección contra repetición, para poder confiar en ellos.
- Liquidación: enviar los fondos a wallets que controlas, o decirte claramente quién los custodia.
- Pruebas: un modo testnet con la misma API, para que tu CI nunca toque dinero real.
- Cobros recurrentes, si vendes suscripciones.
La API de OrcaRail de un vistazo
| URL base | https://api.orcarail.com/api/v1 |
| Autenticación | Basic Auth con clave y secreto de API (ak_live_ / ak_test_) |
| Objeto principal | Payment intent |
| Webhooks | HMAC SHA-256, con firma con marca de tiempo contra repeticiones |
| SDK | Node.js, PHP, Laravel Cashier |
| Redes | Más de 70 mainnets (EVM, Solana, Bitcoin); Tron aún no soportado |
| Comisión | 0,5 % por transacción completada, las primeras 1.000 gratis (precios) |
Cuando revisamos la API en vivo el 29 de octubre de 2026, USDC aparecía en 43 redes y USDT en 30. La lista actual está en Redes y tokens.
Cómo integrar pagos en USDC y USDT con OrcaRail
1. Obtén claves de sandbox
Regístrate en app.orcarail.com y abre una organización sandbox. Crea una clave de API; empieza por ak_test_ y el secreto se muestra una sola vez. Los sandbox funcionan solo en testnets.
2. Elige el token y la red que recibes
curl -s "https://api.orcarail.com/api/v1/payments/networks?testnet=true"
curl -s "https://api.orcarail.com/api/v1/payments/networks/<networkId>/tokens"
Guarda el networkId y el tokenId, por ejemplo USDC en Base Sepolia durante las pruebas. Los clientes pueden pagar con otro token o red en la página de pago; la cotización añade una comisión de puente que pagan ellos y tú recibes el importe completo.
3. Crea y confirma un payment intent
Con el SDK de Node:
import OrcaRail from '@orcarail/node'
const orcarail = new OrcaRail(process.env.ORCARAIL_API_KEY!, process.env.ORCARAIL_API_SECRET!)
const intent = await orcarail.paymentIntents.create({
amount: '49.00',
currency: 'usd',
payment_method_types: ['crypto'],
tokenId: process.env.RECEIVE_TOKEN_ID!,
networkId: process.env.RECEIVE_NETWORK_ID!,
return_url: 'https://yourapp.com/success',
cancel_url: 'https://yourapp.com/cancel',
metadata: { order_id: '12345' },
})
const confirmed = await orcarail.paymentIntents.confirm(intent.id, {
client_secret: intent.client_secret!,
})
// Redirect the customer to the hosted pay URL from `confirmed`.
El SDK de PHP (composer require orcarail/orcarail-php) tiene las mismas llamadas: $orcarail->paymentIntents->create([...]). Ambos envuelven los endpoints REST.
4. Verifica el webhook y entrega el pedido
app.post('/webhooks/orcarail', express.raw({ type: 'application/json' }), (req, res) => {
const event = orcarail.webhooks.constructEventFromHeaders(req.body, req.headers, process.env.ORCARAIL_API_SECRET!)
if (event.type === 'payment_intent.completed') {
// In production, also require event.livemode === true.
// Mark order event.data.object.metadata.order_id as paid (idempotently).
}
res.sendStatus(200)
})
constructEventFromHeaders comprueba la firma HMAC y rechaza entregas de hace más de 5 minutos. Los eventos de sandbox llevan livemode: false; nunca envíes productos reales por ellos. Ver firmas de webhooks y eventos.
5. Prueba y pasa a producción
En el sandbox, pulsa Simulate payment o llama a orcarail.paymentIntents.simulate(id) para completar un pago sin wallet (simular pagos). También puedes pagar con tokens de prueba de los faucets de testnet. Cuando el flujo funcione, cambia a una organización live y a una clave ak_live_.
Más allá de los pagos únicos
- Suscripciones: las suscripciones de OrcaRail pueden enviar un enlace de pago por ciclo o cobrar las renovaciones on-chain desde un allowance. Ver pagos recurrentes con criptomonedas.
- Sin código: el plugin de WooCommerce usa la misma API.
- Agentes de IA para programar: el servidor MCP permite que Claude Code, Cursor o Codex creen checkouts de prueba por ti.
Preguntas frecuentes
¿Hay una API de pagos con stablecoins gratuita?
La API alojada de OrcaRail cobra 0,5 % por transacción completada después de las primeras 1.000 transacciones gratis. La versión autoalojada no tiene comisión de OrcaRail. Las comisiones de red siguen aplicándose.
¿Puedo aceptar USDC y USDT con una sola integración?
Sí. Eliges un token y una red para recibir. La página de pago permite que el cliente pague con USDC, USDT u otros tokens en las redes soportadas.
¿Qué redes soporta la API?
Más de 70 mainnets, como Ethereum, Base, Polygon, Arbitrum, Optimism, Solana y Bitcoin. Tron aún no está soportado. Ver Redes y tokens.
¿Cómo pruebo sin dinero real?
Usa una organización sandbox con una clave ak_test_. Funciona en testnets y puede simular pagos.
¿Cómo se compara con las API de stablecoins de Stripe o Coinbase?
Stripe liquida los pagos con stablecoins en fiat en tu saldo de Stripe. Coinbase Business mantiene los fondos en una cuenta de Coinbase. OrcaRail envía los fondos a wallets que tú controlas. Ver alternativas a Coinbase Commerce y la lista de pasarelas de pago de criptomonedas.
