← Phase 4 / M22 — Voyage d'Affaires & B2B

💼 Voyage d'Affaires & B2B

Solution complète pour les entreprises : comptes multi-utilisateurs, politique de voyage configurable, notes de frais automatisées, SSO entreprise, rapport carbone ESG et intégration avec les outils RH/comptables.

500+
Entreprises cibles
SSO
SAML 2.0 / Okta / Azure AD
ESG
Rapport carbone Scope 3
15
User Stories

📋 15 User Stories — M22

US22.1 Must En tant qu'admin RH/IT, je peux créer un compte entreprise NOMIIQ et inviter mes employés par email ou via CSV.
US22.2 Must En tant qu'admin, je peux configurer une politique de voyage : budget max/nuit hôtel, classe de vol autorisée, destinations approuvées/restreintes.
US22.3 Must En tant qu'employé, je vois un indicateur visuel dans l'app si mon voyage respecte ou dépasse la politique de l'entreprise.
US22.4 Must En tant qu'admin, je peux voir le tableau de bord des dépenses de voyages de toute mon équipe en temps réel.
US22.5 Must En tant qu'employé, je peux soumettre une note de frais directement depuis NOMIIQ avec les reçus photographiés.
US22.6 Must En tant qu'admin, je peux exporter les dépenses en CSV/PDF pour la comptabilité (format compatible avec SAP, Sage, Xero).
US22.7 Must En tant que DSI, je peux activer le SSO via SAML 2.0 (Okta, Azure AD, Google Workspace) pour l'ensemble des employés.
US22.8 Should En tant qu'admin, je reçois une alerte si un employé voyage vers une zone à risque élevé (intégration Radar Sécurité NOMIIQ).
US22.9 Should En tant qu'admin, je peux voir le rapport carbone mensuel de tous les voyages d'affaires de l'entreprise (CO₂ par trajet, scope 3).
US22.10 Should En tant qu'employé, mon copilote IA est configuré avec les préférences de l'entreprise (hôtels partenaires, compagnies préférées).
US22.11 Should En tant qu'admin, je peux définir un workflow d'approbation : voyages au-dessus de X€ nécessitent une validation manager.
US22.12 Should En tant que DSI, je dispose d'un contrat SLA dédié avec SLO 99.9%, support prioritaire < 4h et DPA signé.
US22.13 Could En tant qu'admin, je peux intégrer NOMIIQ directement avec SAP Concur ou Expensify via API pour sync automatique des notes de frais.
US22.14 Could En tant qu'admin, je peux générer un rapport de politique de voyage (conformité % par département/employé) pour les audits internes.
US22.15 Could En tant qu'employé, je peux réserver un vol ou hôtel directement depuis NOMIIQ (NDC airlines + Booking Business) avec facturation entreprise directe.

🔗 Endpoints B2B

MéthodeEndpointAuthDescription
POST /api/b2b/organizations super-admin Créer une organisation entreprise
POST /api/b2b/organizations/:id/invite org-admin Inviter employés (email ou CSV)
GET /api/b2b/organizations/:id/dashboard org-admin Dashboard dépenses temps réel
GET /api/b2b/organizations/:id/policy org-admin Lire la politique de voyage
PUT /api/b2b/organizations/:id/policy org-admin Modifier politique de voyage
POST /api/b2b/expenses employee Soumettre une note de frais
GET /api/b2b/expenses org-admin Liste notes de frais (filtres)
GET /api/b2b/exports/expenses org-admin Export CSV/PDF comptabilité
GET /api/b2b/reports/carbon org-admin Rapport carbone scope 3
POST /api/b2b/sso/saml system Callback SAML 2.0 SSO
GET /api/b2b/approvals/pending manager Voyages en attente approbation
POST /api/b2b/approvals/:id/approve manager Approuver ou rejeter un voyage

🗄️ Schémas SQL — Module B2B

🏢 Table organizations

id UUID PRIMARY KEY
name TEXT NOT NULL
domain TEXT UNIQUE -- ex: acme.com
plan ENUM(sme,enterprise,custom)
sso_enabled BOOLEAN DEFAULT false
sso_metadata_url TEXT
stripe_customer_id TEXT
logo_url TEXT
seats_count INT DEFAULT 0
seats_max INT DEFAULT 10
created_at TIMESTAMPTZ

📋 Table travel_policies

id UUID PRIMARY KEY
org_id UUID → organizations
max_hotel_per_night_usd DECIMAL
allowed_flight_classes TEXT[] -- ['economy','business']
restricted_countries CHAR(2)[]
approval_threshold_usd DECIMAL
preferred_hotel_chains TEXT[]
preferred_airlines TEXT[]
carbon_budget_kg_per_year DECIMAL
updated_at TIMESTAMPTZ

🧾 Table expense_reports

id UUID PRIMARY KEY
org_id UUID → organizations
employee_id UUID → users
status ENUM(draft,submitted,approved,rejected,reimbursed)
total_amount_usd DECIMAL
currency CHAR(3)
items JSONB[] -- [{category,amount,receipt_url,date}]
approver_id UUID → users
approved_at TIMESTAMPTZ
co2_kg DECIMAL -- Scope 3 calculé

📊 Table carbon_reports

id UUID PRIMARY KEY
org_id UUID → organizations
period_start DATE
period_end DATE
total_co2_kg DECIMAL
breakdown JSONB -- {flights, trains, hotels, ...}
employees_count INT
trips_count INT
vs_previous_period_pct DECIMAL
generated_at TIMESTAMPTZ

💰 Plans Entreprise

PME
49€/mois
jusqu'à 25 employés
Dashboard dépenses
Politique de voyage
Export CSV/PDF
Support email 48h
SSO Google Workspace
ETI
199€/mois
26 à 200 employés
Tout PME inclus
SSO SAML 2.0 complet
Rapport carbone ESG
Workflow approbation
Support prioritaire 24h
Intégration comptable API
Grand Compte
Sur devis
200+ employés
Tout ETI inclus
SLA 99.9% contractuel
Intégration SAP Concur
DPA + NDA inclus
Customer Success dédié
White-label partiel
Formation onboarding équipe