Skip to content

Trampas del Store #3: No puedes llamarlo donación

2026-05-30

Etiquetas: Windows · Microsoft Store · Trampas del Store


Otra trampa del Store. Esta me pilló por sorpresa.

Qué pasó

Tengo una aplicación de herramientas gratuita para Windows. Quería añadir una forma de que los usuarios apoyaran el desarrollo, así que creé un complemento dentro de la app — una simple compra llamada "Support the Author". La ficha del Store lo llamaba una opción de patrocinio, la interfaz dentro de la app mostraba "Consider buying the dev a coffee", y la compra se procesaba a través del propio sistema IAP del Microsoft Store.

Llegó el resultado de la certificación:

Status: Attention needed

10.8.2 Third-Party In-Product Purchases

Any developer donations must only be made through a secure third-party purchase processing API. Please use one of those methods or remove any donation options that use the Microsoft API.

Espera — ¿rechazado por cobrar donaciones a través de la API de compra integrada?

La política

La política del Microsoft Store 10.8.2 dice lo siguiente:

You must use the Microsoft payment request API or a secure third-party purchase API to receive voluntary donations from users. However, if the user receives digital goods or services in return, including but not limited to additional features or removal of advertising, you must use the Microsoft Store in-product purchase API instead.

Traducción: Debes usar la API de solicitud de pago de Microsoft o una API de compra de terceros segura para recibir donaciones voluntarias de los usuarios. Pero si el usuario recibe bienes o servicios digitales a cambio, incluyendo pero no limitado a funciones adicionales o la eliminación de publicidad, debes usar la API de compra integrada del Microsoft Store en su lugar.

Aquí hay que distinguir entre dos APIs de Microsoft diferentes:

  • Microsoft Payment Request API: para solicitudes de pago generales, puede recibir donaciones
  • Microsoft Store In-Product Purchase API: para compras integradas de bienes y servicios digitales, no se puede usar para recibir donaciones

Cuándo usar cada API

Casos en los que el uso de la API de compra integrada de Microsoft es obligatorio

Si el usuario paga y recibe un beneficio digital en la aplicación a cambio (incluyendo, pero no limitado a, los siguientes casos), se debe usar la API de compra integrada:

  • Desbloqueo de funciones: actualización de la versión gratuita a Pro, desbloqueo de herramientas premium, activación de privilegios VIP
  • Eliminación de anuncios: pago para eliminar permanente o temporalmente la publicidad en la aplicación
  • Moneda/objetos digitales: monedas del juego, diamantes, skins o tokens/puntos en una aplicación
  • Servicios de suscripción: suscripciones mensuales o anuales para servicios de membresía

Nota: incluso si disfrazas estas acciones como «patrocinio», «propina» o «donación», Microsoft lo considerará como una «compra de producto digital» siempre que se active uno de los cambios digitales anteriores tras el pago (por ejemplo, una insignia VIP exclusiva o la eliminación de pop-ups), y se deberá usar la API de compra integrada.

Casos en los que la API de compra integrada de Microsoft no se debe usar

En los siguientes escenarios, usar la API de compra integrada resultará en un rechazo:

  • Bienes físicos: venta de ropa, libros, dispositivos hardware
  • Servicios del mundo real: reserva de entradas de cine, pedir comida, llamar un taxi, reservar hotel
  • Donaciones caritativas puras/juegos de azar con dinero real: recaudación de fondos para organizaciones benéficas legítimas o juegos de azar con dinero real legalmente permitidos
  • Propina personal pura (sin contrapartida): el usuario te paga simplemente porque valora tu trabajo, pero no hay ningún cambio de funciones ni de interfaz en la aplicación. En este caso, se debe usar un pago de terceros o la Payment Request API

Un test sencillo

¿La lógica del código en la aplicación (o un campo de base de datos) necesita cambiar después de que el usuario paga?

  • (por ejemplo isPro cambia a true, o adCount cambia a 0) → Se debe usar la API de compra integrada de Microsoft
  • No (sin cambio de código, el usuario paga simplemente por aprecio o espera la entrega de un bien físico) → Se debe usar un pago de terceros o la Microsoft Payment Request API

Volviendo a mi caso

Mi complemento se llamaba «Support the Author» con el lema «Consider buying the dev a coffee» — por el lenguaje, era una propina pura. Pero se procesaba a través de la API de compra integrada del Store, y la política dice claramente: las propinas puras no pueden usar la API de compra integrada.

Pero en realidad, este complemento sí daba al usuario un cambio como una insignia de seguidor — en otras palabras, ya era un bien digital. Según el test anterior: un cambio significa bien digital, y los bienes digitales deben procesarse a través de la API de compra integrada. Esto significa que este pago teóricamente solo podía pasar por la API de compra integrada, y no por la Payment Request API ni pagos de terceros.

Así que el problema no estaba en el método de pago, sino en la descripción. Cambiando «Support the Author» a «Upgrade to Pro» y reemplazando «Consider buying the dev a coffee» por una descripción de la contrapartida concreta, fue aprobado.

En resumen

  • La API de compra integrada de Microsoft solo se puede usar para transacciones de bienes y servicios digitales — debe haber un cambio en la aplicación tras el pago
  • Las propinas puras (sin cambio en la aplicación) no pueden usar la API de compra integrada; se debe usar la Payment Request API o un pago de terceros en su lugar
  • Regla de decisión: ¿el código/la base de datos necesita cambiar después de que el usuario paga? Cambio → API de compra integrada; sin cambio → pago de terceros
  • El nombre y la descripción deben coincidir con el comportamiento real: si hay un cambio después del pago, describe claramente la contrapartida — evita términos como donación, patrocinio o propina

Parte de la serie Trampas del Store.