API Endpoints
Référence complète de tous les endpoints de l'API mobile YaniPay. Base URL: /api/v1/mobile — Last updated: 2026-04-09
Overview
L'API mobile YaniPay expose 9 groupes d'endpoints couvrant toutes les fonctionnalités de l'application. Tous les endpoints protégés nécessitent un token JWT valide dans le header Authorization.
Auth Endpoints
Authentification, inscription et gestion des sessions. Les endpoints de login et register ne nécessitent pas d'authentification.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| POST | /auth/login | Authentification utilisateur | - |
| POST | /auth/register | Inscription nouvel utilisateur | - |
| POST | /auth/logout | Déconnexion | |
| POST | /auth/logout-all | Déconnexion tous les devices | |
| POST | /auth/refresh | Rafraîchir le token | - |
| POST | /auth/biometric | Activer auth biométrique | |
| POST | /auth/forgot-password | Demande reset password | - |
| POST | /auth/reset-password | Reset password avec token | - |
Exemple: Login
const response = await apiClient.post('/auth/login', {
email: 'user@example.com',
password: 'securePassword123',
deviceId: await getDeviceId(),
deviceInfo: await getDeviceInfo(),
});
// Store tokens
await SecureStore.setItemAsync('accessToken', response.data.accessToken);
await SecureStore.setItemAsync('refreshToken', response.data.refreshToken);User Endpoints
Gestion du profil utilisateur, préférences et authentification multi-facteurs.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /user/profile | Récupère le profil utilisateur | |
| PATCH | /user/profile | Met à jour le profil | |
| GET | /user/preferences | Récupère les préférences | |
| PUT | /user/preferences | Met à jour les préférences | |
| GET | /user/devices | Liste des devices connectés | |
| DELETE | /user/devices/:id | Révoque un device | |
| POST | /user/2fa/enable | Active la 2FA | |
| POST | /user/2fa/verify | Vérifie code 2FA |
Wallet Endpoints
Opérations sur le wallet : solde, transferts, recharges.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /wallet/balance | Solde du wallet | |
| GET | /wallet/accounts | Liste des comptes | |
| POST | /wallet/transfer | Transfert entre comptes | |
| POST | /wallet/topup | Recharge du wallet | |
| GET | /wallet/transactions | Historique transactions | |
| POST | /wallet/withdraw | Retrait vers compte bancaire |
Exemple: Transfert
const response = await apiClient.post('/wallet/transfer', {
fromAccountId: 'acc_123',
toAccountId: 'acc_456',
amount: 50.00,
currency: 'EUR',
description: 'Remboursement restaurant',
});
// Response
{
"transactionId": "txn_789",
"status": "completed",
"amount": 50.00,
"fee": 0,
"newBalance": 150.00
}Payment Endpoints
Traitement des paiements, QR codes et paiements planifiés.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| POST | /payments/process | Traite un paiement | |
| GET | /payments/history | Historique des paiements | |
| POST | /payments/qr/generate | Génère un QR de paiement | |
| POST | /payments/qr/scan | Scanne et paie via QR | |
| POST | /payments/scheduled | Planifie un paiement | |
| GET | /payments/scheduled | Liste paiements planifiés | |
| DELETE | /payments/scheduled/:id | Annule paiement planifié |
Card Endpoints
Gestion des cartes de paiement, paramètres et intégration Apple/Google Pay.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /cards | Liste des cartes | |
| GET | /cards/:id | Détails d'une carte | |
| POST | /cards/:id/freeze | Gèle une carte | |
| POST | /cards/:id/unfreeze | Dégèle une carte | |
| GET | /cards/:id/details | Détails sensibles (CVV) | |
| PUT | /cards/:id/settings | Paramètres de la carte | |
| POST | /cards/:id/pin | Change le code PIN | |
| POST | /cards/apple-pay | Ajoute à Apple Pay | |
| POST | /cards/google-pay | Ajoute à Google Pay |
Exemple: Obtenir les détails sensibles
// Authentification biométrique requise
const authenticated = await biometricService.authenticate(
'Afficher les détails de la carte'
);
if (authenticated) {
const response = await apiClient.get('/cards/card_123/details');
// Response
{
"cardNumber": "4111111111111111",
"cvv": "123",
"expiryMonth": "12",
"expiryYear": "2028",
"cardholderName": "JEAN DUPONT"
}
}Loyalty Endpoints Mis à jour
Programmes de fidélité, points, défis, cashback et parrainage. Base URL : /api/v1/mobile/loyalty. Mis à jour le 2026-04-09 — routes corrigées pour correspondre aux endpoints réels du serveur.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /api/v1/mobile/loyalty/catalog | Catalogue des programmes de fidélité | |
| POST | /api/v1/mobile/loyalty/enroll/{programId} | S'inscrire à un programme | |
| DELETE | /api/v1/mobile/loyalty/enroll/{programId} | Se désinscrire d'un programme | |
| GET | /api/v1/mobile/loyalty/programs | Programmes auxquels l'utilisateur est inscrit | |
| GET | /api/v1/mobile/loyalty/status | Statut tier et points de l'utilisateur | |
| GET | /api/v1/mobile/loyalty/challenges | Défis actifs | |
| GET | /api/v1/mobile/loyalty/history | Historique des transactions de fidélité | |
| GET | /api/v1/mobile/loyalty/cashback | Cashback disponible | |
| GET | /api/v1/mobile/loyalty/cards | Cartes de fidélité de l'utilisateur | |
| GET | /api/v1/mobile/loyalty/referral | Programme de parrainage |
Exemple : Utilisation via useLoyaltyStore
import { useLoyaltyStore } from '@/stores/loyaltyStore';
// Catalogue fidélité
const { fetchCatalog, catalogPrograms, enrollProgram } = useLoyaltyStore();
// Récupère le catalogue des programmes
await fetchCatalog(); // GET /api/v1/mobile/loyalty/catalog
// Inscrit l'utilisateur à un programme
await enrollProgram(programId); // POST /api/v1/mobile/loyalty/enroll/{id}
// Désinscrire l'utilisateur
await unenrollProgram(programId); // DELETE /api/v1/mobile/loyalty/enroll/{id}
// Programmes inscrits
await fetchEnrolledPrograms(); // GET /api/v1/mobile/loyalty/programs
// Statut tier & points
await fetchStatus(); // GET /api/v1/mobile/loyalty/statusIdentity/KYC Endpoints
Vérification d'identité et documents KYC.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /identity/status | Statut KYC actuel | |
| POST | /identity/documents/upload | Upload document KYC | |
| POST | /identity/selfie | Upload selfie vérification | |
| POST | /identity/verification/start | Démarre vérification | |
| GET | /identity/verification/status | Statut vérification | |
| GET | /identity/documents | Liste des documents |
Exemple: Upload document
// Utilise FormData pour l'upload multipart
const formData = new FormData();
formData.append('document', {
uri: imageUri,
type: 'image/jpeg',
name: 'identity_front.jpg',
});
formData.append('documentType', 'identity_card');
formData.append('side', 'front');
const response = await apiClient.post('/identity/documents/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
timeout: 120000, // 2 minutes pour upload
});
// Response
{
"documentId": "doc_123",
"status": "pending_verification",
"uploadedAt": "2026-02-08T14:30:00Z"
}Notification Endpoints
Push notifications et préférences de notification.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| POST | /notifications/register | Enregistre push token | |
| DELETE | /notifications/unregister | Supprime push token | |
| GET | /notifications/preferences | Préférences notifications | |
| PUT | /notifications/preferences | Met à jour préférences | |
| GET | /notifications/history | Historique notifications | |
| POST | /notifications/:id/read | Marque comme lue |
Sync Endpoints
Synchronisation offline/online des données. Voir la documentation complète.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| POST | /sync/pull | Récupère les changements serveur | |
| POST | /sync/push | Envoie les changements locaux | |
| GET | /sync/status | Statut de synchronisation |