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

Cada renovación tiene su propio ID de pedido de Google Play, y ese es el número que debes revisar antes de reembolsar a nadie

Un ID de pedido de Google Play como GPA.1234-5678-9012-34567..2 identifica un cargo exacto. Te explicamos cómo leer el sufijo de renovación, buscar un pedido en Play Console o con la Orders API, y reembolsar el cargo al que se refiere el cliente sin pagar por el equivocado.

Un desarrollador en su escritorio compara un recibo recibido por correo en un teléfono Android con una lista de pedidos en un portátil, para asociar un ID de pedido de Google Play con el cargo correcto

Puntos clave

  • Un ID de pedido de Google Play tiene la forma GPA.1234-5678-9012-34567, y las renovaciones de suscripción añaden un sufijo, así que GPA.1234-5678-9012-34567..0 es la primera renovación de esa suscripción.
  • getOrderId() de la Play Billing Library devuelve el ID del pedido inicial en las renovaciones de suscripción, no el ID propio de la renovación, y devuelve null mientras una compra está en estado PENDING.
  • Google añadió get y batchGet al recurso Orders de la Play Developer API el 21 de mayo de 2025. batchGet acepta de 1 a 1.000 IDs de pedido distintos y hace fallar toda la solicitud si alguno no se encuentra.
  • Un Order de la Orders API tiene un estado PENDING, PROCESSED, CANCELED, PENDING_REFUND, PARTIALLY_REFUNDED o REFUNDED, además de developerRevenueInBuyerCurrency, que ya descuenta reembolsos parciales, impuestos y comisiones.
  • El método orders.refund de Google Play no puede reembolsar pedidos con más de 3 años de antigüedad, y pasar revoke=true corta de inmediato el acceso del cliente a la suscripción o al artículo.
  • En Play Console, Reembolsar y revocar (Refund and revoke) se aplica al pedido más reciente de una suscripción, mientras que Solo reembolsar (Refund only) se aplica a un pedido anterior y deja la suscripción activa.
  • Google Play gestiona por sí mismo las solicitudes de reembolso dentro de las 48 horas posteriores a la compra. Pasadas esas 48 horas, remite al cliente al desarrollador, y es entonces cuando un ID de pedido suele llegar a tu bandeja de soporte.

Mira el final del número de pedido antes de reembolsar a un cliente de Google Play. GPA.1234-5678-9012-34567 es el primer cargo de una suscripción. GPA.1234-5678-9012-34567..2 es el tercero. Comparten la base, son pagos distintos, y Play Console los trata de forma diferente cuando reembolsas. El ID de pedido de Google Play es el único identificador que ve tu cliente, así que es el que acaba en tu bandeja de soporte. Si lo lees bien, reembolsas una sola vez el cargo que de verdad le molesta.

Qué te dice un ID de pedido de Google Play

La documentación de la Play Billing Library de Google muestra el formato con ejemplos. Un ID de pedido empieza por GPA y sigue con grupos de dígitos. En las suscripciones, cada renovación recibe el ID de pedido base más dos puntos y un contador que empieza en cero. Así, la compra original no lleva sufijo, la primera renovación es ..0, la segunda es ..1, y así sucesivamente.

Por eso el sufijo te dice de un vistazo cuánto tiempo lleva pagando alguien. Un cliente que escribe por GPA.3333-4137-0319-36762..11 ha renovado doce veces. Un cliente que cita el ID base sin sufijo o compró algo una sola vez o se refiere a su primerísimo pago.

ID de pedidoQué es
GPA.1234-5678-9012-34567Una compra única, o el primer cargo de una suscripción
GPA.1234-5678-9012-34567..0La primera renovación de esa suscripción
GPA.1234-5678-9012-34567..1La segunda renovación
null en la Billing LibraryUna compra todavía en estado PENDING, antes de que Google procese el pago

Dónde aparece el ID de pedido, y qué versión recibes

Aquí es donde los equipos tropiezan. Cada superficie te da una forma distinta del mismo ID.

  • El recibo de Google Play del cliente muestra el ID de pedido del cargo al que corresponde, renovaciones incluidas.
  • En tu app, Purchase.getOrderId() de la Play Billing Library devuelve el ID del pedido inicial en las renovaciones de suscripción. El propio ejemplo de Google: en lugar de GPA.1234-5678-9012-34567..0, recibes GPA.1234-5678-9012-34567.
  • En tu servidor, purchases.subscriptionsv2 da a cada línea un latestSuccessfulOrderId, el ID del último pedido completado con éxito para ese artículo. Google añadió el campo el 21 de mayo de 2025.
  • En la Voided Purchases API, orderId identifica de forma única una compra única, una compra de suscripción o una renovación de suscripción. La documentación de Google indica usar orderId, no el token de compra, para distinguir las renovaciones.

