v1.0 Novembre 2025
2.1

Spécifications App Mobile

La solution de cashback nouvelle génération

24 novembre 2025
Version 1.0
iOS & Android
1

VUE D'ENSEMBLE

1.1Objectif de l'Application

L'application mobile REWAPP permet aux utilisateurs de bénéficier automatiquement de cashback lors de leurs achats chez les commerçants partenaires, de gérer leurs points de fidélité et de les convertir en virement bancaire ou en paiement chez les partenaires via QR code.

1.2Plateformes Supportées

Compatibilité

Plateforme Version Minimum Technologie
iOS iOS 14+ Angular + Ionic (Capacitor)
Android Android 10+ Angular + Ionic (Capacitor)

1.3Fonctionnalités Principales

  • Authentification sécurisée (email, social login, biométrie)
  • Liaison de carte bancaire via OpenBanking
  • Dashboard avec solde de points et palier de fidélité
  • Génération de QR code pour paiement commerçant (60 secondes, usage unique)
  • Demande de virement bancaire (minimum 100 points)
  • Historique complet des transactions
  • Recherche et localisation de partenaires
  • Notifications push
  • Gestion du profil et des paramètres

1.4Règles Métier Fondamentales

RÈGLE FONDAMENTALE

1 point = 0,10€

Ratios de Conversion

Type de Conversion Ratio Calcul
Cashback Bancaire 10 pts = 0,95€ Points × 0,095 (-5%)
Cashback Commerçant 10 pts = 1,05€ Points × 0,105 (+5%)
Stratégie

Le ratio favorise l'utilisation chez les partenaires (+5%) pour créer un cercle vertueux dans l'écosystème.

2

MODULE D'AUTHENTIFICATION

2.1Écran de Bienvenue (Onboarding)

Éléments Visuels

Premier lancement uniquement
  • Logo REWAPP centré
  • Slider de 3-4 écrans présentant les avantages :
Écran 1Gagnez des points automatiquement
Écran 2Double cashback : bancaire + commerçant
Écran 3Versement sous 2-3 semaines
Écran 4100% gratuit, sans frais
  • Bouton "Créer un compte" (primaire)
  • Lien "J'ai déjà un compte" (secondaire)
  • Indicateurs de pagination (dots)

Comportement

  • Affiché uniquement au premier lancement
  • Peut être passé via bouton "Passer" (coin supérieur droit)
  • Mémorisé pour ne plus afficher (Ionic Storage)
  • Swipe gauche/droite pour navigation

2.2Inscription

2.2.1 Inscription Email/Mot de Passe

Champs du Formulaire

Champ Type Obligatoire Validation
Prénom Texte 2-50 caractères, lettres uniquement
Nom Texte 2-50 caractères, lettres uniquement
Email Email Format email valide (RFC 5322)
Mot de passe Password 8+ caractères, maj+min+chiffre
Confirmation MDP Password Identique au MDP
CGU Checkbox Doit être coché
Validation Mot de Passe
  • Minimum 8 caractères
  • Au moins 1 majuscule (A-Z)
  • Au moins 1 minuscule (a-z)
  • Au moins 1 chiffre (0-9)
Faible< 8 caractères ou manque critère
Moyen8-12 caractères, tous critères
Fort12+ caractères + spécial
Processus d'Inscription
  1. 1

    Remplissage du formulaire

    Validation temps réel des champs

  2. 2

    Validation côté client

    Champs obligatoires et formats

  3. 3

    Envoi au backend

    POST /api/auth/register

  4. 4

    Vérification unicité email

  5. 5

    Création du compte

    Statut : non vérifié

  6. 6

    Envoi email de validation

    Lien valable 24h

  7. 7

    Écran "Vérifiez votre email"

  8. 8

    Redirection vers onboarding

    Liaison carte bancaire

Messages d'Erreur
  • "Cette adresse email est déjà utilisée"
  • "Format d'adresse email invalide"
  • "Les mots de passe ne correspondent pas"
  • "Mot de passe trop faible. Ajoutez une majuscule, un chiffre..."
  • "Vous devez accepter les Conditions Générales d'Utilisation"
  • "Une erreur est survenue. Veuillez réessayer."

