Qué es un entitlement: producto, suscripción y acceso en 3 capas
Qué es un entitlement y en qué se diferencia de un producto y de una suscripción. Cómo comprobar el acceso de un usuario en web, iOS y Android con la API de Cifrago.
Un entitlement es el permiso que tiene un usuario para usar una función de tu app, por ejemplo «pro». El producto es lo que se vende y la suscripción es cómo se paga; el entitlement es lo que tu app consulta para abrir o cerrar la función. Separar las tres capas permite vender lo mismo en web, iOS y Android.
Nota: Cifrago está en fase final de desarrollo y todavía no admite comercios nuevos. La API que se describe aquí estará disponible próximamente.
Producto, suscripción y entitlement
| Capa | Qué es | Ejemplo |
|---|---|---|
| Producto / precio | Lo que se vende | «Pro anual» en la web, «Pro mensual» en App Store |
| Suscripción o compra | Cómo y cuándo se paga | Renovación cada mes; estado activo, past_due o expirada |
| Entitlement | El permiso que la app comprueba | pro |
Varios productos pueden dar el mismo entitlement. Así, quien pagó en la web y quien pagó en iOS ven la misma función desbloqueada.
Cómo comprobar el acceso con la API de Cifrago
| Endpoint | Qué hace | Clave |
|---|---|---|
GET /api/v1/subscribers/{appUserId} | Devuelve los entitlements activos (activeEntitlementKeys), sus cantidades, las suscripciones y las compras en tiendas. Si el usuario no existe, lo crea | Pública o secreta |
POST /api/v1/receipts | Registra un recibo de App Store o Google Play para que el acceso sea el mismo en todas las plataformas | Pública o secreta |
POST /api/v1/subscribers/{appUserId}/grants | Concede un entitlement promocional, con caducidad opcional | Solo secreta |
GET /api/v1/catalog y GET /api/v1/offerings | Productos, precios y ofertas de la app | — |
En iOS y Android, las compras dentro de la app pasan obligatoriamente por App Store o Google Play. Cifrago registra el recibo y mantiene el mismo permiso en todas partes. El permiso vive en el servidor, no en el móvil. La clave pública solo puede leer el suscriptor y registrar compras; en cualquier otro endpoint recibe un 401.
Cómo se modela por dentro
entitlements: los permisos de cada app (por ejemplo,pro).price_entitlements: qué precio da qué permiso.store_product_entitlements: qué producto de App Store o Google Play da qué permiso.- Los consumibles (créditos, packs) se registran, pero no dan entitlements.
Preguntas frecuentes
¿Qué es un entitlement?
Es el permiso que tiene un usuario para usar una función o contenido de tu app, como «pro». Tu código no pregunta «¿ha pagado este producto?», sino «¿tiene este permiso activo?». Eso simplifica el código y permite vender en varias plataformas.
¿En qué se diferencia de una suscripción?
La suscripción es el acuerdo de pago: precio, periodicidad y estado. El entitlement es el resultado: mientras la suscripción esté activa o en periodo de gracia, el usuario tiene el permiso. Varias suscripciones o compras distintas pueden dar el mismo permiso.
¿Cómo sabe mi app si el usuario tiene acceso?
Consultando GET /api/v1/subscribers/{appUserId} y mirando si el permiso está en activeEntitlementKeys. La respuesta incluye también las suscripciones y las compras en tiendas, por si quieres mostrar el detalle al usuario.
¿Sirve para compras de App Store y Google Play?
Sí. La app envía el recibo a POST /api/v1/receipts y Cifrago concede el mismo entitlement que daría una compra en la web. Así un usuario que paga en el iPhone tiene acceso también desde Android o desde el navegador.
¿Estás montando suscripciones?
Mira las tarifas y prueba el panel con datos de ejemplo antes de integrar nada.