Received in
From
- Extracted code
- Links
Attachments(listed, never kept)
Hosted in France · GDPR · DPA downloadable online
Your tests are waiting on an email or an SMS to carry on. Facteur receives them, your suite reads them over the API: no sleep(), no shared mailbox, no quota running out halfway through a campaign.
No card required. 500 emails a month, free forever.
A test address, right now
It receives real mail for one hour, ten messages at most. No account, no card, nothing to install.
Getting an address means you accept the terms of use and the limits they set.
Preparing your address…
Your browser is solving a small puzzle, about half a second. That is what stands in for a captcha: nothing to tick, and no third party in the loop.
Send an email to this address
From your mail client or your application. Any name before the @ lands in the same place: signup@, otp+42@, whatever you like.
Waiting for a message
Nothing to reload: the message appears here as soon as it lands.
Ten messages received: this address no longer accepts mail.
And for real work?
The free plan gives you one inbox with unlimited addresses, 500 emails a month, and the full API and SDKs. No card.
Create a free accountThis address is not confidential: anyone who knows it reads what arrives. Never have a password reset link or a real account code sent here.
This address has expired
It lived for one hour, and everything it held is destroyed. No copy is left.
Received in
From
Attachments(listed, never kept)
Built by the team that was testing electronic signature journeys, and paying the bill for it.
What our customers test
The whole signing journey: sending the document to the signer, a reminder on day two, a one-time code to authenticate, a signature receipt to both parties.
6,400 messages a day
The same journey runs in staging and, every five minutes, as a smoke test against production. If the code takes a minute to arrive, the signature fails for a real customer.
How it works
An inbox exists before you use it. Your tests write to any address that belongs to it, then ask the API for the message.
Every inbox owns its subdomain. Any address ending in it is accepted from the first message on: nothing to create before the test, nothing to clean up after it.
Sign-up, forgotten password, one-time code: nothing is mocked. Your application really sends the message, and Facteur receives it over SMTP.
A single call blocks until it lands, then returns the body, the headers, the links and the code already extracted. There is nothing left to parse.
{
"id": "msg_2f8a41c7",
"receivedAt": "2026-08-11T09:14:02.317Z",
"from": "no-reply@your-app.com",
"to": "signup+42@j3k9x2mq.inbox.facteur.eu",
"subject": "Confirm your address",
"otp": "265279",
"links": [
{ "text": "Confirm my address", "href": "https://your-app.com/v/8Kd2" }
],
"text": "Hi, your confirmation code is 265279 ...",
"html": "<!doctype html><html lang=\"en\"> ..."
}The screen
The API serves your tests; the interface serves the moment they fail. It is the same inbox opened in a browser, with what the engine extracted shown beside the message it came from.

