vpass

Documentación

API de vpass

Una API REST para emitir, actualizar y validar pases desde tu propio sistema. Autenticación con bearer token, idempotencia y webhooks firmados.

Autenticación

Todas las requests se autentican con un bearer token. Usá una key de sandbox para pruebas y una de producción para tráfico real.

Authorization: Bearer vp_live_...

Endpoints

POST/v1/passesEmitir un pase
GET/v1/passes/:idConsultar un pase
PATCH/v1/passes/:idActualizar datos o estado
DELETE/v1/passes/:idRevocar un pase
POST/v1/passes/batchEmisión masiva
GET/v1/scansHistorial de escaneos
POST/v1/templatesCrear plantilla
GET/v1/analyticsMétricas agregadas

Ejemplo

Emitir un pase

Enviá el template, los datos del titular y la metadata que quieras mostrar en el pase. La respuesta incluye el ID y el link de descarga.

curl -X POST https://api.vpass.com.ar/v1/passes \
  -H "Authorization: Bearer vp_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 8f2c-..." \
  -d '{
    "template": "membership",
    "holder": {
      "name": "Marina Ruiz",
      "email": "marina@example.com"
    },
    "metadata": { "tier": "gold" }
  }'
{
  "id": "pass_8f2c",
  "status": "active",
  "wallet": {
    "apple": "https://...",
    "google": "https://..."
  }
}

Webhooks

Suscribite a eventos como pass.created, pass.updated, pass.scanned y pass.revoked. Cada entrega incluye una firma HMAC para verificar el origen.

Errores

Códigos de respuesta

400Request inválida o campos faltantes.
401API key ausente o inválida.
403La key no tiene permiso para el recurso.
404El pase o template no existe.
409Conflicto de idempotencia.
429Rate limit excedido.