diff --git a/API-Reference.md b/API-Reference.md
new file mode 100644
index 0000000..ffee22f
--- /dev/null
+++ b/API-Reference.md
@@ -0,0 +1,421 @@
+# đ API Reference
+
+Documentation des services, hooks et composants de WalletTracker.
+
+## Services Firebase
+
+### authService
+
+Service de gestion de l'authentification.
+
+#### `signup(email, password, displayName)`
+Crée un nouveau compte utilisateur.
+
+```typescript
+import { authService } from '../services/authService';
+
+await authService.signup(
+ 'user@example.com',
+ 'password123',
+ 'John Doe'
+);
+```
+
+#### `login(email, password)`
+Connecte un utilisateur existant.
+
+```typescript
+await authService.login('user@example.com', 'password123');
+```
+
+#### `logout()`
+Déconnecte l'utilisateur actuel.
+
+```typescript
+await authService.logout();
+```
+
+---
+
+### transactionService
+
+Service de gestion des transactions.
+
+#### `addTransaction(userId, type, amount, category, date, note)`
+Ajoute une nouvelle transaction.
+
+```typescript
+import { transactionService } from '../services/transactionService';
+
+await transactionService.addTransaction(
+ userId,
+ 'expense', // 'expense' ou 'income'
+ 50.00, // montant
+ 'Alimentation', // catégorie
+ new Date(), // date
+ 'Courses du mois' // note (optionnel)
+);
+```
+
+#### `subscribeToTransactions(userId, callback)`
+Ăcoute les changements de transactions en temps rĂ©el.
+
+```typescript
+const unsubscribe = transactionService.subscribeToTransactions(
+ userId,
+ (transactions) => {
+ console.log('Transactions mises Ă jour:', transactions);
+ }
+);
+
+// N'oubliez pas de se désabonner
+return () => unsubscribe();
+```
+
+#### `getTransactionsByMonth(userId, year, month)`
+RécupÚre les transactions d'un mois spécifique.
+
+```typescript
+const transactions = await transactionService.getTransactionsByMonth(
+ userId,
+ 2025,
+ 10 // Octobre
+);
+```
+
+---
+
+### subscriptionService
+
+Service de gestion des abonnements.
+
+#### `addSubscription(userId, name, amount, category, frequency, nextPaymentDate, reminderDays)`
+Ajoute un nouvel abonnement.
+
+```typescript
+import { subscriptionService } from '../services/subscriptionService';
+
+await subscriptionService.addSubscription(
+ userId,
+ 'Netflix',
+ 15.99,
+ 'Divertissement',
+ 'monthly', // 'daily', 'weekly', 'monthly', 'yearly'
+ new Date('2025-11-01'),
+ 3 // rappel 3 jours avant
+);
+```
+
+#### `subscribeToSubscriptions(userId, callback)`
+Ăcoute les changements d'abonnements en temps rĂ©el.
+
+```typescript
+const unsubscribe = subscriptionService.subscribeToSubscriptions(
+ userId,
+ (subscriptions) => {
+ console.log('Abonnements mis Ă jour:', subscriptions);
+ }
+);
+```
+
+---
+
+### categoryService
+
+Service de gestion des catégories.
+
+#### `getCategories(userId)`
+RécupÚre les catégories de l'utilisateur.
+
+```typescript
+import { categoryService } from '../services/categoryService';
+
+const categories = await categoryService.getCategories(userId);
+```
+
+#### `initializeDefaultCategories(userId)`
+Initialise les catégories par défaut.
+
+```typescript
+await categoryService.initializeDefaultCategories(userId);
+```
+
+Les catégories par défaut incluent :
+- **DĂ©penses** : Alimentation, Transport, Logement, SantĂ©, Loisirs, Shopping, Ăducation, Autres
+- **Revenus** : Salaire, Freelance, Investissements, Cadeaux, Autres
+
+---
+
+## Hooks personnalisés
+
+### useAuth
+
+Hook pour gérer l'authentification.
+
+```typescript
+import { useAuth } from '../hooks/useAuth';
+
+function MyComponent() {
+ const { user, initializing, logout } = useAuth();
+
+ if (initializing) {
+ return ;
+ }
+
+ if (!user) {
+ return ;
+ }
+
+ return (
+
+ Bienvenue {user.displayName}
+
+
+ );
+}
+```
+
+**Propriétés retournées** :
+- `user` : Objet utilisateur Firebase ou `null`
+- `initializing` : `boolean` - True pendant le chargement initial
+- `logout` : Fonction de déconnexion
+
+---
+
+## Composants réutilisables
+
+### Button
+
+Bouton personnalisé avec 3 variantes.
+
+```typescript
+import { Button } from '../components/Button';
+
+