SIREN magiques

Comme Stripe propose des numéros de carte qui déclenchent des résultats précis (4242… succès, 4000…0002 decline), Invoxy propose des SIREN magiques qui déclenchent des scénarios précis dans le mode test.

Comment ça marche

  • Tous les SIREN dans la plage 000 000 001 à 000 000 999 sont réservés sandbox
  • Ces SIREN sont visuellement reconnaissables (préfixe trois zéros) et non attribués par l'INSEE
  • Ils déclenchent un comportement déterministe (annuaire, routage, cycle de vie, etc.)
  • En mode live, toute requête utilisant un SIREN magique est rejetée avec 400 INVALID_SIREN_RESERVED (invariant ISO 27001)

Ne jamais utiliser un SIREN magique en production. L'API renvoie une erreur explicite, mais c'est toi qui dois t'assurer que ton intégration n'envoie que de vrais SIREN en mode live.

Catalogue

Famille A — Annuaire DGFiP (lookup)

Préfixe 000 000 0XX. Simule les retours possibles du lookup annuaire DGFiP.

SIRENScénarioComportement
000 000 018annuaire.happyInscrit, PDP destinataire accepte tout
000 000 026annuaire.not_foundDestinataire non inscrit dans l'annuaire DGFiP
000 000 034annuaire.multiple_pdpPlusieurs PDP revendiquent le SIREN — erreur de routage
000 000 042annuaire.timeoutService annuaire en timeout (5 s)
000 000 059annuaire.radieSIREN syntaxiquement valide mais entreprise radiée
000 000 067annuaire.cessation_recenteCessation < 30 j, edge case facture rétroactive
000 000 075annuaire.pdp_inconnuPDP non listé dans nos partenaires — fallback PPF direct

Famille B — Routage PDP destinataire

Préfixe 000 000 1XX. Simule les retours possibles du PDP destinataire après dépôt.

SIRENScénarioComportement
000 000 109pdp.reject_syntaxeRejet pour erreur de format Factur-X
000 000 117pdp.reject_metierRejet métier (TVA invalide, montant négatif, etc.)
000 000 125pdp.timeoutPDP ne répond pas — test du circuit breaker
000 000 133pdp.auth_error401 du PDP — test rotation token
000 000 141pdp.rate_limit429 — test backoff exponentiel

Famille C — Cycle de vie facture

Préfixe 000 000 2XX. Simule les transitions de statut côté PPF.

SIRENScénarioComportement
000 000 208cycle.happyDéposée → Reçue → Approuvée → Encaissée
000 000 216cycle.suspenduDéposée → Reçue → Suspendue 24 h → Approuvée
000 000 224cycle.rejet_tardifApprouvée puis rejetée J+15 (litige)
000 000 232cycle.avoir_autoGénère une facture d'avoir 7 jours après émission
000 000 240cycle.recouvrementFacture impayée à échéance → statut litige_recouvrement

Famille D — E-reporting B2C & paiement

Préfixe 000 000 3XX.

SIRENScénarioComportement
000 000 307ereporting.okSoumission e-reporting B2C acceptée
000 000 315ereporting.invalidDonnées e-reporting rejetées (TVA incohérente)
000 000 323paiement.partielEncaissement partiel — e-reporting paiement multiple

Famille E — Erreurs côté émetteur

Préfixe 000 000 9XX. Simule des erreurs côté ton compte Invoxy (pas le destinataire).

SIRENScénarioComportement
000 000 901emetteur.radieLe compte Invoxy a un SIREN radié — émission bloquée
000 000 919emetteur.quota_depassePlafond mensuel du plan dépassé — 402 Payment Required
000 000 927emetteur.plan_suspenduCompte suspendu pour défaut de paiement Invoxy

Composer avec les métadonnées

Pour des scénarios plus fins (ex. "SIREN happy path mais force un rejet sur cette facture précise"), utilise les métadonnées de scénario dans le champ metadata :

{
  "recipient_siren": "000000018",
  "metadata": {
    "invoxy_test_scenario": "delayed_approval",
    "invoxy_test_delay_ms": 5000,
    "invoxy_test_force_reject_reason": "TVA_INVALID"
  }
}

Les métadonnées préfixées invoxy_test_* sont reconnues par le moteur de scénarios et ont priorité sur le comportement par défaut du SIREN magique.

Au-delà du SIREN

D'autres "magic values" existent pour tester finement la chaîne :

  • Montants spéciaux : 0,01€ (smoke test), 999 999€ (seuil DGFiP), 13,37€ (arrondi TVA), 666€ (anti-fraude)
  • Patterns email : *@invoxy-test-bounce.fr, *@invoxy-test-delay.fr
  • IBAN test SEPA, TVA intracom test VIES

Voir Mode test — vue d'ensemble pour le détail.

Endpoint live de la liste

Le catalogue est exposé sous forme de JSON pour les outils de génération de SDK ou les tests automatisés :

curl https://api.invoxy.fr/v1/scenarios

Aucune authentification requise — c'est de la donnée publique versionnée.