The engine takes the number that follows a cue word (« code », « verification », « one-time ») and drops the rest. Nothing to configure for an ordinary message.
Every extracted value is marked in the body of the message. When an extraction gets it wrong, you can see at once what it landed on.
The time between SMTP acceptance and availability, per message and as a median for the inbox. It is the product’s promise, so it is measured on screen rather than claimed on this page.
Why we exist
We validate electronic signature journeys: sending the document, chasing the signer, the one-time code, the signature receipt. In development first, then replayed continuously as a smoke test against production. Thousands of messages a day, and a latency requirement. These four sentences are the ones we read in our own tool, and each has an answer in the product.
« Daily email limit exceeded. Your quota will reset in around 10 hours. »
One runaway test suite on a Tuesday morning, and the whole team is stopped until the evening. The only way out on offer: raise your subscription.
Buy a capacity pack in two clicks and it is available immediately. Your subscription does not move.
« Upgrade to the Enterprise plan to set custom usage limits per inbox. »
Without isolation, a single misbehaving inbox drains the quota of every other one. The feature exists; it is simply reserved for large contracts.
Per-inbox quotas are included from the first paid plan, at €12 a month. Daily or monthly limits, and you decide whether hitting one blocks or merely alerts.
« Your subscription goes from $166.78 to $247.38 a month. »
Doubling your capacity for a week means committing to the higher tier for the whole month, then waiting for the next cycle to come back down.
Capacity is decoupled from the subscription. Credits last twelve months, they stack, and changing plan never costs you a single one.
« Usage aggregated by date. »
You find out about the overage when CI breaks, and the dashboard will not tell you which inbox caused it.
Alerts at 50, 75, 90 and 100 % by email or in your team’s Slack channel. Usage broken down per inbox: the dashboard answers “who used up my quota”, not just “how much did I use”.
What changes
Prepaid packs you burn at your own pace, pay-as-you-go if you would rather not plan ahead, and a spending cap so you never discover a bill.
See the pricingKeep CI apart from staging, team A apart from team B. Each inbox has its own limit, its own behaviour when exceeded, and its own alerts.
Quotas and alertsA quota filling up is something you can see coming: at 50, 75, 90 and 100 %, an alert goes out by email or into your Slack channel. It carries the figure, the inbox it concerns and a link, never a copy of your messages.
IntegrationsOVHcloud infrastructure in Roubaix and Gravelines. Sub-processors listed publicly, a DPA you download without talking to sales, encryption at rest and retention you choose.
Our commitmentWhat it comes down to
A team receiving 150,000 emails and 750 SMS a month on a dedicated number, with five seats.
187 €/month
66 €/month
Estimated from competitors’ public list prices and from a renewal amount actually observed. The sources, and a simulator for your own volume, are on the pricing page.
Migration
Our API will open a compatibility layer: one base URL and one key to change, with no rewrite. It is not live yet, and the guide says exactly what is.
const mailosaur = new MailosaurClient(
process.env.MAILOSAUR_API_KEY
);const mailosaur = new MailosaurClient(
process.env.FACTEUR_API_KEY,
{ baseUrl: 'https://api.facteur.eu/compat' }
);In the box
Any address at @xxx.inbox.facteur.eu works, with nothing to create first.
The API blocks until the message lands. Your tests no longer contain a single sleep().
OTP codes, links and buttons pulled out of the body, ready to assert on.
HTML, text, complete headers, encoding. What arrived on port 25 is what you read.
Name, size and SHA-256 checksum of every file, kept apart from signature images.
Dedicated numbers, SMS reception, code extraction. The same model as email.
Generate the six-digit codes of your 2FA journeys without reaching for a phone.
Replay your critical production journeys from Datadog Synthetics, verification code included.
SAML 2.0 and OIDC, one provider per organisation, with no Enterprise plan in the way.
Account or inbox, read-only or read-write, with expiry and IP restriction.
From 1 to 60 days per inbox, or performance mode which stores nothing at all.
An HTTP API that asks for no dependency, and the published state of every framework plugin: what is coming, and what is not.
Questions
No. Every inbox owns its subdomain, and any address ending in it is accepted from the first message on. So you can derive one address per test (signup+42, signup+43) without calling the API to create them, and without deleting them afterwards.
Nothing breaks, and you are told before it happens: alerts go out at 50, 75, 90 and 100 % of your capacity. Beyond that your credits are drawn down, then pay-as-you-go takes over within the spending cap you set. You can also decide, inbox by inbox, to block rather than bill.
No, it has no end date and asks for no card. It is sized to run a small test suite continuously, not to let you evaluate the product for two weeks before you have to pay.
Our API will expose a compatibility layer: one base URL and one key to change, with no rewrite. It is not live yet. The migration guide says endpoint by endpoint what already is and what is still to come, rather than letting you find out mid-migration.
Yes, on the same model as email: a dedicated number, SMS reception, the code pulled out of the text. UK, US and Canadian numbers are provisioned immediately from the app; France and the euro area are being opened.
On OVHcloud infrastructure in Roubaix and Gravelines, encrypted at rest. Retention is set inbox by inbox, from 1 to 60 days, and performance mode stores nothing at all. The DPA and the list of sub-processors download without going through a salesperson.
The free plan asks for no card. If you are switching tools, the steps fit on one page and can be tried on a single test.