2.2.2 Inscription via Google

  1. 1

    Clic sur "Continuer avec Google"

  2. 2

    Redirection OAuth2 Google

    Popup native

  3. 3

    Authentification utilisateur

  4. 4

    Récupération données

    Email, prénom, nom, photo profil

  5. 5

    Vérification compte existant

  6. 6

    Création automatique

    Pas de validation email nécessaire

  7. 7

    Acceptation CGU

    Popup interstitiel

  8. 8

    Redirection vers liaison carte

2.2.3 Inscription via Apple (iOS uniquement)

  • Clic sur "Continuer avec Apple"
  • Sign In with Apple (popup native iOS)
  • Option "Masquer mon email" supportée (relay Apple)
  • Si prénom/nom vides → Écran complémentaire pour saisie

2.3Connexion

2.3.1 Connexion Email/Mot de Passe

Champs de Connexion

  • Email (obligatoire, clavier email)
  • Mot de passe (obligatoire, masqué avec icône œil)
  • Checkbox "Se souvenir de moi" (optionnel)
  • Lien "Mot de passe oublié ?"
Processus de Connexion
  1. 1

    Saisie identifiants

  2. 2

    Validation format côté client

  3. 3

    Envoi backend

    POST /api/auth/login

  4. 4

    Vérification identifiants

  5. 5

    Génération tokens

    JWT access (15 min) + refresh (30 jours)

  6. 6

    Stockage sécurisé

    Keychain iOS / Keystore Android

  7. 7

    Proposition biométrie

    Si disponible et non configurée

  8. 8

    Redirection dashboard

Messages d'Erreur
  • "Email ou mot de passe incorrect" (générique pour sécurité)
  • "Compte non activé. Vérifiez votre email."
  • "Compte suspendu. Contactez le support."
  • "Trop de tentatives. Réessayez dans 15 minutes." (après 5 échecs)

2.3.2 Connexion Biométrique

Prérequis

Disponible uniquement après une première connexion email/mot de passe réussie

iOSFace ID ou Touch ID
AndroidEmpreinte ou reconnaissance faciale

2.3.3 Mot de Passe Oublié

  1. 1

    Clic sur "Mot de passe oublié ?"

  2. 2

    Écran avec champ email

  3. 3

    Saisie de l'email

  4. 4

    Envoi backend

    POST /api/auth/forgot-password

  5. 5

    Message neutre

    "Si un compte existe avec cet email..."

  6. 6

    Email envoyé

    Lien valable 1h, usage unique

  7. 7

    Nouveau mot de passe

  8. 8

    Redirection connexion

3

LIAISON CARTE BANCAIRE

3.1Onboarding Première Liaison

Après inscription, l'utilisateur est guidé pour lier sa première carte bancaire.

Écran d'Explication

Liez votre carte pour gagner des points
  • Détection automatique des achats partenaires
  • Sécurité bancaire maximale (agrément ACPR)
  • Aucun paiement depuis l'application
  • Compatible toutes banques françaises

Bouton "Lier ma carte" (primaire) + Lien "Plus tard" (skip)

Comportement "Plus tard"

Badge rappel sur icône profil • Popup rappel après 3 et 7 jours • Fonctionnalités limitées sans carte

Intégration SDK Solution Bancaire

Fournisseur recommandé : Budget Insight (Powens)

  1. 1

    Clic sur "Lier ma carte"

  2. 2

    Lancement du SDK natif

  3. 3

    Sélection de banque

    Recherche + liste

  4. 4

    Authentification bancaire sécurisée

  5. 5

    Validation 2FA

    SMS, app bancaire

  6. 6

    Sélection des comptes

  7. 7

    Consentement

    Durée 90 jours renouvelable

  8. 8

    Confirmation

    "Carte liée avec succès !"

Erreurs possibles
  • "Authentification bancaire échouée"
  • "Banque temporairement indisponible"
  • "Consentement refusé"
  • "Session expirée, veuillez réessayer"

3.2Gestion des Cartes

Accès : Profil → Cartes bancaires

Liste des Cartes Liées

Affichage par Carte

  • Logo de la banque (récupéré via API)
  • Nom de la banque (ex: "Crédit Agricole")
  • 4 derniers chiffres (ex: •••• 1234)
  • Badge Principale si carte par défaut
  • Date de liaison
  • Statut : 🟢 Active ou 🟠 Reconnexion requise

Actions du Menu

  • "Définir comme principale"
  • "Voir les transactions"
  • "Reconnecter" (si statut orange)
  • "Supprimer la carte"