Para qué sirve, en cambio, el token de compra

El token de compra identifica la compra en su conjunto. En una suscripción, un mismo token cubre el cargo original y todas las renovaciones posteriores. Por eso es la clave correcta para los derechos de acceso y la equivocada para un reembolso. Los reembolsos y los contracargos afectan a un único cargo, y solo el ID de pedido nombra un único cargo.

Cómo buscar un pedido de Google Play

En Play Console

Gestión de pedidos (Order management) acepta en su buscador un ID de pedido o la dirección de correo completa del cliente. Cada pedido muestra uno de estos estados: Procesado, Cancelado, Pendiente, Reembolso pendiente, Reembolsado, Reembolso parcial pendiente o Reembolsado parcialmente. Si el cliente te da un correo en lugar de un recibo, busca por correo, elige el cargo por fecha y confirma el sufijo antes de actuar.

Con la Orders API

Desde el 21 de mayo de 2025, el recurso Orders de la Google Play Developer API ofrece orders.get para un pedido y orders.batchget para una lista. En la práctica importan algunos límites:

  • batchget admite entre 1 y 1.000 IDs de pedido por solicitud, y deben ser distintos.
  • Si un solo ID de pedido no se encuentra o no pertenece al paquete, falla toda la solicitud batchget.
  • Las llamadas a la Orders API cuentan para tu cuota de la Play Developer API, que por defecto es de 200.000 llamadas al día.

Lo útil es el Order que recibes. Incluye el estado del pedido, su purchaseToken, createTime y lastEventTime, el total y el impuesto, un salesChannel como IN_APP o PLAY_STORE, y un orderHistory con los eventos de procesamiento, cancelación, reembolso y reembolso parcial. También incluye developerRevenueInBuyerCurrency, que Google define como tus ingresos en la moneda del comprador, descontados los reembolsos parciales, impuestos y comisiones. Cuando Google es el comerciante registrado, la dirección del comprador solo contiene el país.

Estado del pedidoQué dice la referencia de Google
PENDINGCreado y a la espera de procesarse
PROCESSEDProcesado correctamente
CANCELEDCancelado antes de procesarse
PENDING_REFUNDUn reembolso solicitado está a la espera de procesarse
PARTIALLY_REFUNDEDSe reembolsó parte del importe del pedido
REFUNDEDSe reembolsó el importe completo del pedido

Reembolsar el pedido correcto

Cuando sabes a qué cargo se refiere el cliente, Play Console te da una opción que depende de la posición de ese pedido dentro de la suscripción.

OpciónSe aplica aQué ocurre
Reembolsar y revocarEl pedido más reciente de una suscripciónSe emite el reembolso, la suscripción se elimina de inmediato y se cancelan las renovaciones futuras
Solo reembolsarUn pedido anterior de una suscripciónSe emite el reembolso y la suscripción sigue activa
Reembolso parcialCompras dentro de la app y suscripciones pedidas después de marzo de 2018, no apps de pagoCualquier porcentaje inferior al 100 %, o un importe antes de impuestos inferior al total del pedido
Cancelar suscripciónUna suscripción activaSin reembolso, el acceso dura hasta que termina el periodo de facturación actual

A través de la API, orders.refund recibe el nombre del paquete y el ID de pedido. Los pedidos con más de 3 años no se pueden reembolsar. El parámetro opcional revoke, con valor true, corta de inmediato el acceso a la suscripción o al artículo dentro de la app. La ayuda de Google señala además que los reembolsos no se pueden revertir una vez emitidos, así que el ID de pedido que envías es definitivo.

¿Por qué aparece un pedido de 0,00 $ para un suscriptor?

La documentación de Google sobre el ciclo de vida de las suscripciones lo explica. Cuando un usuario se vuelve a suscribir desde tu app al mismo plan base antes de que caduque su suscripción, Google Play crea un pedido de 0,00 $. No se le cobra, porque ya pagó el periodo actual, y la facturación normal se reanuda en la fecha de renovación original. No es una prueba gratuita ni una promoción. En ese pedido no hay nada que reembolsar. Si el cliente quiere su dinero, busca el pedido pagado anterior.

Lo que te cuesta reembolsar el pedido equivocado

Un reembolso devuelve el precio. Los reembolsos parciales funcionan igual, en proporción. El ejemplo de Google: un reembolso parcial del 50 % también retira el 50 % de tu pago y el 50 % de la comisión de servicio. Lo que no vuelve es todo lo que gastaste en atender a ese cliente: el cómputo, las llamadas a APIs de terceros, el almacenamiento, cualquier pago a afiliados. Si reembolsas el pedido equivocado, pagas eso dos veces.

