Flujo de reembolso

Descripción general

Los reembolsos pueden iniciarse mediante una acción activa del usuario (al presionar el botón "Reembolsar") o se pueden activar automáticamente en nombre de un usuario. Independientemente del activador, se enviará una solicitud de reembolso asíncrona desde Google al integrador de pagos. El integrador debe aceptar la solicitud y notificar a Google una vez que se complete el reembolso.

Cómo funciona el flujo

Flujo de reembolso

Este es un ejemplo de un flujo de reembolso asíncrono que inicia el usuario:

Flujo de reembolso

A continuación, se muestra la lista de objetos del diagrama anterior:

  • Usuario: Es la persona que solicita un reembolso total o parcial.
  • Servidor de Google: Es el servidor de backend de Google que envía el comando de reembolso al integrador de pagos.
  • Integrador de pagos: Es el integrador que reenvía la solicitud de reembolso a la entidad emisora correspondiente.
  • Emisor: Es la entidad emisora que se usa para los pagos, que acepta la solicitud de reembolso.

En este ejemplo, el usuario es quien inicia el reembolso.

  1. El usuario inicia el reembolso al servidor de Google.
  2. Google llama al extremo AsynchronousRefund del integrador de pagos.
  3. El integrador envía una respuesta Acknowledged a Google.
  4. El integrador llama al extremo Refund apropiado en el emisor.
  5. La entidad emisora procesa el reembolso y responde al integrador con Success.
  6. El integrador llama al extremo RefundResultNotification en el servidor de Google para notificar a Google el resultado.
  7. Google acepta las RefundResultNotification.
  8. Google actualiza los fondos disponibles del usuario.
  9. El usuario obtiene un reembolso.

Prácticas recomendadas y otras consideraciones

Debido a que algunos productos de Google, como AdWords, admiten reembolsos siempre que exista crédito en la cuenta, las solicitudes de reembolso de transacciones se deben admitir por un tiempo indefinido. En caso de que exista una limitación técnica, el período de reembolso debería extenderse por la misma duración que su plataforma.

Los reembolsos solo se pueden rechazar si el saldo de la transacción original no es suficiente para cubrir el importe del reembolso, o si la cuenta se cerró o está retenida, y el integrador no puede enviarle este dinero al usuario.

Los reembolsos se pueden iniciar segundos después de la captura. La fecha de recepción de los reembolsos queda a discreción de Google.

Un reembolso nunca debe considerarse como un reembolso total. Siempre se debe tener en cuenta el campo refundAmount cuando se reembolsa la cuenta.

Se deben admitir varios reembolsos parciales. Por ejemplo, supongamos que se produce una transacción por un valor de USD 11.00 y un usuario puede obtener correctamente reembolsos parciales de USD 4.00, USD 5.00 y USD 1.00 de la transacción original. En este caso, los tres reembolsos tendrán los mismos valores de captureRequestId, pero diferentes valores de requestId. Además, a esta transacción solo le quedaría USD 1.00.

Ahora imaginemos que hay una compra de USD 12.00. En este ejemplo, el usuario puede realizar dos reembolsos, cada uno de USD 6.00. Si estos dos reembolsos tienen valores de requestId diferentes (y el mismo captureRequestId), deben tratarse como reembolsos separados en la misma transacción. En este caso, al usuario le quedaría USD 0 en la transacción una vez que se completen estos reembolsos.