Suppression d'une Carte

Avertissement Dernière Carte

Si c'est la dernière/unique carte : popup spécial "Sans carte liée, vous ne pourrez plus gagner de points chez nos partenaires."

4

DASHBOARD PRINCIPAL

4.1Structure de l'Écran

Header

  • Logo REWAPP (petit, coin gauche, cliquable → scroll top)
  • Barre de recherche condensée (icône loupe)
  • Icône notifications (🔔) avec badge rouge si non lues
  • Photo de profil ronde (coin droit, cliquable → profil)

Section Solde (Card principale)

Éléments du Solde

Élément Description Exemple
Solde en points Nombre total de points disponibles (grande police) 1 250 pts
Équivalence euros Calcul automatique (solde × 0,10€) ≈ 125,00€
Points bloqués Si demande virement en cours (🔒) 100 pts bloqués
Points expirant Alerte si expiration < 30 jours (⚠️) 50 pts expirent le 15/12

Section Palier de Fidélité

Paliers

Palier Bonus Icône Couleur
Bronze +0% 🥉 #CD7F32
Silver +5% 🥈 #C0C0C0
Gold +10% 🥇 #FFD700
Platine +15% 💎 #4169E1
Diamant +20% 💠 #9400D3

Actions Rapides

Générer QR
Virement
Partenaires

Section Dernières Transactions

Titre : "Dernières transactions" + lien "Voir tout →"

Liste scrollable verticale (5 dernières) avec logo partenaire, nom, date (format relatif), et points gagnés.

4.2Comportements

  • Pull-to-refresh : Actualisation complète (solde, transactions, palier)
  • Animation de loading : Skeleton screens pendant chargement
  • Animation crédit points : Confetti + son lors nouveau gain
  • Real-time : WebSocket pour mise à jour instantanée après scan QR
  • Deep linking : Retour au dashboard après actions externes
5

GÉNÉRATION DE QR CODE

5.1Écran de Saisie

Payer avec mes points

Header de l'écran
  • Solde disponible affiché en grand (ex: "1 250 pts disponibles")
  • Input numérique central avec clavier numérique natif
  • Affichage temps réel équivalence € : 100 pts = 10,50€
  • Suggestions rapides (chips) : 50, 100, 200, 500, Max
  • Bouton "Générer le QR Code"

Validations

Règle Condition Message d'Erreur
Montant minimum ≥ 10 points "Montant minimum : 10 points"
Montant maximum ≤ solde disponible "Solde insuffisant (XXX pts disponibles)"
Format Nombre entier uniquement "Veuillez saisir un nombre entier"

5.2Écran QR Code

ÉCRAN PLEIN

Mode immersif, impossible de quitter sans action volontaire

Affichage QR Code

  • QR code centré, grande taille (70% largeur écran)
  • Luminosité écran automatiquement au maximum
  • Fond blanc pur pour meilleur contraste scan
  • Montant en points affiché au-dessus du QR
  • Équivalence € affichée en dessous
  • Compteur à rebours circulaire : 60 secondes
60-20sVert
20-10sOrange
10-0sRouge clignotant

Sécurité du QR Code

Contenu encodé (JSON signé) :

  • ID utilisateur (hashé)
  • Montant en points
  • Timestamp de génération
  • Nonce unique
  • Signature HMAC-SHA256
PROTECTIONS

Usage UNIQUE (rejet si déjà scanné) • Validité 60 secondes exactement • Vérification signature côté backend • Blocage si screenshot détecté (optionnel)

Expiration (après 60 secondes)

  1. 1

    Compteur atteint 0

  2. 2

    QR code disparaît

    Animation fondu + icône horloge

  3. 3

    Points automatiquement débloqués

  4. 4

    Écran "QR code expiré"

    Message : "Vos points ont été recrédités"

Scan Réussi

  1. 1

    Notification backend (WebSocket)

  2. 2

    Écran devient vert

    Grande icône ✓ animée + vibration

  3. 3

    "Paiement validé !"

  4. 4

    Retour dashboard après 3s

6

DEMANDE DE VIREMENT BANCAIRE

6.1Formulaire de Demande

