# Définir les paramètres de Refund Saver

> Définir la préférence de remboursement individuellement pour l'utilisateur et enregistrer si l'utilisateur a donné son consentement au partage de ses données. Par défaut, Refund Saver demande toujours à Apple de refuser la demande de remboursement d'un utilisateur. Vous pouvez modifier ce comportement par défaut pour tous les utilisateurs dans l'Adapty Dashboard, ou l'ajuster pour un utilisateur spécifique via le Dashboard, le SDK Adapty ou l'API côté serveur.

## OpenAPI

```yaml
/api-specs/adapty-api.yaml post /api/v2/server-side-api/purchase/profile/refund-saver/settings/
openapi: 3.1.0
info:
  title: API côté serveur Adapty
  version: 1.0.0
servers:
  - url: https://api.adapty.io
    description: Serveur de production
paths:
  /api/v2/server-side-api/purchase/profile/refund-saver/settings/:
    post:
      summary: Définir les paramètres de Refund Saver
      description: Définir la préférence de remboursement individuellement pour l'utilisateur et enregistrer si l'utilisateur a donné son consentement au partage de ses données. Par défaut, Refund Saver demande toujours à Apple de refuser la demande de remboursement d'un utilisateur. Vous pouvez modifier ce comportement par défaut pour tous les utilisateurs dans l'Adapty Dashboard, ou l'ajuster pour un utilisateur spécifique via le Dashboard, le SDK Adapty ou l'API côté serveur.
      operationId: setRefundSaverSettings
      tags:
        - Refund Saver
      security:
        - apikeyAuth: []
      parameters:
        - name: adapty-customer-user-id
          in: header
          required: false
          schema:
            type: string
          description: L'identifiant unique du client dans votre système. `adapty-customer-user-id` ou `adapty-profile-id` est requis.
        - name: adapty-profile-id
          in: header
          required: false
          schema:
            type: string
            format: uuid
          description: L'identifiant unique du profil dans votre système. Meilleure option si vous travaillez avec des profils anonymes. `adapty-customer-user-id` ou `adapty-profile-id` est requis.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RefundSaverSettingsRequest"
            example:
              custom_preference: grant
              consent: true
      responses:
        "200":
          description: Paramètres mis à jour avec succès
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RefundSaverSettingsResponse"
              example:
                profile_id: e5aab402-b1bd-4039-b632-57a91ebc0779
                settings:
                  consent: true
                  custom_preference: grant
        "400":
          description: Requête incorrecte
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              examples:
                profile_does_not_exist:
                  summary: Le profil n'existe pas
                  value:
                    errors:
                      - Profile does not exist
                    error_code: profile_does_not_exist
                    status_code: 400
                validation_error:
                  summary: Erreur de validation
                  value:
                    errors:
                      - Profile refund saver settings must have either consent or custom_preference or both
                    error_code: validation_error
                    status_code: 400
        "401":
          description: Non autorisé
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              example:
                errors:
                  - Invalid API key
                error_code: unauthorized
                status_code: 401
        "500":
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
components:
  schemas:
    RefundSaverSettingsRequest:
      type: object
      properties:
        custom_preference:
          type: string
          enum:
            - grant
            - no_preference
            - decline
          nullable: true
          description: |
            Définir la préférence de remboursement individuellement pour l'utilisateur.
            - `grant` : approuver chaque demande de remboursement
            - `no_preference` : ne fournir aucune recommandation
            - `decline` : refuser chaque demande de remboursement
        consent:
          type: boolean
          nullable: true
          description: |
            Enregistrer si l'utilisateur a donné son consentement au partage de ses données.
            - `true` signifie que si vous recevez une demande de remboursement intégré à l'application, vous pouvez fournir à Apple des informations sur l'utilisateur
      example:
        custom_preference: grant
        consent: true
    RefundSaverSettingsResponse:
      type: object
      properties:
        profile_id:
          type: string
          format: uuid
          description: Identifiant du profil client
        settings:
          type: object
          properties:
            consent:
              type: boolean
              description: Indique si l'utilisateur a consenti au partage de ses données
            custom_preference:
              type: string
              enum:
                - grant
                - no_preference
                - decline
              description: La préférence de remboursement
          description: Paramètres Refund Saver pour l'utilisateur
      required:
        - profile_id
        - settings
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
                nullable: true
                description: Source de l'erreur
              errors:
                type: array
                items:
                  type: string
                description: Tableau de messages d'erreur
        error_code:
          type: string
          description: Nom court de l'erreur
        status_code:
          type: integer
          description: Code de statut HTTP
      required:
        - errors
        - error_code
        - status_code
  securitySchemes:
    apikeyAuth:
      type: apiKey
      name: Authorization
      in: header
      default: Api-Key {Your secret API key}
      description: |
        Les requêtes API doivent être authentifiées par votre clé API secrète via l'en-tête **Authorization** 
        avec la valeur `Api-Key {your_secret_api_key}`, par exemple, 
        `Api-Key secret_live_...`. Retrouvez cette clé dans l'Adapty Dashboard -> 
        **App Settings** -> onglet **General** -> section **API keys**.
```
