Apple ya vende tu suscripción a empresas enteras por puestos, y el reembolso de una suscripción multipuesto funciona de otra manera
Apple activó las suscripciones multipuesto para empresas y centros educativos el 22 de octubre de 2026, activadas por defecto. Una sola compra cubre ahora a muchas personas, las retiradas de puestos llegan como notificaciones REVOKE y el endpoint de pruebas de reembolso rechaza los puestos asignados. Esto es lo que cambia y lo que cuesta.

Puntos clave
- Desde el 22 de octubre de 2026, las organizaciones que usan Apple Business o Apple School Manager pueden comprar en volumen la suscripción autorrenovable de una app mediante una sola compra In-App de Apple, asignar los puestos con sus herramientas de gestión de dispositivos y añadir o retirar puestos en cualquier momento.
- Apple activó la compra multipuesto por defecto en App Store Connect. Las suscripciones creadas antes del 14 de septiembre de 2026 que no usan StoreKit 2 o que tienen En familia activado empiezan desactivadas, y las suscripciones de apps personalizadas no pueden desactivarse.
- En una compra multipuesto, el campo quantity del payload de transacción de Apple indica el número de puestos, y cada persona que recibe un puesto obtiene una transacción con un inAppOwnershipType de ASSIGNED.
- Cuando una organización retira una suscripción que había asignado a alguien, Apple envía una notificación REVOKE y la transacción lleva un revocationType de ASSIGNMENT_REVOKE, disponible en producción desde el 23 de octubre de 2026.
- El endpoint Send Consumption Information de Apple, la respuesta a un CONSUMPTION_REQUEST, devuelve InvalidAssignedTransactionNotSupportedError cuando se llama con una transacción asignada, así que las pruebas de reembolso solo pueden enviarse para la transacción del comprador.
- El campo revocationType de Apple distingue REFUND_FULL de REFUND_PRORATED, y revocationPercentage indica la parte reembolsada en milésimas, de modo que 40000 significa 40 por ciento.
- Las Group Purchases, que permiten a un cliente del App Store comprar varios puestos e invitar a otras personas, pueden probarse en el sandbox desde noviembre de 2026 y llegan al App Store este invierno.
Apple empezó a vender suscripciones de apps a organizaciones por puestos el 22 de octubre de 2026, y activó la opción para la mayoría de los desarrolladores sin preguntar. Las empresas y los centros educativos que usan Apple Business o Apple School Manager ya pueden comprar tu suscripción autorrenovable en bloque mediante una sola compra In-App. Eso cambia cómo se ve en tu servidor el reembolso de una suscripción multipuesto. Una transacción puede pagar ahora por decenas de personas, un puesto puede desaparecer sin ningún reembolso, y el endpoint que usas para defender un caso de reembolso se niega a hablar de las personas que de verdad usan la app.
Qué activó Apple y dónde lo anunció
El lanzamiento llegó como una breve noticia de Apple Developer titulada «Offer your subscriptions to businesses and schools». Dice que las organizaciones pueden comprar los puestos que necesitan mediante una sola compra In-App, asignarlos y gestionarlos con sus herramientas de gestión de dispositivos actuales, y añadir o retirar puestos en cualquier momento. La misma noticia dice que la compra multipuesto está activada por defecto en App Store Connect, salvo que ya hubieras cambiado el ajuste.
La infraestructura llegó durante el mes anterior en los registros de cambios, no en un escenario. La versión 1.22 de App Store Server API, del 28 de septiembre, añadió los campos de puestos y los endpoints de grupos solo en sandbox. El 23 de octubre, una actualización de servidor de una línea llevó los endpoints de grupos y el valor ASSIGNMENT_REVOKE a producción. Si tu gestor de notificaciones no ha cambiado desde el verano, ahora recibe datos que nunca se escribió para leer.
| Fecha | Qué cambió | Dónde lo dijo Apple |
|---|---|---|
| Junio de 2026 | Suscripciones multipuesto anunciadas en WWDC26 | Sesión 391, Offer subscriptions to groups and organizations |
| 16 de septiembre de 2026 | Compra multipuesto activada por defecto en App Store Connect | Noticias de Apple Developer |
| 28 de septiembre de 2026 | quantity indica puestos, se añaden ASSIGNED y ASSIGNMENT_REVOKE, solo en sandbox | Registro de cambios de App Store Server API, versión 1.22 |
| 22 de octubre de 2026 | Volume Purchasing disponible para Apple Business y Apple School Manager | Noticias de Apple Developer |
| 23 de octubre de 2026 | ASSIGNMENT_REVOKE y endpoints de grupos en producción | Registros de cambios de Server API y Server Notifications |
| Noviembre de 2026 | Group Purchases disponibles para pruebas en el sandbox | Noticias de Apple Developer |
| Este invierno | Group Purchases en el App Store | Noticias de Apple Developer |
Quién queda activado por defecto
Casi todo el mundo. La página de ayuda de App Store Connect dice que las suscripciones creadas antes del 14 de septiembre de 2026 empiezan desactivadas solo si no usan StoreKit 2 o tienen En familia activado. Las suscripciones de apps personalizadas pasan automáticamente a Apple Business y Apple School Manager, y no puedes desactivarlas. Cambiar el ajuste requiere el rol de Titular de la cuenta, Administrador o Gestor de apps, y retirar Apple Business o Apple School Manager de una suscripción aprobada requiere al Titular de la cuenta.
Cómo aparece una compra multipuesto en tu servidor
Ahora hay dos tipos de transacción para la misma suscripción. La compra de la organización es una transacción, y su campo quantity indica cuántos puestos compró. Cada persona que recibe un puesto obtiene su propia transacción, algo que la sesión de WWDC de Apple describe como el App Store asignando una transacción a cada miembro. Esas transacciones de miembros llevan un inAppOwnershipType de ASSIGNED, junto a los valores PURCHASED y FAMILY_SHARED que quizá ya gestionas.
Apple es tajante sobre qué registro decide el acceso. Su documentación de Get Customer Groups dice que la pertenencia a un grupo es independiente del derecho de acceso, y que para desbloquear contenido debes leer las transacciones del cliente en lugar de depender de la pertenencia al grupo. Concede el acceso a partir de las transacciones. Usa los endpoints de grupos solo para funciones como una vista de administración.
| Campo o valor | Qué te indica | Añadido |
|---|---|---|
| quantity | Número de puestos de una compra multipuesto | 28 de septiembre de 2026 |
| inAppOwnershipType = ASSIGNED | La persona tiene acceso a través de una organización o un grupo | 28 de septiembre de 2026 |
| revocationType = ASSIGNMENT_REVOKE | El comprador retiró la suscripción a esta persona | 28 de septiembre de 2026, producción el 23 de octubre |
| revocationType = REFUND_FULL o REFUND_PRORATED | La transacción se reembolsó total o parcialmente | 10 de diciembre de 2025 |
| revocationPercentage | Parte reembolsada, en milésimas (40000 = 40%) | 10 de diciembre de 2025 |
Un puesto retirado no es un reembolso
Aquí es donde fallará la mayoría de los gestores. Cuando una organización quita un puesto a un empleado, Apple envía una notificación REVOKE, el mismo tipo que usa cuando quien compró con En familia deja de compartir. El revocationType de la transacción es ASSIGNMENT_REVOKE, y la instrucción de Apple es directa: revoca el acceso del cliente al contenido que proporciona la transacción.
Nada en ese evento dice que se haya movido dinero. Si tu código trata cada revocación como un reembolso, tu tasa de reembolsos, tus ingresos netos y cualquier alerta que hayas construido sobre ellos contarán la rotación normal de personal como ventas perdidas. Ramifica primero por revocationType.
- ASSIGNMENT_REVOKE: termina el acceso de esta persona. No registres un reembolso.
- FAMILY_REVOKE: termina el acceso del miembro de la familia. No registres un reembolso.
- REFUND_FULL: termina el acceso y registra la transacción completa como reembolsada.
- REFUND_PRORATED: registra la parte indicada en revocationPercentage y luego decide qué acceso se mantiene.

