Todos los artículos
Guía práctica8 min de lectura

DeviceCheck de Apple recuerda el teléfono de quien abusa de los reembolsos, incluso si se registra con una cuenta nueva

Los bloqueos de cuenta y los identificadores de compra dejan de funcionar en cuanto quien abusa de los reembolsos crea una cuenta nueva. DeviceCheck de Apple y la recuperación de dispositivos (device recall) de Google Play guardan unos pocos bits por dispositivo en los servidores de la tienda. Esto es lo que almacenan, cuándo activarlos y cuánto te ahorran.

Un smartphone usado boca abajo sobre el mostrador de cristal de una tienda, con una etiqueta de latón atada, una imagen de cómo DeviceCheck marca un dispositivo y no una cuenta

Puntos clave

  • DeviceCheck de Apple permite que tu servidor establezca y consulte dos bits binarios por dispositivo, guardados en los servidores de Apple, y Apple cita como uno de sus usos previstos marcar un dispositivo que has identificado como fraudulento.
  • La recuperación de dispositivos (device recall) de Google Play, una función beta de la Play Integrity API, guarda tres bits personalizados por dispositivo en los servidores de Google, y estos sobreviven a una reinstalación de la app y a un restablecimiento del dispositivo.
  • Los valores de device recall se comparten entre todas las apps de una misma cuenta de desarrollador de Google Play y se conservan durante 3 años desde la última lectura o escritura.
  • Un token de Play Integrity puede usarse para escribir bits de device recall durante un máximo de 14 días después de verificarlo, lo que cubre el plazo de 48 horas de reembolsos por autoservicio de Google Play.
  • Ni las notificaciones de reembolso de Apple ni las compras anuladas de Google incluyen un identificador de dispositivo, así que solo puede marcar un dispositivo el servidor que antes vinculó las compras a sus propias cuentas.
  • Las marcas de dispositivo no pueden detener un reembolso. Deciden qué da tu propia app a ese dispositivo después, como créditos gratuitos, una prueba que financias tú o una oferta promocional que firma tu servidor.
  • Solo dos flujos de reembolso permiten al desarrollador aportar pruebas antes de que la tienda decida: el CONSUMPTION_REQUEST de Apple, respondido en 12 horas, y la revisión de contracargos de Google Play mediante orders.reviewrefund, respondida en 24 horas.

Bloquear la cuenta no detiene a quien abusa de los reembolsos y vuelve a registrarse en el mismo teléfono. DeviceCheck de Apple y la recuperación de dispositivos (device recall) de Google Play existen justo para ese hueco. Cada uno permite a tu servidor asociar unos pocos bits, con el significado que tú elijas, a un dispositivo físico. Se guardan en los servidores de la tienda, así que la marca sigue ahí cuando la persona vuelve con un correo nuevo. Ninguna de las dos herramientas te da un ID de dispositivo, y ninguna puede detener un reembolso. Lo que hacen es avisarte, en el registro o en el muro de pago, de que este dispositivo ya te ha costado dinero.

Esto es lo que guarda realmente cada tienda, la trampa de tiempos que decide si puedes llegar a poner la marca y lo que cuesta un abusador reincidente antes de que lo detectes.

Por qué una cuenta nueva supera cualquier defensa a nivel de cuenta

La mayoría de las defensas contra reembolsos se basan en una cuenta. El appAccountToken de Apple vincula una transacción a un usuario de tu base de datos. El ID de cuenta ofuscado de Google Play hace lo mismo en Android. Conviene establecer ambos en cada compra, y ambos describen la cuenta de una persona, no el hardware que tiene en la mano. Si borra la cuenta y se registra con un correo nuevo, tu historial sobre esa persona empieza de cero.

Las tiendas no cubren ese hueco por ti. Una notificación de reembolso del App Store te dice qué transacción se reembolsó. Una compra anulada de Google Play te da el token de compra, el ID del pedido y un voidedReason. Ninguna incluye un identificador de dispositivo. Un desarrollador de una app de citas describió el resultado en un hilo de los Apple Developer Forums: perfiles fraudulentos compraban una y otra vez una membresía premium que luego se reembolsaba, y bloquear sus dispositivos con el método propio del desarrollador no sirvió de nada.

¿Una cuenta nueva reinicia la prueba de la propia tienda?

