Desarrolladores/Primeros pasos
API para comercios de CardV
CardV vende productos digitales prepagados a empresas: tarjetas de regalo, recargas de juegos, eSIM y más. Con la API para comercios (Merchant API), tu servidor puede comprarlos de forma automática. Consultas tu saldo, buscas un producto, ves su precio, haces el pedido y recibes los códigos. Los pedidos se pagan con el saldo prepagado de tu billetera CardV. Todo lo demás, como agregar fondos o revisar el historial de pedidos, se hace en el Merchant Portal.
#Documentación
| Documento | Contenido |
|---|---|
| Autenticación | Encabezados, firma de pedidos, configuración de claves |
| Catálogo y pedidos | Saldo, productos, precios, pedidos, códigos |
| Convenciones | Montos, fechas, IDs, límite de solicitudes, errores |
| Webhooks | Avisos de pedidos que CardV envía a tu servidor |
| Sandbox | Pruebas y lista de verificación para salir a producción |
| Seguridad | Cómo proteger tus claves y códigos |
#Entornos
| Live | Sandbox | |
|---|---|---|
| URL base de la API | https://b2b.cardv.net/api/v1 | https://sandbox.cardv.net/api/v1 |
| Merchant Portal | https://b2b.cardv.net/portal/ | El mismo Portal, cambiando a Sandbox |
Sandbox es una copia de CardV separada, solo para pruebas, con dinero de prueba. Las claves, los saldos, los pedidos y los IDs de producto son distintos en cada entorno.
#Primeros pasos
Solicita una cuenta de comercio en el Portal y confirma tu correo.
Espera la aprobación. CardV revisa los datos de tu empresa. Luego recibes tu Merchant ID (número de comercio), por ejemplo
M00000001.Entra a Sandbox. Inicia sesión en el Portal y elige Sandbox en la parte superior. Recibes 1,000 USD de dinero de prueba.
Crea una clave de API. En el Portal, ve a Integrations → API keys. Crea una clave y muéstrala con el código que CardV te envía por correo. Guárdala en tu gestor de secretos.
Consulta tu saldo:
export CARDV_BASE=https://sandbox.cardv.net export CARDV_MERCHANT_ID=M00000001 # yours export CARDV_API_KEY=cvb2b_... # from your secret store AUTH=(-H "X-Merchant-Id: $CARDV_MERCHANT_ID" -H "X-Api-Key: $CARDV_API_KEY") curl -sS "$CARDV_BASE/api/v1/balance" "${AUTH[@]}"Busca un producto:
curl -sS "$CARDV_BASE/api/v1/skus?search=steam&limit=20" "${AUTH[@]}"Elige uno con
"availability": "available"y anota susku_id.Consulta el precio:
curl -sS "$CARDV_BASE/api/v1/skus/S000001/quote?quantity=1" "${AUTH[@]}"Anota
merchant_price. Es lo que pagas por unidad.Haz el pedido. Esta llamada tiene que ir firmada. Usa uno de los ejemplos de Autenticación con este cuerpo:
{ "external_order_id": "TEST-0001", "items": [ {"sku_id": "S000001", "quantity": 1, "expected_unit_price": "9.2500"} ] }Recibes HTTP 201 con un ID de pedido de CardV, como
O-00001234.Lee los códigos. Llama a
GET/api/v1/orders/O-00001234hasta que el estado seasucceeded. Los códigos están enitems[].deliveries[].display_fields. También puedes recibir un webhook cuando el pedido termine.Sal a producción después de completar la lista de verificación de Sandbox.
Los IDs y precios de arriba son ejemplos. Usa los valores que te devuelva tu propio catálogo.
#La API en resumen
Hay siete endpoints. Todas las rutas empiezan con /api/v1.
| Endpoint | Para qué sirve | Firmado |
|---|---|---|
GET/account | Datos de tu empresa y estado de acceso a la API | No |
GET/balance | Cuánto dinero puedes gastar | No |
GET/skus | Productos que puedes comprar, con tu precio | No |
GET/skus/{sku_id} | Un solo producto | No |
GET/skus/{sku_id}/quote | Precio actual para una cantidad | No |
POST/orders | Hacer un pedido, pagado con tu billetera | Sí |
GET/orders/{order_id} | Estado del pedido y códigos | No |
Cualquier otro endpoint responde HTTP 403 si lo llamas con una clave de API:
{"detail": "This operation is only available in the Merchant Portal."}Las recargas de saldo de celular (tiempo aire) no están disponibles por la API.
#IDs
| Qué es | Ejemplo | Notas |
|---|---|---|
| Merchant ID | M00000001 | Es tuyo. Nunca cambia. |
| SKU (un producto que puedes comprar) | S000456 | Lo usas para cotizar y pedir. |
| ID de pedido de CardV | O-00001234 | Guárdalo junto con tu pedido. |
| Tu número de pedido | SHOP-10001 | Lo eliges tú (external_order_id). |
Guarda los IDs como texto. No intentes interpretarlos. Consulta Convenciones.
#Lo que se hace en el Merchant Portal
- Agregar fondos a tu billetera y la alerta por correo de saldo bajo
- Historial de pedidos, búsqueda y exportación a CSV
- Facturas de pedidos
- Movimientos de la billetera y conciliación
- Configuración de webhooks, historial de envíos y reenvíos
- Claves de API
- Lista de IPs permitidas
- Miembros del equipo y roles
- Registro de auditoría
- Verificación en dos pasos (2FA)
- Cambio entre Live y Sandbox
#Compatibilidad y soporte
Podemos agregar campos nuevos a las respuestas y nuevos valores de estado sin previo aviso. Ignora los campos que no conozcas. Si un pedido tiene un estado desconocido, trátalo como "todavía no terminado". No dependas del texto exacto de los mensajes de error.
Escribe a [email protected] con tu Merchant ID, el entorno, los IDs de pedido, la hora (UTC) y el código HTTP.
Nunca envíes claves de API, firmas, secretos de webhook ni códigos de tarjetas.
¿Dudas sobre tu integración? Escribe a [email protected] con tu Merchant ID y el ID del pedido o de la solicitud.