Tvarka Due Diligence

Real-time due diligence on Lithuanian legal entities, straight from the state registers, delivered machine-to-machine and optionally carrying a qualified electronic signature.

The service is provided as a legal service by a Lithuanian advokatas. It is not public: production keys are issued once the engagement agreement is signed. Sandbox keys are self-serve and answer synthetic data, so you can build the integration before any paperwork.

What you can ask about a company

Everything is keyed by the Lithuanian legal-entity code (juridinio asmens kodas).

DataEndpointJSON+ JAdES‑T+ JAdES‑LT+ ASiC‑E
Company profile /v1/entities/{code} €0.30 €1.79 €2.79 €4.79
Shareholders and members /v1/entities/{code}/participants €0.65 €2.14 €3.14 €5.14
Beneficial owners (UBO) purpose /v1/entities/{code}/ubo €0.15 €1.64 €2.64 €4.64
Real property held /v1/entities/{code}/real-estate €0.35 €1.84 €2.84 €4.84
Property object extract /v1/real-estate/{uniqueNumber} €0.70 €2.19 €3.19 €5.19
Property seizure acts /v1/entities/{code}/seizures €0.70 €2.19 €3.19 €5.19
Court cases /v1/entities/{code}/cases €0.10 €1.59 €2.59 €4.59
Full due-diligence report purpose /v1/entities/{code}/dd-report €1.29 €2.78 €3.78 €5.78

Prices exclude VAT. You are billed per answered call. A no-data answer and an upstream register failure are never billed – you only pay for an answer we could actually give.

Authentication

curl -H "Authorization: Bearer $TVARKA_DD_KEY" \
     https://api.tvarka.pro/v1/entities/133663153

Sandbox keys start ddk_test_, production keys ddk_live_. Sandbox never reaches a register and costs nothing.

Beneficial ownership

Beneficial-owner data is served under the legitimate-interest regime. Your standing basis is recorded in the engagement agreement, and every call must carry a purpose – one of AML_KYC, BUSINESS_RELATIONSHIP_DD, TRANSACTION_DD, LEGAL_CLAIM, OTHER – which is logged against the call.

Signed responses

Add ?sign=jades-t or ?sign=jades-lt and the same JSON comes back wrapped in a JAdES signature (ETSI TS 119 182-1, flattened JWS JSON serialization), created with the qualified electronic signature of the responsible advokatas plus a qualified timestamp. The LT level also embeds the certificate chain and revocation data, so the artifact still validates years later without a live responder. ?format=asice returns an ASiC-E container holding the normalized JSON, the raw register response and the same qualified signature.

What the signature certifies is provenance and integrity: that the named advokatas relayed this data unmodified from the named official source at the stated time, as part of a legal service. It is not a document issued by the register itself.

Verifying: the signature is computed over the SHA-256 of the JWS signing input, so verify it as a prehashed RSA PKCS#1 v1.5 signature. Treating the digest as a message hashes it a second time and reports a false failure.

If a signature cannot be produced, the request fails with 503 and is not billed. You will never receive an unsigned body at a signed-tier price.

Errors

Every non-2xx is RFC 9457 application/problem+json. The two that matter operationally are 404 …/no-data (the register answered and holds nothing – not billed) and 502 …/upstream-unavailable (the register did not answer – not billed, retry).

MCP

The same products are available to agents over the Model Context Protocol at https://api.tvarka.pro/mcp (Streamable HTTP), using the same key and the same pricing.

ToolWhat it returns
lookup_companyLook up a Lithuanian company
get_participantsShareholders and members
get_beneficial_ownersBeneficial owners (UBO)
get_real_estateReal property held by the entity
get_seizuresProperty seizure acts
get_court_casesCourt case involvement
get_due_diligence_reportFull due-diligence report

Contract

OpenAPI 3.1 (YAML) · OpenAPI 3.1 (JSON)

Get access

Write to [email protected] for a sandbox key. Production access follows the signed engagement agreement.