---
title: "Refund Saver"
description: "Usa Adapty Refund Saver para minimizar los reembolsos y maximizar los ingresos."
---

El Refund Saver ayuda a los usuarios de Adapty a gestionar eficazmente las solicitudes de reembolso de la App Store de Apple mediante automatización. Al simplificar este proceso, reduce la pérdida de ingresos y ahorra tiempo. Con notificaciones en tiempo real e información accionable, esta herramienta garantiza que atiendas las solicitudes de reembolso de forma efectiva cumpliendo las directrices de Apple.

  <img src="/assets/shared/img/refunds-chart.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '500px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## ¿Qué es el Refund Saver? \{#what-is-the-refund-saver\}

Cuando los usuarios solicitan reembolsos en la App Store, Apple evalúa los datos de consumo relacionados con la compra in-app para decidir si aprobar o denegar la solicitud. Por ejemplo, si un usuario compra una suscripción, la usa intensamente durante la mayor parte del período de suscripción y luego solicita un reembolso, es probable que Apple lo apruebe a menos que aportes datos de uso que demuestren que la suscripción se consumió activamente. Apple [anima a los desarrolladores](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information-v1) a compartir estos datos para garantizar que las decisiones sobre reembolsos sean justas.

El Refund Saver de Adapty automatiza este proceso cumpliendo plenamente con las [directrices](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information-v1) de la App Store.

Así es como funciona:

- Cuando un usuario inicia una solicitud de reembolso, la App Store envía una notificación pidiendo detalles sobre la transacción y el uso.
- Si ignoras o demoras la respuesta, es probable que Apple apruebe el reembolso por defecto.
- Adapty procesa automáticamente estas notificaciones y proporciona a Apple los datos necesarios.

Esta automatización reduce la probabilidad de reembolsos innecesarios, ahorrando tiempo y protegiendo tus ingresos.

:::info

Con el Refund Saver puedes recuperar hasta el 40% de los ingresos procedentes de solicitudes de reembolso.

:::

## Requisitos para usar el Refund Saver \{#requirements-to-use-refund-saver\}

Para usar esta función, asegúrate de cumplir los siguientes requisitos previos:

