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

DocumentoContenido
AutenticaciónEncabezados, firma de pedidos, configuración de claves
Catálogo y pedidosSaldo, productos, precios, pedidos, códigos
ConvencionesMontos, fechas, IDs, límite de solicitudes, errores
WebhooksAvisos de pedidos que CardV envía a tu servidor
SandboxPruebas y lista de verificación para salir a producción
SeguridadCómo proteger tus claves y códigos

#Entornos

LiveSandbox
URL base de la APIhttps://b2b.cardv.net/api/v1https://sandbox.cardv.net/api/v1
Merchant Portalhttps://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

  1. Solicita una cuenta de comercio en el Portal y confirma tu correo.

  2. Espera la aprobación. CardV revisa los datos de tu empresa. Luego recibes tu Merchant ID (número de comercio), por ejemplo M00000001.

  3. Entra a Sandbox. Inicia sesión en el Portal y elige Sandbox en la parte superior. Recibes 1,000 USD de dinero de prueba.

  4. 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.

  5. Consulta tu saldo:

    Shell
    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[@]}"
  6. Busca un producto:

    Shell
    curl -sS "$CARDV_BASE/api/v1/skus?search=steam&limit=20" "${AUTH[@]}"

    Elige uno con "availability": "available" y anota su sku_id.

  7. Consulta el precio:

    Shell
    curl -sS "$CARDV_BASE/api/v1/skus/S000001/quote?quantity=1" "${AUTH[@]}"

    Anota merchant_price. Es lo que pagas por unidad.

  8. Haz el pedido. Esta llamada tiene que ir firmada. Usa uno de los ejemplos de Autenticación con este cuerpo:

    JSON
    {
      "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.

  9. Lee los códigos. Llama a GET/api/v1/orders/O-00001234 hasta que el estado sea succeeded. Los códigos están en items[].deliveries[].display_fields. También puedes recibir un webhook cuando el pedido termine.

  10. 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.

EndpointPara qué sirveFirmado
GET/accountDatos de tu empresa y estado de acceso a la APINo
GET/balanceCuánto dinero puedes gastarNo
GET/skusProductos que puedes comprar, con tu precioNo
GET/skus/{sku_id}Un solo productoNo
GET/skus/{sku_id}/quotePrecio actual para una cantidadNo
POST/ordersHacer un pedido, pagado con tu billeteraSí
GET/orders/{order_id}Estado del pedido y códigosNo

Cualquier otro endpoint responde HTTP 403 si lo llamas con una clave de API:

JSON
{"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é esEjemploNotas
Merchant IDM00000001Es tuyo. Nunca cambia.
SKU (un producto que puedes comprar)S000456Lo usas para cotizar y pedir.
ID de pedido de CardVO-00001234Guárdalo junto con tu pedido.
Tu número de pedidoSHOP-10001Lo 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.