Así es como pasa. Un cliente con plan mensual escribe por el cargo ..4, el de la semana pasada. Alguien de tu equipo busca por correo, ve el primer pedido arriba y hace clic en Solo reembolsar sobre el pedido base de hace meses. Ahora el cliente recupera el dinero de un periodo que sí usó. El cargo del que se quejó sigue intacto, y su suscripción se sigue renovando. Todavía puede pedir a su banco que revierta el cargo de la semana pasada.

Manos sosteniendo un teléfono Android sobre un extracto bancario impreso y un bolígrafo, el momento en que un cliente asocia un cargo con su ID de pedido de Google Play

Esa vía bancaria ahora es la cara. Para los pedidos realizados después del 3 de agosto de 2026, Google indica que, cuando prospera un contracargo, el desarrollador responde del precio de compra, menos la comisión de servicio de Play, más las comisiones de contracargo que cobre el banco. Los contracargos son definitivos en el banco. Un sufijo mal leído puede terminar en el dinero de dos reembolsos perdido, más comisiones.

Qué reembolsos nunca llegan a tu bandeja

La mayoría de los reembolsos de Google Play no te necesitan a ti ni al ID de pedido. La política de reembolsos de Google dice que un cliente puede obtener un reembolso a través de Google Play dentro de las 48 horas posteriores a la compra, y que pasadas las 48 horas debe contactar con el desarrollador. Google también reembolsa y revoca las suscripciones que no confirmas en un plazo de tres días. De esos te enteras después mediante la Voided Purchases API, que informa del voidedSource (0 para el usuario, 1 para el desarrollador, 2 para Google) y de un voidedReason como Remorse, Chargeback o Unacknowledged_purchase.

Solo un flujo de reembolso de Google Play pide tu versión. Cuando un contracargo requiere revisión del desarrollador, tienes 24 horas para responder mediante orders.reviewrefund con una preferencia de reembolso APPROVE, DECLINE o NEUTRAL y pruebas del uso de la compra. RefundHalt responde a esa revisión dentro del plazo por ti, con los datos de uso que ya tienes, para que un pedido disputado reciba tus pruebas en lugar de silencio.

Una lista breve para tickets de soporte con ID de pedido

  • Pide el ID de pedido completo del recibo de Google Play, sufijo incluido.
  • Búscalo en Play Console o con orders.get y revisa primero su estado.
  • Confirma que la fecha del cargo coincide con lo que describe el cliente.
  • Usa Reembolsar y revocar solo en el pedido más reciente, y Solo reembolsar en los anteriores.
  • Anota el ID de pedido que reembolsaste, para que un contracargo posterior sobre otro pedido sea fácil de detectar.

Preguntas frecuentes

¿Qué significa ..0 al final de un ID de pedido de Google Play?
Marca la primera renovación de una suscripción. Google Play da a cada renovación el ID de pedido base de la suscripción más dos puntos y un contador que empieza en cero, así que GPA.1234-5678-9012-34567..0 es la primera renovación y ..1 la segunda. El ID base sin sufijo es el cargo original.
¿Por qué getOrderId() en mi app devuelve un ID de pedido distinto al del recibo del cliente?
Porque la Play Billing Library devuelve el ID del pedido inicial en las renovaciones de suscripción. El ejemplo de Google es que, en lugar de GPA.1234-5678-9012-34567..0 para la primera renovación, getOrderId() devuelve GPA.1234-5678-9012-34567. Usa latestSuccessfulOrderId de purchases.subscriptionsv2 en tu servidor para obtener el ID propio de la renovación.
¿Cómo busco un pedido de Google Play por su ID de pedido?
Búscalo en Gestión de pedidos de Play Console, que acepta un ID de pedido o la dirección de correo completa del cliente, o llama a orders.get en la Google Play Developer API. orders.batchget busca de 1 a 1.000 IDs de pedido distintos a la vez, y toda la solicitud falla si alguno no se encuentra.
¿Puedo reembolsar un pedido de Google Play de hace más de un año?
Sí, hasta 3 años. La referencia de orders.refund de Google dice que los pedidos con más de 3 años no se pueden reembolsar. Para un pedido anterior de una suscripción, la opción Solo reembolsar de Play Console devuelve el dinero y deja la suscripción activa.
¿Por qué hay un pedido de Google Play de 0,00 $ para un suscriptor?
Aparece cuando un usuario se vuelve a suscribir desde tu app al mismo plan base antes de que caduque su suscripción. No se le cobra porque ya pagó el periodo actual, y la facturación habitual se reanuda en la fecha de renovación original. Google indica que no significa que se haya concedido una prueba gratuita ni un descuento promocional.

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.