Aller au contenu
Facteur
ENCommencer

Hébergé en France · RGPD · DPA téléchargeable en ligne

Testez vos emails et vos SMS sans jamais retoucher votre abonnement

Vos tests attendent un email ou un SMS pour continuer. Facteur les reçoit, votre suite les lit par API : sans sleep(), sans boîte partagée, sans quota qui tombe au milieu d’une campagne.

Sans carte bancaire. 500 emails par mois offerts, pour toujours.

Construit par l’équipe qui testait des parcours de signature électronique — et qui payait la facture.

Économie type
−65 %
Quotas par inbox
dès 8 €
Données
France
signup.spec.tsTypeScript
// Rien à provisionner : toute adresse de l'inbox arrive.
const inbox = await facteur.inboxes.get('j3k9x2mq');
const address = inbox.address('signup+42');

await page.getByLabel('Email').fill(address);
await page.getByRole('button', { name: 'Créer' }).click();

// Bloque jusqu'à l'arrivée. Pas de sleep, pas de retry.
const message = await facteur.messages.await({
  inbox: inbox.id,
  sentTo: address,
  timeout: 30_000,
});

// Code OTP et liens déjà extraits du message.
expect(message.otp).toBe('265279');
await page.goto(message.links[0].href);

Ce que nos clients testent

Signature électronique

e2e-signature

Parcours de signature complet : envoi du document au signataire, relance à J+2, code à usage unique pour authentifier, notification de preuve de signature aux deux parties.

6 400 messages par jour

Le même parcours tourne en recette et, toutes les cinq minutes, comme smoke test sur la production. Si le code met une minute à arriver, la signature échoue chez un vrai client.

Comment ça marche

Trois étapes, et aucune infrastructure à provisionner

Une inbox existe avant que vous l’utilisiez. Vos tests écrivent à n’importe quelle adresse qui lui appartient, puis demandent le message à l’API.

  1. L’adresse existe déjà

    Chaque inbox possède son sous-domaine. Toute adresse qui s’y termine est acceptée dès le premier message : rien à créer avant le test, rien à nettoyer après.

  2. Votre test s’en sert comme d’une vraie

    Inscription, mot de passe oublié, code à usage unique : rien n’est simulé. Votre application envoie vraiment le message, Facteur le reçoit en SMTP.

  3. L’API attend, puis rend le message découpé

    Un seul appel bloque jusqu’à l’arrivée, puis renvoie le corps, les en-têtes, les liens et le code déjà extraits. Il n’y a rien à parser.

réponse de messages.awaitJSON
{
  "id": "msg_2f8a41c7",
  "receivedAt": "2026-08-11T09:14:02.317Z",
  "from": "no-reply@votre-app.fr",
  "to": "signup+42@j3k9x2mq.inbox.facteur.eu",
  "subject": "Confirmez votre adresse",
  "otp": "265279",
  "links": [
    { "text": "Confirmer mon adresse", "href": "https://votre-app.fr/v/8Kd2" }
  ],
  "text": "Bonjour, votre code de confirmation est 265279 ...",
  "html": "<!doctype html><html lang=\"fr\"> ..."
}

L’écran

Le même message, lu à la main

L’API sert vos tests, l’interface sert le moment où ils échouent. C’est la même inbox, ouverte dans un navigateur : ce que le moteur a extrait est affiché à côté du message dont il l’a tiré.

La boîte de réception de Facteur. À gauche, trois messages reçus avec leur destinataire, leur heure et le code trouvé dans chacun. Au centre, un message intitulé « Votre code de connexion » : son expéditeur, son adresse de réception, sa taille, un délai de réception de 7 ms, et son corps où le code 481902 est surligné. En dessous, le bloc « Extrait automatiquement » liste otp 481902, codes 481902 et links https://app.exemple.fr/securite. À droite, la fiche de l’inbox : 3 messages reçus, réception médiane 9 ms, rétention 30 jours, et son domaine de réception.
Capture de l’application, prise sur la pile de développement — même code, mêmes données qu’en production.

Le code, trouvé sans motif à écrire

Le moteur repère le nombre qui suit un mot d’amorce — « code », « vérification », « usage unique » — et laisse tomber les autres. Rien à configurer pour un message ordinaire.

Surligné là où il a été pris

