Puedes reembolsar un pedido de Google Play tú mismo, y hacerlo antes de un contracargo te ahorra la comisión bancaria
Puedes reembolsar cualquier pedido de Google Play de menos de tres años con una sola llamada a la API, con o sin revocar el acceso. Hacerlo tú mismo antes de que una disputa se convierta en contracargo te ahorra la comisión bancaria que recae sobre los desarrolladores desde el 3 de agosto de 2026. Así funciona orders.refund.

Puntos clave
- El endpoint `orders.refund` de la Google Play Developer API permite a un desarrollador reembolsar directamente cualquier compra única o pedido de suscripción, sin revisión, sin motivo requerido y sin necesidad de una solicitud del cliente.
- Un reembolso y una revocación son acciones distintas. `orders.refund` acepta un indicador opcional `revoke`. Déjalo desactivado y el comprador conserva el acceso; ponlo en true y Google termina el acceso al elemento de inmediato.
- Los pedidos con más de tres años no pueden reembolsarse a través de la Google Play Developer API. Una vez que se cierra esa ventana, el pedido queda permanentemente fuera de alcance.
- `orders.refund` emite únicamente reembolsos completos. Un reembolso parcial y prorrateado de una suscripción requiere el endpoint más reciente `purchases.subscriptionsv2.revoke` con un contexto `proratedRefund`.
- Reembolsar un pedido de suscripción con `revoke` en true dispara una Real-time Developer Notification `SUBSCRIPTION_REVOKED`, de modo que tu backend se entera de la revocación igual que se entera de cualquier otro evento de suscripción.
- A partir del 3 de agosto de 2026, Google carga al desarrollador el precio de compra más las comisiones bancarias de un contracargo. Un reembolso que emites tú mismo devuelve solo el precio de compra, así que reembolsar pronto un pedido dudoso puede salir más barato que dejar que se convierta en contracargo.
- Un reembolso iniciado por el desarrollador es el único flujo de reembolso de Google Play que controlas por completo. El reembolso de autoservicio de 48 horas, los reembolsos de soporte y las compras anuladas se deciden todos sin ti.
No tienes que esperar a que un cliente abra una disputa. Si quieres devolver el dinero, puedes reembolsar tú mismo un pedido de Google Play, directamente, con una sola llamada a la API o dos clics en Play Console. Google no te preguntará por qué, ni te cuestionará. Este es el único flujo de reembolso en el que tú sostienes el botón, y usarlo pronto, antes de que una disputa se endurezca hasta convertirse en un contracargo bancario, suele ser la salida más barata.
El único flujo de reembolso que realmente controlas
La mayoría de los reembolsos en Google Play te ocurren a ti, no pasan por ti. Un comprador que pide a Google dentro de las 48 horas obtiene un reembolso de autoservicio automático sin intervención del desarrollador. Un agente de soporte puede conceder uno que es definitivo en el momento en que se emite. Un contracargo bancario se decide entre el titular de la tarjeta y su banco. En todos esos casos, eres un espectador que se entera después.
El reembolso del desarrollador es la excepción. Aquí eres tú quien decide devolver el dinero, en tu propio calendario, por tus propias razones. Es una herramienta de buena voluntad, una herramienta de atención al cliente y, discretamente, una herramienta de control de costes. Saber exactamente cómo se comporta es lo que lo convierte de un botón de pánico en una elección deliberada.
Qué hace orders.refund, en una sola llamada
El método orders.refund de la Google Play Developer API reembolsa un único pedido, ya sea que ese pedido fuera una compra única dentro de la app o un pago de suscripción. Envías un POST vacío a la ruta de reembolso del pedido, autenticado con tu cuenta de servicio, y una llamada exitosa devuelve un cuerpo vacío. Ese es todo el mecanismo.
El indicador revoke decide si conservan el acceso
La única elección que te da la llamada es el indicador de consulta revoke. La referencia de Google es tajante sobre lo que hace: si se pone en true, el acceso a la suscripción o al elemento dentro de la app se terminará de inmediato. Omítelo y el dinero vuelve mientras el cliente conserva lo que compró. Ese único booleano es la diferencia entre un reembolso amistoso y una cancelación limpia.
| Parte de la llamada | Valor |
|---|---|
| Método y ruta | POST /androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund |
packageName | El id de tu app, por ejemplo com.acme.app |
orderId | El id de pedido que se muestra al comprador en la compra |
revoke | Indicador de consulta opcional. true termina el acceso de inmediato; omítelo para reembolsar y dejar el acceso intacto |
| Cuerpo de la petición | Vacío |
| Ámbito de OAuth | https://www.googleapis.com/auth/androidpublisher |
Reembolso completo por defecto, prorrateado solo para suscripciones
orders.refund devuelve el valor completo del pedido. No tiene ningún campo para un importe parcial. Si necesitas devolver parte de una suscripción, recurre al endpoint más reciente purchases.subscriptionsv2.revoke, que acepta un contexto de revocación y puede emitir un reembolso completo o uno prorrateado según el tiempo que quede en el periodo. El antiguo purchases.subscriptions.revoke hacía solo reembolsos completos, que es la razón principal por la que existe el método v2. Para pedidos únicos, los reembolsos parciales están disponibles a través del sitio web de Play Console para compras realizadas después de marzo de 2018, y nunca para apps de pago.