Convertir mes points en €

  • Card solde disponible
  • Input nombre de points + boutons 100, 500, 1000, Max
  • Calcul automatique : points × 0,095€ (bancaire -5%)
  • Champ IBAN (pré-rempli si déjà saisi)
  • Checkbox "Enregistrer cet IBAN"
Délai2-3 semaines max
FraisGratuit
PointsBloqués pendant traitement

Validations

Règle Condition Message d'Erreur
Montant minimum ≥ 100 points "Minimum 100 points requis (= 9,50€)"
Montant maximum ≤ solde disponible "Solde insuffisant"
Format IBAN FR + 25 caractères alphanumériques "Format IBAN invalide"
Validité IBAN Vérification checksum (ISO 13616) "IBAN incorrect, vérifiez votre saisie"
Pas de doublon Aucune demande en cours "Une demande de virement est déjà en cours"

6.2Suivi des Demandes

Accès : Profil → Mes virements OU Dashboard (si demande en cours)

Statuts des Demandes

Statut Couleur Description Actions
En attente 🟡 Orange Demande reçue, traitement à venir Annuler
En cours 🔵 Bleu Virement en préparation Aucune
Effectué 🟢 Vert Virement réalisé Voir détails
Annulé ⚫ Gris Demande annulée Voir détails
Annulation

Possible uniquement si statut = "En attente". Les points sont immédiatement recrédités.

7

HISTORIQUE DES TRANSACTIONS

7.1Écran Principal

Accès : Tab bar "Historique" OU Dashboard → "Voir tout"

Structure

  • Filtres (chips) : Tout | Points gagnés | Points dépensés | Virements
  • Recherche : Par nom de partenaire
  • Période : Semaine | Mois | 3 mois | Tout

Types de Transactions

Type Icône Couleur Informations
Achat partenaire Logo partenaire +XXX pts (vert) Nom, date, montant
Paiement QR 📱 -XXX pts (rouge) Nom partenaire, date
Virement 💳 -XXX pts (rouge) IBAN masqué, statut
Expiration -XXX pts (gris) "Points expirés", date
Bonus 🎁 +XXX pts (violet) "Bonus inscription", etc.
8

RECHERCHE ET LOCALISATION DES PARTENAIRES

8.1Écran Principal

Accès : Tab bar "Partenaires" OU Dashboard → Bouton "Partenaires"

  • Toggle vue : Carte 🗺️ | Liste 📋
  • Recherche : Nom, catégorie, adresse
  • Filtres : Catégories, distance, cashback minimum, ouvert maintenant, premium
  • Tri : Distance | Cashback | Popularité | Nouveaux

Catégories de Partenaires

Catégorie Icône Exemples
Restauration 🍽️ Restaurants, cafés, boulangeries, food trucks
Alimentation 🛒 Supermarchés, épiceries, primeurs, cavistes
Mode et Beauté 👗 Prêt-à-porter, chaussures, coiffeurs, instituts
Services 🔧 Garages, pressing, salles de sport
Loisirs et Culture 🎭 Librairies, cinémas, boutiques sport, jouets
Santé et Bien-être 💊 Pharmacies, parapharmacies, opticiens

8.2Fiche Partenaire

  • Header : Image couverture, logo, nom, catégorie, note, favori
  • Infos : Taux cashback, palier, bonus, total effectif
  • Localisation : Adresse, mini-carte, distance, boutons itinéraire/appeler
  • Horaires : Tableau par jour, indicateur ouvert/fermé
  • Statistiques : Points gagnés, dernière visite, nombre de visites
  • Actions : Générer QR, Partager, Signaler erreur
9

NOTIFICATIONS

9.1Types de Notifications

Notifications

Type Icône Titre Exemple Corps Exemple
Points gagnés 🎉 +50 points ! Votre achat chez [Partenaire] vous a rapporté 50 points
QR scanné Paiement validé 100 points utilisés chez [Partenaire]
Virement effectué 💰 Virement reçu ! XX,XX€ ont été virés sur votre compte
Expiration proche ⚠️ Points bientôt expirés 50 points expirent dans 7 jours
Palier atteint 🏆 Palier Silver atteint ! Vous bénéficiez maintenant de +5% de bonus
Sécurité 🔒 Nouvelle connexion Connexion détectée depuis [Appareil]

9.2Configuration