No con la misma Cuenta de Apple. La documentación de Apple indica que las ofertas introductorias, incluidas las pruebas gratuitas, son para clientes que aún no han recibido una para ese producto ni para ningún producto del mismo grupo de suscripciones. Por eso, iniciar sesión con otra cuenta dentro de tu app no da una segunda prueba de Apple. Una Cuenta de Apple nueva sí la da, igual que todo lo que regalas tú: créditos de registro, una prueba financiada por tu servidor, un bono por referidos. Esos son los regalos que protege una marca de dispositivo.

Qué guarda realmente DeviceCheck de Apple

DeviceCheck tiene dos partes. En la app, la clase DCDevice genera un token efímero que identifica el dispositivo. En tu servidor, envías ese token a Apple junto con un JSON web token firmado con una clave de tu cuenta de desarrollador, y Apple te permite consultar o actualizar dos bits de ese dispositivo. La respuesta de la consulta devuelve bit0, bit1 y last_update_time, expresado como año y mes. Los ejemplos de uso que da Apple son un dispositivo que ya aprovechó una oferta promocional y un dispositivo que has determinado que es fraudulento.

Apple guarda los bits, pero el significado es tuyo. Su documentación dice que eres responsable de llevar el control de lo que significan los bits y de decidir cuándo restablecerlos, y pone como ejemplo un dispositivo vendido. Dos bits dan cuatro estados, así que un esquema sencillo es un bit para reembolsado tras un uso intensivo y otro para ya recibió créditos gratuitos.

  • El token es de un solo uso. Apple dice que sigue siendo válido el tiempo suficiente para reintentar una petición, pero conviene generar uno nuevo para cada llamada.
  • Las compilaciones de desarrollo se comunican con api.development.devicecheck.apple.com. En producción hay que usar api.devicecheck.apple.com, o tus marcas acabarán en el lugar equivocado.
  • Apple describe DeviceCheck como un dato más dentro de una evaluación global de riesgo, no como un veredicto. Trata un bit activado como un motivo para mirar con más atención.

Qué añade la recuperación de dispositivos de Google en Android

La versión de Google forma parte de la Play Integrity API y sigue en beta, con acceso mediante un formulario de interés. Cuando te aprueban y la activas en Play Console, cada veredicto de integridad incluye tres bits personalizados para el dispositivo. Los escribes con una llamada de servidor al endpoint deviceRecall:write, usando un token de integridad que ya has verificado. Google dice que los datos sobreviven a una reinstalación de la app y a un restablecimiento del dispositivo, porque se guardan en los servidores de Google.

La documentación de Google es inusualmente clara sobre el caso de uso. Menciona dispositivos con pruebas de abuso grave, dispositivos que ya canjearon un artículo de alto valor como una prueba gratuita y dispositivos usados una y otra vez para crear cuentas nuevas con fines abusivos. Es igual de clara sobre el límite: device recall solo puede usarse para proteger la seguridad de la app y combatir el abuso, el fraude y el acceso no autorizado, nunca para identificar por huella digital ni rastrear a usuarios concretos, y nunca para guardar rasgos sensibles como la edad, el género o la ubicación.

PreguntaApple DeviceCheckDevice recall de Google Play
EstadoDisponible para todosBeta, aprobación mediante un formulario de interés
Bits por dispositivo23
Dónde se guardanServidores de AppleServidores de Google
Sobrevive a reinstalación y restablecimientoSe guardan en el servidor, Apple deja los restablecimientos en tus manosSí, ambos, según Google
Compartidos entre tus appsVinculados a tu cuenta de desarrolladorSí, todas las apps de la cuenta de desarrollador
Marca de tiempoAño y mes de la última actualizaciónFecha de escritura por bit
ConservaciónHasta que los restableces3 años desde la última lectura o escritura
Token para escribirToken DCDevice nuevo, de un solo usoUn token de integridad verificado, utilizable durante 14 días
Requisitos adicionalesApp ID registrado en tu cuentaPlay Store y Play services recientes, usuario con licencia de Play, sin emuladores

El problema de los tiempos: los reembolsos llegan cuando el token ya no está

Ambas herramientas necesitan algo del propio dispositivo antes de poder marcarlo. Apple necesita un token DCDevice nuevo. Google necesita un token de integridad de ese dispositivo con un máximo de 14 días de antigüedad. El reembolso, en cambio, llega a tu servidor mediante una notificación de la tienda que no sabe nada del dispositivo. Así que la cuestión no es si marcar un dispositivo. Es si todavía tendrás forma de llegar a él cuando llegue el reembolso.

