Appearance
Checklist recette eGouv
Checklist de validation avant mise en production d'un parcours eGouv / e-Citizen avec checkout embed et clé API plateforme.
Configuration plateforme
- [ ] Clé API scope
platformémise et stockée côté back eGouv uniquement - [ ] Origines embed configurées dans Intégration eGouv (admin super-admin)
- [ ] Chaque origine production listée avec schéma
https://exact - [ ] Environnement sandbox et production séparés (
sk_test_/sk_live_)
Création session
- [ ]
POST /checkout/sessionsavecmode: embeddedettenant_id(UUID ou slug régie) - [ ] Absence de
tenant_id→400 checkout.tenant_required(test négatif) - [ ]
service_coderéférence un service catalogue actif de la régie ciblée - [ ]
Idempotency-Key: double soumission même clé → même session - [ ] Réponse contient
client_secret,embed_checkout_url,id - [ ] Sans origines embed :
422 embed.origins_required(test négatif)
Front embed (CDN SDK)
- [ ] Script
/sdk/v1.jschargé depuis l'hôte checkout production - [ ]
EpaymentCheckout.open()avecclientSecretfourni par le back eGouv - [ ] Overlay s'affiche ; iframe charge sans erreur CSP
- [ ]
parent_origincorrespond à l'origine eGouv configurée - [ ] Layout adapté (défaut viewport ≥ 720 px →
large, sinoncompact) - [ ]
onCompletereçu après paiement test mobile money - [ ] Pas d'exposition de
sk_dans le réseau navigateur (audit DevTools)
Paiement par carte (overlay)
- [ ] Session
currency: EURouUSDavecmode: embedded - [ ] Overlay
epayment.checkout.pendingpendant redirect acquéreur - [ ] Refus carte test : session reste
open, pas de déblocage prématuré - [ ] Voir Paiement par carte
verify-completion
- [ ] Back eGouv appelle
POST /checkout/sessions/verify-completionavecsk_plateforme - [ ] Corps inclut
tenant_idsi requis par votre implémentation - [ ] Réponse
paid: trueetorder_idcorrespond au dossier eGouv - [ ]
tenant_idréponse cohérent avec la régie attendue - [ ] Token expiré →
410; token inconnu →404(tests négatifs) - [ ] Replay même token →
200idempotent, pas de double effet métier
Webhooks (régie cible + eGouv)
- [ ] Endpoints eGouv configurés dans admin → Intégration eGouv (indépendants des clés API)
- [ ] Ping
platform.webhook.pingreçu sur au moins un endpoint eGouv - [ ] Après paiement test avec clé plateforme : livraison vers app intégrateur régie et vers eGouv
- [ ] Session avec clé application : pas de livraison vers eGouv (test négatif)
- [ ] verify-completion reste le chemin UX synchrone recommandé en parallèle du webhook
Paiement agence
- [ ] Voucher affiché dans iframe embed
- [ ] Overlay fermable ; message citoyen présent
- [ ] Encaissement agent → déblocage via webhook ou verify si overlay resté ouvert
- [ ] Voir Agence en embed
Multi-régie
- [ ] Session MinJust (
tenant_id: minjust) et autre régie testées séparément - [ ]
order_idunique par dossier et par régie (pas de collision cross-tenant) - [ ] verify-completion rejette
order_idd'une autre régie si mismatch métier
Cas limites
- [ ] Matrice edge cases parcourue
- [ ] iframe bloquée → fallback hosted testé
- [ ] Webhook avant
onComplete: déblocage idempotent - [ ]
onCompleteavant webhook : déblocage idempotent
Mise en production
- [ ] Bascule
sk_live_et origines production - [ ] Monitoring erreurs verify-completion (4xx/5xx)
- [ ] Procédure rollback : désactiver embed, redirect hosted temporaire
- [ ] Contact régie pour validation webhook application si couplage bus interne