Por qué no puedes defender un reembolso de un puesto asignado
Apple sigue decidiendo cada reembolso del App Store. Cuando un cliente lo solicita, Apple envía un CONSUMPTION_REQUEST y te da 12 horas para responder mediante Send Consumption Information. Con el modelo multipuesto, la persona que usa la app y la persona que pagó son distintas, y la API de Apple ahora traza una línea firme entre ambas.
Send Consumption Information rechaza las transacciones asignadas
Si llamas a Send Consumption Information, a su versión V1 o a Set App Account Token con una transacción asignada, Apple devuelve InvalidAssignedTransactionNotSupportedError. Apple aconseja comprobar si el inAppOwnershipType es ASSIGNED antes de llamar. En la práctica, tus pruebas van en la transacción del comprador o en ninguna parte. El uso que tu app registra en las cuentas de los miembros sigue valiendo la pena, porque es la única forma de saber si los puestos se llegaron a usar.
Cómo es un reembolso prorrateado
Apple añadió REFUND_PRORATED y revocationPercentage en diciembre de 2025. La solicitud de consumo te permite pedir ese resultado con un refundPreference de GRANT_PRORATED. Para una suscripción autorrenovable, Apple indica que no envíes un consumptionPercentage con GRANT_PRORATED, porque calcula el porcentaje por su cuenta. Si el reembolso se revierte más tarde, revocationPercentage desaparece de la transacción.
¿Puedo ampliar la suscripción de un solo empleado como gesto de buena voluntad?
No. Extend a Subscription Renewal Date devuelve AssignedSubscriptionExtensionIneligibleError para una suscripción asignada. Apple explica que una suscripción asignada se renueva con el mismo calendario que la que compró el comprador, así que no se puede mover a un solo miembro por separado.
Lo que te cuesta el reembolso de una suscripción multipuesto
La escala es el nuevo riesgo. La sesión de WWDC de Apple explica los precios por volumen con hasta cinco tramos. Su ejemplo vende puestos a 19,99 $ al mes hasta 20 puestos, 13,99 $ del puesto 21 al 40 y 10,99 $ a partir del puesto 41. Con esas cifras, un pedido de 50 puestos factura 789,50 $ al mes, unos 15,79 $ por puesto. Un REFUND_FULL sobre esa única transacción devuelve los 789,50 $ completos, no el precio de una suscripción.
El coste de servicio escala igual. Cincuenta puestos son cincuenta personas abriendo sesiones en tus servidores, haciendo las llamadas a APIs de terceros que pagan tus funciones y llenando un almacenamiento que te facturan. Si los titulares de puestos de un pedido reembolsado conservan el acceso porque tu gestor solo miró la transacción del comprador, sigues pagando por cada uno de ellos. Un ASSIGNMENT_REVOKE perdido es menor pero más frecuente: la compra ya no cubre a esa persona, y cada petición que hace es coste sin ingresos detrás.
| Evento | Dinero que se mueve | Acceso que terminar | Pruebas que puedes enviar |
|---|---|---|---|
| ASSIGNMENT_REVOKE en un miembro | Ninguno indicado | Ese miembro | No aplica |
| REFUND_FULL en la compra multipuesto | Toda la transacción, cada puesto incluido | El comprador y cada titular de puesto | Solo la transacción del comprador, en las 12 horas siguientes al CONSUMPTION_REQUEST |
| REFUND_PRORATED en la compra multipuesto | La parte de revocationPercentage | Depende de lo que cubra el reembolso | Solo la transacción del comprador |
| Respuesta de consumo sobre una transacción asignada | No se acepta | No aplica | Rechazada con InvalidAssignedTransactionNotSupportedError |
Qué flujos de reembolso piden tu versión
El modelo multipuesto no cambia la lista corta. Solo dos flujos de reembolso piden pruebas al desarrollador: el CONSUMPTION_REQUEST de Apple, respondido mediante Send Consumption Information en 12 horas, y la revisión de contracargos de Google Play, respondida mediante orders.reviewrefund en 24 horas. Todo lo demás se decide sin ti, y para los pedidos de Google Play realizados después del 3 de agosto de 2026, un contracargo le cuesta al desarrollador el precio de compra, menos la comisión de servicio de Play, más las comisiones de contracargo del banco. RefundHalt responde a las solicitudes de consumo de Apple dentro del plazo de 12 horas, con los datos de uso que ya recopilas.
Qué cambiar en tu gestor del App Store esta semana
- Lee quantity en cada transacción de suscripción y guárdalo con la compra.
- Guarda inAppOwnershipType y trata ASSIGNED como un caso propio junto a PURCHASED y FAMILY_SHARED.
- Ramifica la gestión de REVOKE por revocationType, para que ASSIGNMENT_REVOKE termine el acceso sin registrar un reembolso.
- Registra REFUND_PRORATED por la parte de revocationPercentage, no como un reembolso completo.
- Comprueba ASSIGNED antes de llamar a Send Consumption Information, Set App Account Token o Extend a Subscription Renewal Date.
- Decide en App Store Connect si quieres vender a organizaciones, antes de que una compre 50 puestos.
Preguntas frecuentes
- ¿Están activadas las suscripciones multipuesto de Apple en mi app?
- Probablemente. Apple activó la compra multipuesto por defecto en App Store Connect. Las suscripciones creadas antes del 14 de septiembre de 2026 empiezan desactivadas solo si no usan StoreKit 2 o tienen En familia activado, y las suscripciones de apps personalizadas no pueden desactivarse. Puedes comprobarlo en Purchase Options, en la página de cada suscripción.
- ¿Una notificación REVOKE con ASSIGNMENT_REVOKE significa que perdí dinero?
- No. ASSIGNMENT_REVOKE significa que la organización o el comprador del grupo retiró la suscripción a una persona. Apple te pide terminar el acceso de esa persona, pero el evento no indica ningún reembolso. Registra reembolsos solo con REFUND_FULL o REFUND_PRORATED.
- ¿Puedo enviar información de consumo de un empleado que usa un puesto asignado?
- No. El endpoint Send Consumption Information de Apple devuelve InvalidAssignedTransactionNotSupportedError para las transacciones que una organización o un grupo asignó a un cliente. Comprueba primero si el inAppOwnershipType es ASSIGNED y envía las pruebas en la transacción del comprador.
- ¿Cómo sé qué parte de una compra multipuesto reembolsó Apple?
- Lee revocationType y revocationPercentage en la transacción. REFUND_FULL significa que se reembolsó la transacción completa. REFUND_PRORATED viene con revocationPercentage en milésimas, de modo que 40000 significa el 40 por ciento de la transacción.
- ¿Cuándo se lanzan las Group Purchases de Apple?
- Apple dice que las Group Purchases, que permiten a un cliente del App Store comprar varios puestos e invitar a otras personas, pueden configurarse y probarse en el sandbox a partir de noviembre de 2026 y estarán disponibles en el App Store este invierno. Volume Purchasing para empresas y centros educativos se lanzó el 22 de octubre de 2026.
Fuentes y lecturas adicionales
- Apple Developer News: Offer your subscriptions to businesses and schools (October 22, 2026)
- App Store Connect Help: Manage purchase options for an auto-renewable subscription
- WWDC26 Session 391: Offer subscriptions to groups and organizations
- App Store Server Notifications changelog
- App Store Server API: revocationType
- App Store Server API: revocationPercentage
- App Store Server API: InvalidAssignedTransactionNotSupportedError
- App Store Server API: ConsumptionRequest
RefundHalt
El piloto automático de reembolsos para App Store y Google Play
Seguir leyendo
Las solicitudes de reembolso excesivas pueden costarte más que los propios reembolsos, porque ambas tiendas las tratan como una señal de calidad
La directriz 5.6.4 de Apple cita las solicitudes de reembolso excesivas como señal de que una app no cumple los estándares de calidad, y el acuerdo de distribución de Google le permite retirar apps de desarrolladores nuevos por su tasa de reembolsos. Esto es lo que dice cada tienda, lo que cuesta una retirada y cómo mantenerte a salvo.
Verifica las notificaciones del servidor de App Store antes de actuar sobre un reembolso, porque cualquiera puede enviar datos a tu URL de webhook
Una notificación de reembolso no es más que una petición HTTPS hasta que compruebas su firma. Así se verifican las notificaciones del servidor de App Store y los mensajes RTDN de Google Play, qué firma cada tienda y cuánto te cuesta un reembolso falsificado o rechazado por error.