Catálogo de errores
Todos los errCode de la API, su estado HTTP y su significado.
Toda respuesta de la API tiene la forma { errCode, errMsg, data, meta }. errCode: 0 es éxito; cualquier otro valor es un error y errMsg lo explica en español. Programa contra el errCode (es estable), no contra el texto ni solo contra el estado HTTP.
Cuando el error es de validación, errors indica el campo y el motivo, por ejemplo {"errors": {"content": ["blocked"]}}.
Autenticación y acceso
| errCode |
HTTP |
Nombre |
Significado |
1001 |
401 |
Unauthenticated |
Autenticación requerida |
1002 |
401 |
InvalidToken |
Token inválido |
1003 |
401 |
KeyRevoked |
La API key fue revocada o venció |
1004 |
403 |
IpNotAllowed |
Acceso no permitido desde esta dirección IP |
1005 |
403 |
InsufficientScope |
No tienes permiso para esta acción |
1006 |
403 |
PublicKeyOnSecretEndpoint |
Este endpoint requiere una llave secreta (sk_); la llave pública (pk_) solo registra dispositivos |
1101 |
401 |
TokenExpired |
La sesión expiró |
1102 |
403 |
MfaRequired |
Se requiere segundo factor de autenticación |
1103 |
401 |
InvalidCredentials |
Correo o contraseña incorrectos |
1104 |
403 |
EmailNotVerified |
Debes verificar tu correo para continuar |
1105 |
403 |
AccountLocked |
Cuenta bloqueada temporalmente por intentos fallidos |
1106 |
401 |
InvalidMfaCode |
Código de verificación inválido |
1107 |
409 |
IdentityLinkRequired |
Ya existe una cuenta con ese correo: inicia sesión con tu método actual y vincula el proveedor desde Seguridad |
1108 |
422 |
CaptchaInvalid |
Completa la verificación de seguridad (captcha) |
1109 |
401 |
LinkExpired |
El enlace o código venció o ya fue usado |
1110 |
422 |
WeakPassword |
La contraseña no cumple la política de seguridad |
1111 |
403 |
ReauthRequired |
Debes volver a autenticarte para continuar |
1112 |
403 |
CompanyRequiresMfa |
Esta empresa exige verificación en dos pasos: actívala en Seguridad para continuar |
1113 |
409 |
LastLoginMethod |
No puedes quitar tu último método de acceso |
1114 |
401 |
IdentityTokenInvalid |
No se pudo validar el inicio de sesión con el proveedor |
1115 |
401 |
PasskeyInvalid |
No se pudo verificar la passkey: inténtalo de nuevo o usa otro método |
Validación
| errCode |
HTTP |
Nombre |
Significado |
2001 |
422 |
FieldRequired |
Falta un campo requerido |
2002 |
422 |
InvalidFormat |
Formato de datos inválido |
2003 |
413 |
PayloadTooLarge |
La solicitud es demasiado grande |
2004 |
422 |
PlatformNotSupported |
Plataforma no soportada |
2005 |
422 |
TokenProviderMismatch |
El formato del token no coincide con el proveedor o la plataforma indicados |
2006 |
422 |
ExpoTokenNotSupported |
Los tokens de Expo (ExponentPushToken) no son compatibles: usa el token nativo con getDevicePushTokenAsync() |
2008 |
422 |
PairingCodeInvalid |
Código de emparejamiento inválido o vencido |
2011 |
422 |
ScheduleInvalid |
Programación inválida |
2012 |
422 |
TimezoneInvalid |
Zona horaria inválida |
Límites y plan
| errCode |
HTTP |
Nombre |
Significado |
3001 |
429 |
QuotaExceeded |
Se agotó la cuota mensual de envíos de tu plan |
3002 |
403 |
DeviceLimitReached |
Alcanzaste el límite de dispositivos de tu plan |
3003 |
429 |
RateLimited |
Demasiadas solicitudes, intenta de nuevo más tarde |
3004 |
403 |
FeatureNotInPlan |
Tu plan no incluye esta función |
3005 |
403 |
TenantSuspended |
La empresa está suspendida |
3006 |
429 |
TestLimitReached |
Alcanzaste el límite diario de envíos de prueba de esta app |
3008 |
422 |
CouponInvalid |
Cupón inválido, vencido o no aplicable a este plan |
3009 |
409 |
DowngradeNotAllowed |
Tu uso actual no cabe en ese plan |
3010 |
409 |
ExemptionLocked |
La suscripción exenta no admite esta acción: modifica la exención |
3011 |
403 |
PlanLimitReached |
Alcanzaste un límite de tu plan |
3012 |
402 |
SubscriptionInactive |
La suscripción de la empresa no está activa: elige un plan para seguir enviando |
Recursos
| errCode |
HTTP |
Nombre |
Significado |
4001 |
404 |
AppNotFound |
App no encontrada |
4002 |
404 |
DeviceNotFound |
Dispositivo no encontrado |
4003 |
404 |
NotificationNotFound |
Notificación no encontrada |
4004 |
409 |
NotCancellable |
La notificación ya no se puede cancelar |
4005 |
409 |
IdempotencyConflict |
La Idempotency-Key ya se usó con otro contenido |
4006 |
404 |
CompanyNotFound |
Empresa no encontrada o sin acceso |
4009 |
409 |
Conflict |
La operación entra en conflicto con el estado actual |
4098 |
405 |
MethodNotAllowed |
Método no permitido |
4099 |
404 |
NotFound |
Recurso no encontrado |
Credenciales de push
| errCode |
HTTP |
Nombre |
Significado |
5001 |
422 |
CredentialMissing |
La app no tiene credencial para esta plataforma |
5002 |
422 |
CredentialInvalid |
La credencial no es válida |
5003 |
422 |
CertificateExpired |
El certificado venció |
5004 |
422 |
BundleIdMismatch |
El bundle ID no coincide con el de la app |
5005 |
422 |
P12PasswordWrong |
La contraseña del .p12 es incorrecta |
| errCode |
HTTP |
Nombre |
Significado |
9001 |
500 |
Internal |
Error interno del servidor |
9002 |
503 |
Unavailable |
Servicio no disponible |