Los reembolsos de 48 horas de Google caben en la ventana de 14 días

Los reembolsos por autoservicio de Google Play solo están disponibles en las 48 horas siguientes a la compra, muy dentro de los 14 días en que un token de integridad sigue sirviendo para escribir. Haz una comprobación de integridad en el momento de la compra, guarda el token verificado junto al ID del pedido y, cuando llegue una compra anulada de ese pedido, podrás escribir el bit de inmediato. Los contracargos son el caso difícil, porque una disputa bancaria puede llegar mucho después del día 14.

Los reembolsos de Apple necesitan que el dispositivo vuelva

Un reembolso de Apple puede llegar semanas después de la compra, y un token de DeviceCheck guardado no está pensado para reutilizarse. La respuesta práctica es marcar primero la cuenta y después el dispositivo. Cuando llegue la notificación de reembolso, marca la cuenta en tu base de datos. La próxima vez que esa cuenta abra la app, pide un token de DeviceCheck y activa el bit. Quienes se quedan con el contenido tras un reembolso suelen volver, porque usarlo era el objetivo.

  • En la compra, registra la transacción contra tu propia cuenta mediante appAccountToken o el ID de cuenta ofuscado.
  • Ante un reembolso o una anulación, marca esa cuenta en tu servidor.
  • En la siguiente sesión de la cuenta marcada, obtén un token del dispositivo y activa tu bit.
  • En cada registro, consulta los bits antes de conceder algo que te cueste dinero.

Lo que te cuesta un abusador reincidente de reembolsos

El precio reembolsado es la parte visible. El resto es todo lo que la compra ya puso en marcha. Si tu app gasta dinero para entregar lo que vende, cada ciclo de comprar, consumir y reembolsar deja ese dinero gastado: tiempo de GPU para imágenes generadas, llamadas de pago a una API de modelos o de datos, almacenamiento para exportaciones que el cliente conserva y pagos a creadores calculados sobre la venta. Una cuenta nueva reabre el ciclo, y tu contabilidad lo registra como un cliente totalmente nuevo.

Los regalos gratuitos se escapan del mismo modo sin que haya reembolso alguno. Un dispositivo que acumula créditos de registro en diez cuentas consume diez veces la capacidad de cómputo que presupuestaste para una sola prueba. En Google Play, los contracargos de pedidos posteriores al 3 de agosto de 2026 también te cuestan el precio de compra menos la comisión de servicio de Google, más las comisiones del banco, así que quien disputa desde una cuenta nueva cada vez te cuesta la disputa completa de nuevo.

Concepto de costeSin marca de dispositivoCon marca de dispositivo
Créditos de registro o una prueba que financias túSe conceden de nuevo en cada cuenta nuevaSe retienen o reducen en un dispositivo marcado
Cómputo y llamadas de API de pagoSe gastan de nuevo en cada cicloSe gastan una vez y luego se restringen
Pagos a creadores o afiliadosSe pagan por ventas que vuelven como reembolsosRetenidos para revisión en dispositivos marcados
Contracargos de Google Play después del 3 de agosto de 2026Precio menos comisión de servicio, más comisiones bancarias, cada vezIgual por disputa, pero menos disputas repetidas
Decisiones de reembolso de la tiendaLas decide la tiendaLas sigue decidiendo la tienda
Un cajón de smartphones idénticos en un taller de reparación con uno marcado con una tira de cinta naranja, que muestra cómo una marca de dispositivo distingue un teléfono entre muchos

Qué hacer con un dispositivo marcado

Una marca responde a una sola pregunta: ¿debe este dispositivo volver a recibir algo gratis? Mantén una respuesta proporcionada, porque un bit activado es un indicio, no una prueba. Los teléfonos se revenden, las familias comparten iPads, y Google te dice expresamente que valores ignorar o restablecer los datos antiguos por ese motivo.

  • Omite los créditos de registro, la prueba financiada por tu servidor o el bono por referidos en un dispositivo marcado, y ofrece el plan de pago en su lugar.
  • No firmes una oferta promocional para un dispositivo marcado. En el App Store, tu servidor genera la firma que desbloquea una oferta promocional, así que la decisión es tuya.
  • Exige que el pago se confirme antes de entregar consumibles caros en un dispositivo marcado.
  • Usa la marca de tiempo. Una marca puesta el mes pasado pesa más que una puesta hace dos años.
  • Da a las personas una vía para contactar con soporte. Quien compró un teléfono usado y fue marcado por error merece una respuesta, y puedes restablecer los bits.

