curl "https://api.scanova.io/plans/downgrade-impact/?target_plan=starter-scanova-io" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a"
{
"violations": [
{
"codename": "TOTAL_QR_CODES",
"quota_name": "Total QR Codes",
"exceed_value": 12,
"resolvable": true,
"total_affected_count": 112,
"affected_resources": ["Q07afe81aa0034c01", "Q19bd72cc1145d02"]
}
],
"current_plan_expiry": "2027-08-16",
"days_remaining": 365
}
Analítica y planes
Previsualizar el impacto de una bajada de plan
GET /plans/downgrade-impact/
GET
/
plans
/
downgrade-impact
/
curl "https://api.scanova.io/plans/downgrade-impact/?target_plan=starter-scanova-io" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a"
{
"violations": [
{
"codename": "TOTAL_QR_CODES",
"quota_name": "Total QR Codes",
"exceed_value": 12,
"resolvable": true,
"total_affected_count": 112,
"affected_resources": ["Q07afe81aa0034c01", "Q19bd72cc1145d02"]
}
],
"current_plan_expiry": "2027-08-16",
"days_remaining": 365
}
Previsualiza qué recursos bloquearían una bajada de plan antes de confirmar el pago, en el host de la API de gestión (
Un array
api.scanova.io), autenticado con tu clave sin procesar de la API de gestión.
GET https://api.scanova.io/plans/downgrade-impact/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
string
requerido
El slug del plan objetivo (del campo
slug de Listar planes disponibles).curl "https://api.scanova.io/plans/downgrade-impact/?target_plan=starter-scanova-io" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a"
{
"violations": [
{
"codename": "TOTAL_QR_CODES",
"quota_name": "Total QR Codes",
"exceed_value": 12,
"resolvable": true,
"total_affected_count": 112,
"affected_resources": ["Q07afe81aa0034c01", "Q19bd72cc1145d02"]
}
],
"current_plan_expiry": "2027-08-16",
"days_remaining": 365
}
violations vacío significa que la bajada es limpia por ahora — no habría que cambiar nada antes. Esto es completamente de solo lectura y no cambia nada; reutiliza exactamente el mismo motor de reglas que aplica el pago real, así que no puede contradecir lo que realmente ocurriría al proceder con la bajada.
Campos de la respuesta
array
Una entrada por cada cuota que el plan objetivo no puede cubrir dado el uso actual de la cuenta.
Mostrar propiedades de violation
Mostrar propiedades de violation
string
El identificador estable de la cuota (p. ej.
TOTAL_QR_CODES, SHARED_USERS).string
Nombre legible de la cuota.
integer
Cuánto excede la cuenta actualmente el límite del plan objetivo.
boolean
Si la cuenta puede resolverlo por sí misma (p. ej. eliminando/desactivando algunos recursos) antes de bajar de plan.
integer
Recuento total de recursos contabilizados contra esta cuota.
array
Identificadores de los recursos concretos contabilizados (p. ej. valores
qrid de QR) — puede ser una muestra truncada para recuentos altos.string
La fecha de expiración del plan actual, o
null para un plan sin expiración.integer | null
Días restantes hasta
current_plan_expiry, o null si el plan no tiene expiración.400 si falta target_plan.
Relacionado
- Listar planes disponibles — encuentra un
slugpara previsualizar la bajada. - Plan actual — el plan actual y las asignaciones de cuota de la cuenta.
- Resumen de la API de gestión — el esquema de autenticación y las reglas de cuota que aplican a este endpoint.
Autorizaciones
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Parámetros de consulta
The target plan's slug.
Respuesta
Violations that would block the downgrade (empty array if none), plus the current plan's remaining time.
¿Esta página le ayudó?