Chaque valeur extraite est marquée dans le corps du message. Quand une extraction se trompe, on voit immédiatement sur quoi elle est tombée.

Le délai de réception, affiché

Le temps entre l’acceptation SMTP et la mise à disposition, par message et en médiane sur l’inbox. C’est la promesse du produit, alors elle est mesurée à l’écran plutôt que sur cette page.

Pourquoi nous existons

Nous avons construit Facteur parce que nous étions le client mécontent

Nous validons des parcours de signature électronique — envoi du document, relance du signataire, code à usage unique, preuve de signature. En conditions de développement d’abord, puis rejoués en continu comme smoke test sur la production. Des milliers de messages par jour, et une exigence de latence. Ces quatre phrases sont celles que nous avons lues dans notre propre outil, et chacune a une réponse dans le produit.

« Quota journalier dépassé. Votre quota sera réinitialisé dans environ 10 heures. »

Une suite de tests emballée un mardi matin, et toute l’équipe est à l’arrêt jusqu’au soir. La seule issue proposée : augmenter l’abonnement.

Achetez un pack de capacité en deux clics, il est disponible immédiatement. Votre abonnement ne change pas.

« Passez au plan Enterprise pour définir des limites d’usage par inbox. »

Sans cloisonnement, une seule inbox qui déraille consomme le quota de toutes les autres. La fonctionnalité existe, elle est simplement réservée aux gros contrats.

Les quotas par inbox sont inclus dès le premier plan payant, à 8 € par mois. Limite journalière ou mensuelle, et vous choisissez si le dépassement bloque ou alerte seulement.

« Votre abonnement passe de 166,78 $ à 247,38 $ par mois. »

Doubler sa capacité une semaine, c’est s’engager sur le palier supérieur pour tout le mois — et attendre le cycle suivant pour redescendre.

La capacité est décorrélée de l’abonnement. Les crédits sont valables douze mois, cumulables, et ne sont jamais perdus si vous changez de plan.

« Consommation agrégée par date. »

On découvre le dépassement quand la CI casse, et le tableau de bord ne dit pas quelle inbox l’a causé.

Alertes à 50, 75, 90 et 100 % par email, webhook, Slack ou Teams. Consommation détaillée par inbox. Et vos métriques poussées dans Datadog, Prometheus ou n’importe quel collecteur OTLP.

Ce qui change

Quatre partis pris

La capacité s’achète, elle ne se négocie pas

Des packs prépayés que vous consommez à votre rythme, du pay-as-you-go si vous préférez ne rien anticiper, et un plafond de dépense pour ne jamais découvrir une facture surprise.

Voir la grille

Des quotas par inbox, sur tous les plans

Cloisonnez la CI de la recette, l’équipe A de l’équipe B. Chaque inbox a sa limite, son comportement au dépassement et ses propres alertes.

Quotas et alertes

Branché sur votre observabilité et votre alerting

Un endpoint Prometheus par organisation, un export OTLP, des métriques et events dans Datadog. Et quand ça compte vraiment, l’alerte part dans OpsGenie ou PagerDuty et réveille la bonne personne, pas une boîte aux lettres partagée.

Intégrations

Hébergé en France, facturé en euros

Infrastructure OVHcloud à Roubaix et Gravelines. Sous-traitants listés publiquement, DPA téléchargeable sans passer par un commercial, chiffrement au repos et rétention que vous choisissez.

Notre engagement

Le nerf de la guerre

Le même usage, 65 % de moins

Une équipe qui reçoit 150 000 emails et 750 SMS par mois sur un numéro dédié, avec cinq sièges.

Tarif public équivalent ailleurs

187 €/mois

  • Palier d’abonnement à renégocier à chaque pic
  • Module SMS en supplément
  • Quotas par inbox réservés au plan Enterprise
  • Downgrade possible au cycle suivant seulement
−65 %

Avec Facteur

66 €/mois

  • Abonnement Team 39 €— fonctionnalités, sièges et rétention
  • Packs de capacité 0 €— valables 12 mois, cumulables
  • SMS et numéro dédié 27 €— à l’unité, sans module à activer
  • Quotas par inbox, alertes et observabilité inclus

Estimation établie sur les tarifs publics des concurrents et sur un montant de renouvellement réellement observé. Le détail des sources et un simulateur pour votre propre volume sont sur la page des tarifs.