Paramètres → Notifications

  • Points et transactions (recommandé : ON)
  • Virements (recommandé : ON)
  • Promotions et offres (défaut : ON)
  • Nouveaux partenaires (défaut : ON)
  • Alertes sécurité (toujours ON, non modifiable)
10

PROFIL ET PARAMÈTRES

10.1Écran Profil

Accès : Tab bar "Profil" OU clic photo profil (dashboard)

Sections du Profil

Statistiques
  • Total points gagnés (all time)
  • Total économies réalisées (€)
  • Nombre de partenaires visités
  • Partenaire favori
Mes Informations
  • Modifier mon profil →
  • Cartes bancaires →
  • IBAN enregistré →
  • Mes favoris →
Paramètres
  • Notifications →
  • Sécurité →
  • Langue →
  • Apparence (clair/sombre/système) →

10.2Suppression de Compte

ACTION IRRÉVERSIBLE

Toutes les données seront supprimées • Les points seront perdus • Les demandes de virement en cours seront annulées

  1. 1

    Clic sur "Supprimer mon compte"

  2. 2

    Écran d'avertissement

  3. 3

    Saisie du mot de passe

  4. 4

    Popup final de confirmation

  5. 5

    Anonymisation des données (RGPD)

    Délai de rétractation : 30 jours

11

NAVIGATION ET ÉTATS GLOBAUX

11.1Tab Bar

Navigation Principale

Position Icône Label Écran
1 🏠 Accueil Dashboard principal
2 📍 Partenaires Carte/Liste partenaires
3 📱 QR Code Génération QR (bouton central)
4 📋 Historique Historique transactions
5 👤 Profil Profil et paramètres

11.2États d'Erreur Globaux

Pas de connexionVérifiez votre connexion internet
Erreur ServeurService temporairement indisponible
Session ExpiréeVeuillez vous reconnecter
MaintenanceNous revenons très vite !

11.3Accessibilité & Mode Sombre

  • Support VoiceOver (iOS) et TalkBack (Android)
  • Labels accessibilité sur tous les éléments interactifs
  • Contraste suffisant (WCAG AA minimum)
  • Taille de texte dynamique
  • Mode sombre : Clair / Sombre / Système
12

ANNEXES TECHNIQUES

12.1Récapitulatif des Règles Métier

Règles Métier

Règle Valeur
1 point0,10€
Conversion bancairePoints × 0,095€ (-5%)
Conversion commerçantPoints × 0,105€ (+5%)
Seuil virement minimum100 points (= 9,50€)
Délai virement2-3 semaines maximum
Validité QR code60 secondes
Usage QR codeUnique (rejet si réutilisé)
Validité points12 mois
Méthode utilisationFIFO (plus anciens d'abord)
Montant minimum QR10 points

12.2Messages d'Erreur Standards

Codes d'Erreur

Code Message Utilisateur
NETWORK_ERRORVérifiez votre connexion internet
SERVER_ERRORUne erreur est survenue. Réessayez.
INVALID_CREDENTIALSEmail ou mot de passe incorrect
ACCOUNT_DISABLEDCompte suspendu. Contactez le support.
TOO_MANY_ATTEMPTSTrop de tentatives. Réessayez dans 15 minutes.
INSUFFICIENT_BALANCESolde de points insuffisant
QR_EXPIREDQR code expiré
QR_ALREADY_USEDCe QR code a déjà été utilisé
INVALID_IBANFormat IBAN invalide
TRANSFER_MIN_AMOUNTMinimum 100 points requis

12.3Intégrations Techniques

Services Intégrés

Service Usage SDK/API
Budget Insight (Powens)Card linkingSDK natif
Firebase Cloud MessagingNotifications push@capacitor/push-notifications
SentryError trackingSentry Angular
MixpanelAnalyticsMixpanel SDK
Google Maps / Apple MapsCartographie@capacitor/google-maps

12.4Stockage Local

Données Stockées

Donnée Méthode Sécurité
Access TokenKeychain / KeystoreChiffré, biométrie
Refresh TokenKeychain / KeystoreChiffré, biométrie
IBAN sauvegardéKeychain / KeystoreChiffré
PréférencesIonic StorageNon sensible
Cache donnéesIonic StorageTTL 24h
Onboarding vuIonic StorageFlag booléen
FIN DU DOCUMENT

Document rédigé conformément au Guide de Rédaction REWAPP v1.0
Source de vérité : Section 1 - Documents de Cadrage