El muro de los tres años y otros límites
El límite duro es la antigüedad. Google afirma con claridad que los pedidos con más de tres años no pueden reembolsarse. No hay apelación ni anulación una vez que un pedido cruza esa línea, así que un reembolso es una decisión con fecha de caducidad. Un puñado de otros límites da forma a lo que la llamada puede y no puede hacer.
| Límite | Qué significa |
|---|---|
| Tope de antigüedad de tres años | Los pedidos con más de tres años no pueden reembolsarse a través de la API |
| Solo importe completo | orders.refund devuelve el valor completo del pedido, nunca un importe parcial |
| Reembolsos parciales | Disponibles para suscripciones vía purchases.subscriptionsv2.revoke, o a través de Play Console para pedidos únicos realizados después de marzo de 2018, nunca para apps de pago |
| No reversible | Una vez que emites un reembolso no se puede deshacer |
Lo que esto te ahorra en dinero
Todo reembolso ya es una pérdida antes de que toques el botón, porque el dinero que gastaste en atender esa compra no vuelve con él. Si el comprador generó imágenes, ejecutó llamadas a la API contra tus modelos, consumió almacenamiento o desencadenó un pago a un tercero, esos costes están gastados y siguen gastados. El reembolso solo decide quién se queda con el precio de venta encima de eso.
La razón para recurrir tú mismo a un reembolso es lo que pasa si no lo haces. La documentación de Google es explícita: a partir del 3 de agosto de 2026, cuando un cliente disputa un cargo con su banco, Google traslada el precio de compra y la comisión de contracargo del banco al desarrollador. Un reembolso que emites a través de orders.refund devuelve solo el precio de compra. Así que para un pedido que ya esperas perder, un reembolso emitido por ti mismo es más barato que el contracargo exactamente por la comisión bancaria, y cierra el caso antes de que pueda escalar.
Dónde se sitúa un autorreembolso entre los demás flujos de reembolso
Ayuda ver el reembolso del desarrollador junto a todo lo demás que puede retirar dinero de tu cuenta. Solo dos de estos flujos piden alguna vez tu intervención, y solo uno de ellos te deja iniciar tú mismo el reembolso.
| Flujo de reembolso | Quién decide | Tu control |
|---|---|---|
Reembolso del desarrollador (orders.refund) | Tú | Total. Tú eliges si y cuándo |
| Reembolso de autoservicio de 48 horas | Ninguno. Google reembolsa automáticamente | |
| Reembolso de agente de soporte | Soporte de Google o Apple | Ninguno. Definitivo una vez concedido |
Revisión de contracargo (orders.reviewrefund) | Google, usando tus pruebas | Solo una ventana de intervención de 24 horas |
| Voided Purchases API | Nadie, es de solo lectura | Ninguno. Solo lees lo que ya ocurrió |
Cómo reembolsar un pedido de Google Play, de principio a fin
Desde Play Console
- Abre Play Console y selecciona Gestión de pedidos en el menú de la izquierda.
- Encuentra el pedido por su id de pedido o por la dirección de correo completa del comprador.
- Debajo del precio, elige Reembolsar y selecciona un motivo de reembolso. Usa el sitio web, no la app móvil, si necesitas un reembolso parcial.
Desde la API
- Autentica una cuenta de servicio que tenga el ámbito
androidpublishery permisos financieros en Play Console. - Envía un POST vacío a la ruta de reembolso del pedido, añadiendo
revoke=truesolo si además quieres cortar el acceso. - Gestiona la respuesta de éxito vacía y, si revocaste una suscripción, espera una notificación
SUBSCRIPTION_REVOKEDque llegará a tu backend.
Un reembolso del desarrollador es un instrumento pequeño y afilado. Te da una forma limpia de compensar a un cliente, y una salida más barata que un contracargo en un pedido que ibas a perder de todos modos. La única regla es usarlo a propósito, con el indicador revoke puesto tal como realmente quieres.
Preguntas frecuentes
- ¿Puedo reembolsar un pedido de Google Play sin cancelar el acceso del cliente?
- Sí. Llama a `orders.refund` y deja desactivado el indicador `revoke`. El comprador recupera su dinero y conserva el acceso al elemento. Pon `revoke` en true solo cuando además quieras terminar el acceso a la compra de inmediato.
- ¿Cuánto tiempo atrás puedo reembolsar un pedido en Google Play?
- Hasta tres años desde la fecha de compra. La Google Play Developer API establece que los pedidos con más de tres años no pueden reembolsarse, y no hay anulación una vez que se cierra esa ventana.
- ¿orders.refund admite reembolsos parciales?
- No. `orders.refund` emite únicamente el importe completo del pedido. Para un reembolso parcial o prorrateado de una suscripción, usa `purchases.subscriptionsv2.revoke` con un contexto `proratedRefund`, o emite un reembolso parcial a través de Play Console para pedidos únicos elegibles.
- ¿Se enterará mi backend cuando revoque una suscripción con un reembolso?
- Sí. Reembolsar un pedido de suscripción con `revoke` en true dispara una Real-time Developer Notification `SUBSCRIPTION_REVOKED`, de modo que tu servidor puede actualizar la titularidad igual que gestiona cualquier otro evento de suscripción.
- ¿Es mejor reembolsar un pedido yo mismo que dejar que se convierta en contracargo?
- A menudo, en términos puros de coste. A partir del 3 de agosto de 2026 un contracargo le cuesta al desarrollador el precio de compra más la comisión bancaria, mientras que un reembolso que emites devuelve solo el precio de compra. Si un pedido claramente se dirige a una disputa, reembolsarlo pronto evita la comisión bancaria añadida.
Fuentes y lecturas adicionales
- Google Play Developer API: Method orders.refund
- Android Developers: Manage subscriptions and one-time purchases
- Play Console Help: Manage your app's orders and issue refunds
- Google Play Developer API: Method purchases.subscriptionsv2.revoke
- Google Play Console Help: refund protection and chargeback cost responsibility
- Google Play Help: Learn about Google Play refund policies
RefundHalt
El piloto automático de reembolsos para App Store y Google Play
Seguir leyendo
El envío de información de consumo de Apple ahora pide cinco campos, no doce, y aquí tienes cada uno
Cuando un cliente pide a Apple un reembolso, la carga de Send Consumption Information es tu respuesta. Apple la redujo de doce campos a cinco, tres obligatorios y dos opcionales. Aquí tienes cada campo, los valores que acepta cada uno y la ventana de 12 horas en la que debes enviarla.
Hay un endpoint que devuelve todo el historial de reembolsos de App Store de un cliente, y esto es lo que entrega
El endpoint Get Refund History de Apple devuelve el historial completo de reembolsos de App Store de un cliente como transacciones firmadas. Aquí tienes cada campo, cómo pagina el token revision, por qué es por cliente y no por app, y cuánto te cuesta un reembolso que se te escapa.