1. **Actualiza tu Política de Privacidad en App Store Connect:**
   La Política de Privacidad de tu app debe revelar la recopilación y el uso de datos de consumo. Esto garantiza que los usuarios entiendan las prácticas de privacidad de tu app antes de descargarla. Consulta los [detalles de privacidad de apps de Apple](https://developer.apple.com/app-store/app-privacy-details/) como referencia.
2. **Obtén el consentimiento del usuario para compartir datos en tu app:**
   Apple exige que obtengas un consentimiento válido del usuario antes de compartir sus datos personales con Apple. Como desarrollador, eres responsable de obtener ese consentimiento, ya que serás tú quien comparta los datos del usuario con Apple. Consulta las [directrices](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information) de Apple para más detalles.
3. **Activa las notificaciones de servidor V2:**
   Asegúrate de que las notificaciones de servidor V2 estén activadas en tu cuenta de Apple Developer y configuradas correctamente en Adapty, ya que las notificaciones V1 no son compatibles. Si aún no las has activado, sigue los pasos de la guía [Activar notificaciones de servidor de App Store](enable-app-store-server-notifications).

## Activar el Refund Saver \{#turn-on-refund-saver\}

1. Abre la sección [Refund Saver](https://app.adapty.io/refund-saver) en el Adapty Dashboard.

  <img src="/assets/shared/img/refund-off.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

2. Haz clic en **Turn on Refund Saver** para activar la función.

## Configurar el comportamiento predeterminado de reembolso \{#set-a-default-refund-behavior\}

Apple permite a los desarrolladores especificar un resultado preferido para cada solicitud de reembolso al responderla. El propósito de esta configuración es encontrar el equilibrio adecuado entre rechazar y aceptar solicitudes de reembolso, de modo que solo se concedan los reembolsos justos. Ten en cuenta que esta configuración solo sirve para influir en el resultado, pero la decisión final sigue siendo de Apple.

Adapty permite configurar esta preferencia, aunque se usará el mismo valor para todas las solicitudes de reembolso.

1. Para cambiar tu preferencia, haz clic en **Edit refund preference**.
   
     <img src="/assets/shared/img/refund-saver-preference.webp"
     style={{
       border: '1px solid #727272', /* border width and color */
       width: '700px', /* image width */
       display: 'block', /* for alignment */
       margin: '0 auto' /* center alignment */
     }}
   />
   

2. En la ventana **Edit refund preference**, elige tu opción de **Default refund request preference**:

   | Opción                                                | Descripción                                                  |
   | ----------------------------------------------------- | ------------------------------------------------------------ |
   | Always decline                                        | (predeterminado) Esta es la opción predeterminada y suele dar los mejores resultados para minimizar los reembolsos. |
   | Decline first refund request, grant all next          | Para cada transacción que encuentre el Refund Saver, inicialmente pedirá a Apple que rechace el reembolso. Sin embargo, si la misma transacción vuelve a aparecer, el Refund Saver siempre recomendará conceder el reembolso. Este enfoque ayuda a minimizar la frustración de los usuarios por rechazos injustos: simplemente pueden volver a solicitar el reembolso y probablemente lo recibirán. |
   | Always refund                                         | Sugiere que Apple apruebe todas las solicitudes de reembolso. |
   | No preference                                         | No proporciona ninguna recomendación a Apple. En este caso, Apple determinará el resultado del reembolso basándose en sus políticas internas y el historial del usuario, sin ninguna influencia de tu configuración. Esta opción ofrece el enfoque más neutral. |

## Configurar el comportamiento de reembolso para un usuario específico en el dashboard \{#set-refund-behavior-for-a-specific-user-in-the-dashboard\}

Aunque hayas configurado el comportamiento predeterminado del Refund Saver para toda la app, es posible que quieras establecer preferencias individuales para usuarios concretos. En el Adapty Dashboard, puedes hacerlo desde el perfil del usuario. Usa la sección **Refund Saver Preferences** que se encuentra en la parte inferior izquierda.

  <img src="/assets/shared/img/refund-saver-profile-preference.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Configurar el comportamiento de reembolso para un usuario específico en el SDK \{#set-refund-behavior-for-a-specific-user-in-the-sdk\}

Puedes establecer la preferencia de reembolso en el código de tu app de forma individual para cada instalación según las acciones del usuario. Usa el fragmento de código siguiente para configurar la preferencia:

<Tabs groupId="current-os" queryString> 

<TabItem value="swift" label="iOS (3.4.1+)" default>   

```swift showLineNumbers code  
do {
  try await Adapty.updateRefundPreference(<PREFERENCE_VALUE>) // possible values: .noPreference, .grant, .decline
} catch {
  // handle the error
}
```
</TabItem>
<TabItem value="flutter" label="Flutter (3.4.0+)" default> 

```javascript showLineNumbers code  
try {
  // possible values: AdaptyRefundPreference.noPreference, AdaptyRefundPreference.grant, AdaptyRefundPreference.decline
  await Adapty().updateRefundPreference(<PREFERENCE_VALUE>);
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle the error
}
```
</TabItem> 
<TabItem value="rn" label="React Native (3.4.0+)" default>

```typescript showLineNumbers
try {
    await adapty.updateRefundPreference(<PREFERENCE_VALUE>); // possible values: RefundPreference.NoPreference, RefundPreference.Grant, RefundPreference.Decline
} catch (error) {
    // handle the `AdaptyError`
}
```
</TabItem>
<TabItem value="unity" label="Unity (3.3.0+)" default>
```csharp showLineNumbers
Adapty.UpdateAppStoreRefundPreference(<PREFERENCE_VALUE>, (error) => {
  if (error != null) {
    // handle the error
    return;
  }
});
```
</TabItem>
</Tabs>

:::note
También puedes usar la API del lado del servidor para [establecer una preferencia de reembolso individual](api-adapty/operations/setRefundSaverSettings):
- Usa el SDK cuando la configuración de preferencia está directamente vinculada a las interacciones del cliente, como cuando los usuarios hacen clic en un botón para configurar su preferencia.
- Usa la API cuando necesitas realizar procesamiento del lado del servidor o cuando se adapta mejor a la arquitectura de tu aplicación.
:::

## Obtener el consentimiento del usuario \{#obtain-user-consent\}

La forma de recopilar el consentimiento del usuario para compartir datos depende de ti, pero Apple exige un consentimiento válido del usuario antes de compartir cualquier dato personal con ellos. Apple recomienda usar un **enfoque de opt-in**, que implica avisos dentro de la app que explican cómo se usarán los datos y requieren una acción explícita del usuario para dar su consentimiento. Si un usuario ignora o rechaza el aviso, no se considera que haya dado su consentimiento. Para más detalles, consulta las [directrices](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information) de Apple.

Si el consentimiento explícito no es práctico para tu app, puedes considerar un **enfoque de opt-out**. Esto implica incluir una cláusula de uso compartido de datos en tus Términos de Servicio, explicando que los usuarios aceptan el uso compartido de datos al aceptar los términos. Asegúrate de indicar claramente cómo pueden revocar su consentimiento.

A continuación tienes un ejemplo de cláusula para el enfoque opt-out, que incluye los tipos de datos que podrías compartir. Es solo un modelo para orientarte al redactar tu propio texto. Eres responsable de asegurarte de que tu versión final cumpla con todas las leyes aplicables y los requisitos de Apple.

*"Si recibimos una solicitud de reembolso de una compra in-app, podemos proporcionar a Apple información sobre la actividad de compras in-app del usuario. Esto puede incluir detalles como el tiempo transcurrido desde la instalación de la app, el tiempo total de uso de la app, un identificador de cuenta anónimo, si la compra in-app fue completamente consumida, si incluyó un período de prueba, el importe total gastado y el importe total reembolsado."*

Según el enfoque elegido, configura la opción **Default consent policy** en el menú **Edit refund preferences**:

 
  <img src="/assets/shared/img/refund-saver-consent.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

<p> </p>

| Opción  | Descripción                                                  |
| ------- | ------------------------------------------------------------ |
| Opt-out | (predeterminado) Si Adapty no conoce el estado de consentimiento del usuario, asume que el consentimiento **fue dado** y el Refund Saver **compartirá** los datos relacionados con el reembolso con Apple. |
| Opt-in  | Si Adapty no conoce el estado de consentimiento del usuario, asume que el consentimiento **no fue dado** y el Refund Saver **no compartirá** ningún dato con Apple. Este es el enfoque recomendado por Apple. |

## Actualizar el consentimiento del usuario en el SDK \{#update-user-consent-in-the-sdk\}

Para indicarle a Adapty si un usuario específico ha dado su consentimiento, usa el método `updateCollectingRefundDataConsent`:

<Tabs groupId="current-os" queryString> 

<TabItem value="swift" label="iOS (3.4.1+)" default> 

 ```swift showLineNumbers 
do {
  try await Adapty.updateCollectingRefundDataConsent(<CONSENT_VALUE>) // true = consent is explicitly provided, false = consent is explicitly revoked
} catch {
  // handle the error
}
 ```

</TabItem> 

<TabItem value="flutter" label="Flutter (3.4.0+)" default> 

```dart showLineNumbers 
try {
  // true = user gave consent, false = user revoked consent
  await Adapty().updateCollectingRefundDataConsent(<CONSENT_VALUE>); 
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle the error
}
```

</TabItem> 

<TabItem value="rn" label="React Native (3.4.0+)" default> 

```typescript showLineNumbers 
try {
    await adapty.updateCollectingRefundDataConsent(<CONSENT_VALUE>); // true = consent is explicitly provided, false = consent is explicitly revoked
} catch (error) {
    // handle the `AdaptyError`
}   
```

</TabItem>

<TabItem value="unity" label="Unity (3.3.0+)" default>
```csharp showLineNumbers
Adapty.UpdateAppStoreCollectingRefundDataConsent(<CONSENT_VALUE>, (error) => {
  if (error != null) {
    // handle the error
    return;
  }
});
```
</TabItem>
</Tabs>

:::note
También puedes usar la API del lado del servidor para [establecer una preferencia individual de uso compartido de datos](api-adapty/operations/setRefundSaverSettings):
- Usa el SDK cuando la configuración de preferencia está directamente vinculada a las interacciones del cliente, como cuando los usuarios hacen clic en un botón para configurar su preferencia.
- Usa la API cuando necesitas realizar procesamiento del lado del servidor o cuando se adapta mejor a la arquitectura de tu aplicación.
:::

## Comprobar el consentimiento del usuario \{#check-user-consent\}

Puedes comprobar el estado de consentimiento actual de un usuario en cualquier momento. En el Adapty Dashboard, simplemente abre el perfil del usuario y busca la configuración **Allow data sharing** en la sección **Refund Saver Preferences**, en la parte inferior izquierda.

  <img src="/assets/shared/img/refund-saver-profile-consent.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

:::note
También puedes usar la API del lado del servidor para [obtener las preferencias individuales de reembolso y uso compartido](api-adapty/operations/getRefundSaverSettings).
:::

## Limitaciones \{#limitations\}

- **Solo para la App Store de Apple:** El Refund Saver solo está disponible para solicitudes de reembolso realizadas en la App Store de Apple. Google Play no ofrece análisis de datos de consumo para reembolsos. Las decisiones de reembolso en Google Play se basan únicamente en las políticas de Google y en la información proporcionada por el usuario.
- **Solo para suscripciones de renovación automática y consumibles:** El Refund Saver funciona con suscripciones de renovación automática y compras in-app consumibles, ya que Apple solo proporciona la información necesaria para estos tipos de compra.
- **Requiere notificaciones de servidor V2:** El Refund Saver no es compatible con las notificaciones de servidor de App Store V1. Si actualmente usas V1 en Adapty, debes cambiar a V2; consulta la guía [Enviar notificaciones de servidor de App Store a Adapty](enable-app-store-server-notifications) para más detalles. Cambiar a V2 también mejorará tu análisis en Adapty al proporcionar datos más precisos y completos.