Company
A shared fraud signal for European e-commerce.
Heatrail OÜ is an Estonian company. We build the signal that lets one shop's confirmed fraud warn the next shop before it ships. Every claim on this site is tied to a measurement, a mechanism or a document you can read.
Registered details
Heatrail OÜ
Registry code 16731349
Mõisa 4, 13522 Tallinn
Estonia
What we do
Fraud repeats across shops. The evidence stays where it happened.
The same trace hits one shop after another. Each shop discovers it alone, absorbs the loss alone, and writes it down somewhere no one else will read. The information that would have prevented the second loss existed before the second loss happened.
Heatrail moves that information and nothing else. A shop sends the traits of an order and gets back a score with the rules that produced it, inside an 800 ms budget. When the shop confirms harm on that order, those traits go hot, and the next shop to see them is warned on its own checkout.
The constraints are the product. Contact details are hashed before they leave the shop. Only confirmed harm creates heat. The network tier opens for two independently owned shops and for nothing else. The record is append-only. And the service is advisory, always, so none of it can stop a purchase.
Figure 1
How it is built
Six properties hold the whole design together.
- Advisory by construction
- Heatrail never blocks, delays or cancels a purchase. The integration is fail-open on an 800 ms budget. If no answer arrives in time, the order completes without a signal and the check is queued.
- Measured against that budget
- First production day, 1 September 2026: median round trip 386 ms, 95th percentile 610 ms, slowest 799 ms. In a staging outage drill with the service deliberately unreachable, the checkout completed in 16 ms.
- Nothing raw arrives
- E-mail and phone are hashed in the shop with a keyed HMAC, so the raw values never reach us. The second stage runs only on Heatrail servers, argon2id with 12 MiB of memory per attempt, under a key that never leaves the server. Only the second-stage value is stored.
- Confirmed harm is the only input
- A fraud label makes the traits of that order hot. Signal records are deleted after 90 days. Derived risk memory carries full weight to day 90, falls to a third by day 365, and the record is gone on day 400.
- Every answer names its rule
- A score is produced by rules, and the check returns the rules that fired. The answer is explainable end to end, and every reason arrives in a form the person deciding can read and argue with.
- An append-only record
- Consequential actions are written to a hash-chained ledger. A nightly job anchors the chain with an Ed25519 signature and verifies it. A failed verification exits with an error code and mails the operator.
Where it runs
European infrastructure, named and countable.
- eu-central-1, Frankfurt
- The service runs on Laravel Cloud on AWS in eu-central-1. Service data stays in the European Union.
- Two sub-processors
- Laravel Cloud and AWS. Database backups are retained for seven days with point-in-time restore.
- Controls mapped to OWASP ASVS Level 2
- Every security control is mapped to OWASP ASVS Level 2, and each one names the code that implements it and the test that proves it.
- Integrations a shop already has
- A WooCommerce plugin, a dependency-free PHP SDK that runs on PHP 7.3 through 8.5, and a REST API. Requests are authenticated with an HR1 HMAC signature over a canonical string.
Questions a website cannot answer.
Security reviews, procurement questionnaires, integration edge cases. Write to us and the answer comes from someone who built the thing.