Migration

Vos tests existants continuent de fonctionner

Notre API ouvrira une couche de compatibilité : une URL de base et une clé à changer, sans réécriture. Elle n’est pas encore en ligne, et le guide dit exactement ce qui l’est.

AvantTypeScript
const mailosaur = new MailosaurClient(
  process.env.MAILOSAUR_API_KEY
);
AprèsTypeScript
const mailosaur = new MailosaurClient(
  process.env.FACTEUR_API_KEY,
  { baseUrl: 'https://api.facteur.eu/compat' }
);
Lire le guide de migration complet

Dans la boîte

Tout ce dont une suite de tests a besoin

Inboxes SMTP illimitées

Toute adresse en @xxx.inbox.facteur.eu fonctionne, sans la créer au préalable.

Attente sans polling

L’API bloque jusqu’à l’arrivée du message. Vos tests ne contiennent plus un seul sleep().

Extraction automatique

Codes OTP, liens et boutons sortis du corps du message, prêts à être assertés.

MIME complet

HTML, texte, en-têtes complets, encodage. Ce qui est arrivé sur le port 25 est ce que vous lisez.

Pièces jointes vérifiables

Nom, taille et empreinte SHA-256 de chaque fichier, séparées des images de signature.

SMS et OTP

Numéros dédiés, réception des SMS, extraction du code. Le même modèle que pour l’email.

Authenticator TOTP

Générez les codes à six chiffres de vos parcours 2FA sans sortir votre téléphone.

Surveillance continue

Rejouez vos parcours critiques en production depuis Datadog Synthetics, code de vérification compris.

SSO SAML dès 39 €

SAML 2.0 et OIDC, un fournisseur par organisation, sans passer par un plan Enterprise.

Clés API scopées

Compte ou inbox, lecture seule ou écriture, avec expiration et restriction d’IP.

Rétention au choix

De 1 à 60 jours par inbox, ou mode performance qui ne stocke rien du tout.

SDK et recettes

Node, Python, Java, Go et .NET, avec des exemples Playwright, Cypress et Robot Framework.

Questions

Ce qu’on nous demande avant de créer un compte

Faut-il créer les adresses à l’avance ?

Non. Chaque inbox possède son sous-domaine, et toute adresse qui s’y termine est acceptée dès le premier message. Vous pouvez donc dériver une adresse par test — signup+42, signup+43 — sans appeler l’API pour les créer, et sans les supprimer ensuite.

Que se passe-t-il quand je dépasse mon quota ?

Rien ne casse, et vous êtes prévenu avant : les alertes partent à 50, 75, 90 et 100 % de votre capacité. Au-delà, vos crédits sont consommés, puis le pay-as-you-go prend le relais dans la limite du plafond de dépense que vous avez fixé. Vous pouvez aussi choisir, inbox par inbox, de bloquer plutôt que de facturer.

Le plan gratuit est-il limité dans le temps ?

Non, il n’a pas de date de fin et ne demande pas de carte bancaire. Il est dimensionné pour faire tourner une petite suite de tests en continu, pas pour évaluer le produit pendant deux semaines avant de devoir payer.

Dois-je réécrire mes tests pour venir de Mailosaur ?

Notre API ouvrira une couche de compatibilité : une URL de base et une clé à changer, sans réécriture. Elle n’est pas encore en ligne. Le guide de migration dit endpoint par endpoint ce qui l’est déjà et ce qui reste à venir, plutôt que de vous laisser le découvrir en migrant.

Puis-je tester les SMS et les codes à usage unique ?

Oui, avec le même modèle que l’email : un numéro dédié, la réception du SMS, le code extrait du texte. Les numéros britanniques, américains et canadiens sont provisionnés immédiatement depuis l’application ; la France et la zone euro sont en cours d’ouverture.

Où sont mes données, et pendant combien de temps ?

Sur une infrastructure OVHcloud à Roubaix et Gravelines, chiffrées au repos. La rétention se règle inbox par inbox, de 1 à 60 jours, et le mode performance ne stocke rien du tout. Le DPA et la liste des sous-traitants se téléchargent sans passer par un commercial.

Votre première inbox dans deux minutes

Le plan gratuit ne demande pas de carte bancaire. Si vous migrez depuis Mailosaur, la couche de compatibilité vous évite de réécrire vos tests.