One line on your side. Six steps on ours.
No four-screen architecture diagrams. Your provider stays your provider, the response format does not change, and removing us is exactly as cheap as adding us.
The entire integration project.
# before client = provider.Client(api_key=KEY) # after client = provider.Client( api_key=KEY, base_url="https://eu.api.lentra.io/passthrough/provider" ) # same response, plus a passport in the _lentra field
line of configuration to start
target time to a first passport
changes to the shape of your responses
Target figures for the integration path, not measured results.
Six steps between the request and the record.
Intake and policy
The request is checked against your rules before any network action. What is not allowed is not performed — and the refusal is recorded.
Route
Cache, direct API, licensed channel, plain HTTP or a browser. The choice and the reason for it go into the journal.
Observation
Execution at an external provider. The actual moment, the network, the market and the number of attempts are captured.
Schema check
A response that fails your schema is a refusal, not a success with a caveat.
Passport and signature
Six field groups, a hash of the content, a signature, and optionally a qualified timestamp.
Delivery
The object plus its passport. Only success is billable. The trail is already in the journal.
In ordinary infrastructure a refusal is noise in a log. Here it is evidence.
- Forbidden by policy
- The system provably never made an impermissible request. This is the main section of a good-faith report.
- Target refused
- We do not defeat protections. An unavailable target stays unavailable, and that is visible.
- Failed the schema
- We do not pass rubbish off as data. A partial answer does not count as a success.
- Only stale available
- We do not pass cache off as fresh. Old state can be taken, but only deliberately.
A provider that earns on failed attempts has an economic interest in their existence. That conflict is removed from the model entirely.
Closed trust does not scale.
The checking party does not need us at all — and that is the same property that makes the format a candidate for a standard. Any competitor, marketplace or regulator can embed verification of our passports without asking us. Openness here is not a gesture. It is the strategy.
You hand over the object and its passport
A file, an export, however you like. The reviewer needs no contract with us.
The reviewer installs the open verifier
A library and a CLI. Runs locally, offline. The code is open.
It checks the signature and the chain
Public keys and the issuance log live at stable addresses.
Answer: authentic or not
Mathematics instead of correspondence. Minutes instead of weeks.