Push
Registrar un dispositivo
POST y DELETE /push/tokens registran o revocan el token de push de un dispositivo o navegador.
POST /push/tokens
Registra (o actualiza) el token de push del dispositivo para el usuario de la sesión. Idempotente por token: el último inicio de sesión gana, así que un token que estaba en otra cuenta pasa a la nueva. Con device_id, el token anterior de ese mismo dispositivo se revoca.
Autenticación
Bearer Token (Authorization: Bearer {token}). No exige KYC.
Request
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
platform | ios | android | web | sí | debe coincidir con el cliente (x-qvapay-client-platform) |
token | string (16–512) | sí | token APNs (hex), token FCM o endpoint de la suscripción Web Push |
keys | { p256dh, auth } | solo web | claves de la suscripción Web Push |
device_id | string ≤ 64 | no | id estable de la instalación generado por la app |
app_version, os_version, model | string | no | |
locale | string ≤ 10 | no | es |
timezone | IANA | no | America/Havana; sirve para la ventana de silencio de las campañas |
apns_environment | production | sandbox | solo iOS | production por defecto; obligatorio sandbox en builds de desarrollo |
curl -X POST https://api.qvapay.com/push/tokens \
-H "Authorization: Bearer {token}" \
-H "x-qvapay-client-platform: android" \
-H "Content-Type: application/json" \
-d '{ "platform": "android", "token": "fcm-registration-token", "device_id": "8f2c…", "app_version": "3.6.1", "os_version": "14", "locale": "es", "timezone": "America/Havana" }'Response
201 al crear, 200 al actualizar.
{ "id": "5123", "platform": "android", "status": "active", "created": true }| Código | Motivo |
|---|---|
400 PLATFORM_MISMATCH | la plataforma no coincide con el cliente |
400 | datos inválidos (details lista los campos) |
429 | demasiadas solicitudes (10/min por usuario) |
503 PUSH_UNAVAILABLE | servicio no disponible |
DELETE /push/tokens
Revoca el token del dispositivo (cerrar sesión). Indica token, device_id o all: true.
curl -X DELETE https://api.qvapay.com/push/tokens \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{ "device_id": "8f2c…" }'{ "revoked": 1 }