The pan-European protocol for digital rental deposits –
one schema, 32 countries. meta.jurisdiction drives
deposit cap, return deadline, escrow type and interest obligation for every European market.
Across the EU, roughly 1.5 million rental deposits are created every month – the vast majority still processed manually: paper forms, in-person branch visits, postal correspondence. The market has not digitalised.
The root cause is high identity verification costs (KYC) and the complete absence of a shared data standard. Banks, tenants and property management software literally speak different languages – a broken media chain at every interface.
Every EU member state suffers the same structural fragmentation – with national variations in deposit law layered on top. For banks operating cross-border this means: a separate integration per country, no shared protocol, no economies of scale.
XMiete validated the protocol in Germany – the EU's largest rental market and most mature eID ecosystem – as the reference implementation for a pan-European open standard that becomes EU-wide banking infrastructure via the EUDI Wallet.
Paper savings books, manual branch visits, proprietary formats, weeks of processing time, no digital handover possible.
Unified JSON schema with meta.jurisdiction – a deposit created in minutes, legally valid in 32 countries via national eID or EUDI Wallet.
No branch visit. No paper form. Proof of deposit in their EUDI Wallet. Faster return when they move out. And the freedom to rent across Europe without navigating 32 different bureaucratic processes.
An open protocol as the foundation, EUDI Wallet as the identity layer, eIDAS 2.0 as the regulatory framework – three levers that together enable the breakthrough.
A jurisdiction-neutral JSON schema for digital rental deposits.
meta.jurisdiction drives all country-specific rules –
from BGB § 551 (DE) to Housing Act 2004 (UK) and Art. 257e CO (CH).
Open, versioned, machine-readable.
The EUDI Wallet (eIDAS 2.0) replaces fragmented national ID systems with a single, EU-wide recognised credential. Verify once – valid across all 32 EU countries, zero friction, zero recurring KYC costs.
More on EUDI integration
XMiete as the reference protocol for European banking associations –
underpinned by eIDAS 2.0 as the shared legal framework.
National specifics are handled via meta.jurisdiction,
not through parallel standards.
Every European country has its own deposit law – but meta.jurisdiction
makes XMiete a single standard for every market. No duplicate integration, no format mismatch.
| Country | Deposit form | Max. amount | Bank involvement | Digitalisation |
|---|---|---|---|---|
| 🇩🇪 Germany | Escrow account / pledge (BGB § 551) | 3 months' rent | Account certification + pledge confirmation | XMiete pilot market |
| 🇦🇹 Austria | Kaution (§ 16b MRG) | 3 months' rent | Escrow account at bank | Largely analogue |
| 🇨🇭 Switzerland | Mietzinsdepositum (OR Art. 257e) | 3 months' rent | Mandatory: account in tenant's name (MIETKAUTIONSKONTO) | Partially digital |
| 🇬🇧 United Kingdom | Tenancy Deposit (Housing Act 2004) | 5 weeks' rent | Mandatory govt-approved scheme (TDS, DPS, MyDeposits) | Digital + ADR |
| 🇧🇪 Belgium | Garantie locative (e-DEPO system) | 2 months' rent | Mandatory: state holds via EDEPO — no direct landlord payment | State digital |
| 🇪🇸 Spain | Fianza legal (LAU Art. 36) | 1 + up to 2 months' rent | Fianza held by regional authority (INCASOL, IVIMA …) | Regionally fragmented |
| 🇳🇴 Norway | Depositum (Husleieloven § 3-5) | 6 months' rent (statutory max) | Locked account in tenant's name — landlord has zero access | Partially digital |
| 🇫🇷 France | Dépôt de garantie (Loi Alur) | 1–2 months' rent | Landlord holds freely (no escrow requirement) | Barely digital |
| 🇮🇹 Italy | Deposito cauzionale (L. 392/1978) | 3 months' rent | Landlord holds; statutory interest obligation (~3%) | Analogue |
| 🇳🇱 Netherlands | Waarborgsom (reformed 2023) | 2 months' rent | Landlord holds; return within 14–30 days | Partially digital |
In virtually every European system a bank sits at the centre – as custodian, guarantor or account holder. What differs is the legal model: Treuhandkonto in Germany, EDEPO in Belgium, Custodial Scheme in the UK, tenant-name blocked account in Switzerland and Norway.
meta.jurisdiction
is the single load-bearing field: it determines the deposit cap, return deadline,
escrow model and interest obligation. A bank implementing XMiete uses the same API
across all 32 markets — only the jurisdiction value changes.
estimated annual deposit volume across the EU – locked in analogue processes with no shared standard.
The XMiete JSON schema defines a unified data format for the pledge confirmation. Every field is semantically standardised – from the rental property address to the bank confirmation.
interest_required set per jurisdiction
// xmiete.org/schemas/xmiete_schema.json v2.0.0
{
"meta": {
"version": "2.0.0",
"timestamp": "2026-05-01T12:00:00Z",
"jurisdiction": "GB", // drives all GB rules
"jurisdiction_sub": "GB-ENG" // England vs Scotland caps differ
},
"tenant": {
"first_name": "Emma",
"last_name": "Clarke",
"email": "emma@example.co.uk",
"tax_id_type": "NI_NUMBER", // 9 types across Europe
"eid_status": "VERIFIED"
},
"property": {
"address": {
"street": "10 Downing St",
"zip": "SW1A 2AA",
"city": "London",
"country": "GB"
}
},
"deposit": {
"amount": 2300.00,
"currency": "GBP", // 10 non-EUR currencies supported
"type": "CASH_EQUIVALENT",
"lifecycle_state": "PLEDGED"
},
"trusteeship": {
"account_type": "CUSTODIAL_SCHEME", // 11 types: DE/CH/UK/BE/ES/LU
"interest_required": false
}
}
From the German Treuhandkonto to the UK Custodial Scheme, from Belgium's e-DEPO to Spain's Fianza — account_type encodes all 11 European escrow models in a single machine-readable field. Interest obligation and insolvency protection follow from the jurisdiction field.
Segregated trust account exclusively for deposits. Landlord's creditors cannot access funds. Interest obligation under BGB § 551 Abs. 3.
TREUHANDKONTO
Blocked account in the tenant's name. The landlord has zero access — funds released only by mutual consent or court order (Art. 257e CO; Husleieloven § 3-5).
MIETKAUTIONSKONTO
Government-approved scheme (TDS, DPS, MyDeposits) — custodial holds funds directly; insured lets landlord hold with scheme guarantee. ADR included.
CUSTODIAL_SCHEME
Belgium's mandatory state-held escrow: the government administers the deposit via the e-DEPO system. Direct landlord payment is not legally permitted.
EDEPO
The statutory fianza (1 month) is deposited with the regional authority (INCASOL, IVIMA …) within 30 days. Any additional guarantee stays with the landlord.
FIANZA_REGIONAL
Luxembourg's state-backed guarantee for low-income tenants — the government guarantee replaces the cash deposit. No bank deposit required.
STATE_GUARANTEE
Insurance-based alternative to a cash deposit (SwissCaution, goCaution, getmomo). Tenant pays an annual premium — no capital tied up.
DEPOSIT_INSURANCE
In FR, NL, IT and most CEE countries the landlord holds the deposit freely. interest_required flags the statutory interest obligation per jurisdiction.
LANDLORD_HELD
Whether Treuhandkonto in Berlin, Custodial Scheme in London, or EDEPO in Brussels — the bank or scheme operator sets a single machine-readable object. interest_required and account_type are jurisdiction-dependent and derived from meta.jurisdiction.
statutory_basis embedded in the object
interest_rate_history
// jurisdiction:"DE" → TREUHANDKONTO, interest_required:true
"trusteeship": {
"account_type": "TREUHANDKONTO",
"trustee_entity": "Aareal Bank AG",
"trust_account_iban": "DE87...8700",
"interest_required": true,
"insolvency_protection_confirmed": true,
"statutory_basis": "BGB § 551 Abs. 3",
"interest_rate": 0.015,
"accrued_interest": 45.23,
"total_balance": 2445.23
}
// jurisdiction:"GB" → CUSTODIAL_SCHEME, interest_required:false
// jurisdiction:"BE" → EDEPO, interest_required:true
// jurisdiction:"CH" → MIETKAUTIONSKONTO, interest_required:false
Banks retain full control over their own trust infrastructure. XMiete encapsulates identity verification behind a narrow two-method interface — any bank can plug in their preferred eID provider without touching the SDK core.
| Provider | Type | Integration |
|---|---|---|
| Generic HTTP | Any BSI TR-03130 REST service | Built-in |
| AusweisApp2 SDK | Bundesdruckerei – local, no ext. hop | Custom adapter |
| Authada | SaaS, used by German Sparkassen | Custom adapter |
| SkIDentity | OpenID Connect front-end for eID | Custom adapter |
| Bundesdruckerei / D-Trust | Government-grade HSM signing flow | Custom adapter |
Custom adapters require just two methods — no SDK core changes. Available for Go, Rust, Java, and TypeScript.
// Custom adapter — two methods are enough
type MyProviderAdapter struct { /* config */ }
func (a *MyProviderAdapter) InitiateVerification(
ctx context.Context,
req eid.VerificationRequest,
) (*eid.VerificationSession, error) {
// call your own eID SDK or REST API
}
func (a *MyProviderAdapter) UpdateDepositKYCStatus(
ctx context.Context,
depositID string,
payload eid.KYCUpdatePayload,
bearerToken string,
) error {
// push result back to XMiete API
}
// Wire it up — no other SDK changes needed
handler := eid.NewWebhookHandler(
&MyProviderAdapter{}, bearerToken, onComplete,
)
All SDKs follow the same pattern: Go (IdentityVerifier), Rust (EidVerifier trait), Java (IdentityVerifier interface), TypeScript (IdentityVerifier interface).
From application to a signed credential in the EUDI Wallet – every step is defined by the XMiete protocol, machine-readable and executable via the Open API.
Tenant initiates the deposit application via platform or bank app. Property, amount and deposit type are transmitted.
POST /deposits
eID or EUDI Wallet confirms tenant identity at Assurance Level HIGH – no branch visit, no paper. The identity provider is freely selectable.
PATCH /deposits/{id}/identity
Bank confirms receipt of funds into the escrow account. Not required for bank guarantees or surety bonds.
is_confirmed_by_bank: true
Legally binding security interest in favour of the landlord under the applicable national law — BGB § 551 (DE), Art. 257e CO (CH), Housing Act 2004 (UK) and more. The bank confirms the encumbrance.
POST /deposits/{id}/pledge
Once PLEDGED is reached, the bank triggers credential issuance. The tenant receives a QR code – their EUDI Wallet retrieves the DepositPledgeAttestation as a cryptographically signed SD-JWT. The credential is verifiable offline, supports selective disclosure and can be revoked.
# 1. Bank triggers issuance
POST /deposits/{id}/issue-credential
→ credential_offer_url + qr_code_payload
# 2. Wallet scans QR code
GET /credential-offers/{sessionId}
→ CredentialOffer (pre-authorized_code)
# 3. Token exchange
POST /token { grant_type: "pre-authorized_code" }
→ access_token + c_nonce
# 4. Credential request
POST /credential { format: "vc+sd-jwt" }
→ DepositPledgeAttestation SD-JWT ✓
Full release, landlord claim with amount and stated reason, partial release with utility reservation, structured settlement or escalation to external dispute resolution. The credential is revoked and the lifecycle closed.
POST /deposits/{id}/release · /claim · /partial-release · /settle · /dispute
OpenAPI spec, JSON schema and reference server on GitHub. SDKs for Go, Java, Rust and Python.
EU Regulation eIDAS 2.0 (2024/1183) requires all member states to offer a certified EUDI Wallet by Dec. 2026. XMiete follows a pragmatic dual-delivery strategy: a PDF deposit receipt as the immediately available primary proof, and a DepositPledgeAttestation (QEAA via OpenID4VCI) as the cryptographic enhancement – once wallet infrastructure reaches broad adoption.
The European Digital Identity Wallet is an EU-standardised ecosystem for verified credentials. Citizens store their national ID, driving licence and further attributes digitally – and share them selectively, without third-party data exposure.
Tenants with an EUDI Wallet are already verified at the highest trust level – re-certification is eliminated entirely.
Identity proofs are transmitted as cryptographically signed VCs – immutable, instantly verifiable, GDPR-compliant.
eIDAS 2.0 defines LoA "High" as the legally binding identification level – sufficient for rental deposit pledging under BGB § 551.
Not just German eID – Austrian, French or Spanish EUDI Wallets can equally identify tenants renting anywhere in Europe.
JSON schema, OpenAPI spec, eID status fields, BGB § 551 alignment.
Schema extension for eidas_wallet_credential. OpenID4VP verification (Go, Rust, Java) and SD-JWT VC credential issuance via OpenID4VCI.
States SETTLE_PROPOSED and DISPUTED with itemized deduction categories. Agreement → CLOSED; escalation → arbitration body or court.
OIDC token validation and OpenID4VP SD-JWT verification (Go, Rust, Java). Unified developer-guide.md covering REST API and all SDK languages.
SPRIND Sandbox (PID & QEAA) active. Target: ≥ 2 banks, ≥ 2 software vendors, ≥ 1 insurer in live operation – with eIDAS 2.0 compliance auditing.
Contribute on GitHubEndorsement from Bundesverband deutscher Banken, GdW and DSGV. Germany's state wallet infrastructure goes live Jan. 2027.
Adoption as a reference protocol in Germany's "Digitale Annahmepflicht" and as an EBA/EU reference protocol under eIDAS 2.0 (~2028).
xmiete is a composable layer — not a platform that replaces what you've already built. Your property identifiers, your KYC infrastructure, and your building data stay exactly as they are.
Property Identifiers
Whether you use PDTF references (OPDA, UK), a Digitale Wohnungs-ID (DACH),
or your own internal key: property.id in
xmiete accepts any persistent identifier without remapping.
Identity & Compliance
xmiete defines the deposit data schema — not the identity path. EUDI Wallet credentials and eIDAS 2.0 identities flow through your existing verification processes. Your AML/KYC system retains full control.
Building & Operational Systems
FIWARE, RealEstateCore, and ProptechOS systems are not affected. xmiete adds the financial tenancy layer — deposit cap, return deadline, escrow type — without touching operational data. One new dimension, not a new system.
Payment & Account Infrastructure
xmiete describes the status and entitlement of a deposit — not the payment system. The actual transaction runs over your existing account and payment rails. No proprietary payment path, no platform lock-in.
Deposit caps, return deadlines, escrow types, interest obligations — every European jurisdiction handles them differently. Institutions operating pan-European today build and maintain this logic in-house, market by market, on their own liability. xmiete carries that burden as an open standard — so your compliance and product teams don't have to.
The end state of xmiete adoption isn't a better API for banks — it's 1.5 million renters per month across Europe who no longer navigate paper savings books, in-person branch queues, and weeks-long deposit return processes.
An open group of real estate experts, fintech pioneers and platform operators.
Wanted: developers for schema design, EUDI Wallet integration (OpenID4VP, SD-JWT VC), API reference implementation and validation tooling.
Wanted: German and European banks for the pilot phase – first live implementations of the standard with EUDI Wallet connectivity.
Wanted: banking associations, housing industry bodies and EU institutions for the regulatory dialogue – national and European.
Your logo here? Become a partner of the XMiete Working Group.
We are looking for active contributors. Whether you're a developer for the EUDI Wallet integration, a partner bank for the pilot, or an association for the policy dialogue – together we establish XMiete as the EU-wide market standard by 2027.
Ulf Mayer
Breslauer Straße 38
77723 Gengenbach, Germany