¿Puedes simplemente bloquear el dispositivo?

Puedes negar tus propios extras gratuitos, y ahí es donde las marcas de dispositivo rinden. Un bloqueo total es más arriesgado. Quien tiene hoy el teléfono puede no ser quien abusó de él, y las propias condiciones de Google limitan device recall a la prevención del abuso, no al seguimiento de personas. Restringe lo que te cuesta dinero y deja abierta la vía de pago.

¿Y el Keychain (llavero) o un identificador de dispositivo?

Los desarrolladores suelen preguntar si una marca en el Keychain o un ID de hardware harían el mismo trabajo. Una marca que tu app guarda en el teléfono desaparece tras un restablecimiento del dispositivo, y Apple no da a las apps un identificador de hardware estable para esto. DeviceCheck y device recall son las respuestas avaladas por las tiendas, precisamente porque los bits están en los servidores de Apple y Google y no en el teléfono.

Dónde sigue decidiendo la tienda

Las marcas de dispositivo cambian lo que tu app regala después. No afectan al reembolso que tienes delante. Solo dos flujos de reembolso te permiten aportar pruebas antes de que la tienda decida. Apple envía un CONSUMPTION_REQUEST y pide datos de consumo en un plazo de 12 horas. Google Play abre una revisión de contracargo que respondes en 24 horas mediante orders.reviewrefund. Todo lo demás, desde los reembolsos de 48 horas de Google Play hasta los reembolsos por soporte y los reembolsos automáticos de compras no confirmadas, se decide sin ti. Los contracargos son definitivos una vez que el banco resuelve.

RefundHalt responde a cada CONSUMPTION_REQUEST y a cada revisión de contracargo de Google Play dentro de su plazo con tus datos de uso reales, y vincula cada reembolso a la cuenta que lo hizo, para que tu servidor sepa qué dispositivo marcar la próxima vez que se conecte.

Preguntas frecuentes

¿Para qué sirve DeviceCheck de Apple?
DeviceCheck permite que tu servidor guarde y lea dos bits por dispositivo en los servidores de Apple. Los ejemplos de Apple son marcar un dispositivo que ya aprovechó una oferta promocional y señalar un dispositivo que has determinado que es fraudulento. Tú decides qué significan los bits y cuándo restablecerlos.
¿Funciona DeviceCheck después de que un usuario borre la app o cree una cuenta nueva?
Sí. Los bits pertenecen al dispositivo y se guardan en los servidores de Apple, no dentro de tu app ni de una cuenta de usuario, así que un registro nuevo en el mismo dispositivo lee los mismos bits tras reinstalar la app. Apple deja en tus manos restablecerlos, por ejemplo cuando se vende un dispositivo.
¿Existe un equivalente de DeviceCheck en Android?
Sí, device recall en la Play Integrity API. Guarda tres bits personalizados por dispositivo en los servidores de Google, sobrevive a reinstalaciones y restablecimientos del dispositivo, se comparte entre todas las apps de tu cuenta de desarrollador y conserva los datos durante 3 años desde el último acceso. Está en beta y requiere aprobación.
¿Puede una marca de dispositivo impedir que un cliente obtenga un reembolso?
No. Apple y Google deciden los reembolsos por sí mismos. Una marca de dispositivo solo controla lo que tu propia app ofrece después, como créditos gratuitos o una oferta promocional. Tus pruebas solo cuentan en el CONSUMPTION_REQUEST de Apple, respondido en 12 horas, y en la revisión de contracargos de Google Play, respondida en 24 horas.
¿Está permitido bloquear un dispositivo por abuso de reembolsos?
Google permite device recall solo para la seguridad de la app y la prevención del abuso, el fraude y el acceso no autorizado, y prohíbe usarlo para identificar por huella digital o rastrear a usuarios. Como los dispositivos se revenden y se comparten, el uso más seguro es retener los extras gratuitos en un dispositivo marcado en lugar de bloquear su acceso a las funciones de pago.

Fuentes y lecturas adicionales

RefundHalt

El piloto automático de reembolsos para App Store y Google Play

Seguir leyendo

La próxima solicitud de reembolso ya está en camino.

Configura RefundHalt en el tiempo que tardas en leer otro correo de soporte sobre un reembolso que no llegaste a impugnar.