Build a DAC7 / DPI Digital Platform Operator Report (XML)
Skill: Convert platform seller/transaction data into the DAC7 DPI XML report
Region: European Union (EU-wide) Category: Tax — Digital platform reporting (DAC7, Council Directive (EU) 2021/514) Does: Takes a digital platform's reportable seller and consideration data for the calendar year and produces the DAC7 information report as the OECD DPI (Digital Platform Information) XML that the platform operator files with one EU Member State's tax authority for automatic exchange across the EU. Standard: Council Directive (EU) 2021/514 (DAC7) · OECD Model Rules DPI XML Schema & User Guide
DAC7 obliges in-scope platform operators to collect, verify and report sellers offering immovable-property rental, personal services, sale of goods, and transport rental. The EU uses the OECD DPI XML schema. Reports are due 31 January following the reportable year; the first report covered 2023. File once with your Member State of registration; it is exchanged onward. Confirm the current schema version (DPI XSD) before generating.
When this applies
- You operate a Reporting Platform Operator connecting Reportable Sellers to users for the four Relevant Activities (rental of immovable property, personal services, sale of goods, rental of any mode of transport).
- Annual filing, due by 31 January of the year after the reportable period.
- Due-diligence (TIN, VAT, financial-account identifier, primary address, place of birth for individuals) must be completed before reporting.
Input data required
| Group | Fields |
|---|---|
| MessageSpec | SendingCompanyIN, TransmittingCountry, ReceivingCountry, MessageType (DPI), Reporting Period, MessageRefId, MessageTypeIndic (DPI401 new / DPI402 corrections) |
| Platform Operator | name, address, TIN + issuing country, VAT/IN, platform business name(s) |
| Reportable Seller (entity/individual) | name, primary address, jurisdiction(s) of residence, TIN(s) + country, VATId, DOB (individual), FinancialIdentifier (account ID + name) |
| Relevant Activities | per quarter: number of activities, total Consideration paid/credited, Fees/Commissions/Taxes withheld; for property: address, land-registration number, days rented, property type |
| DocSpec | DocTypeIndic (OECD1 new / OECD2/3 corrections), DocRefId |
Document structure (DPI XML)
DPI_OECD (version)
├── MessageSpec (Ids, TransmittingCountry, ReceivingCountry=EU MS, ReportingPeriod, MessageTypeIndic)
└── DPIBody
├── PlatformOperator (ResCountryCode, TIN, VAT, Name, Address, DocSpec)
└── ReportableSeller ...
├── Identity (EntitySeller | IndividualSeller: Name, Address, TIN, VATId, FinancialIdentifier)
└── RelevantActivities
├── Consideration (per quarter Q1–Q4, currency)
├── NumberOfActivities
├── Fees / Taxes
└── PropertyListing (Address, LandRegistration, RentedDays, PropertyType) [if immovable]
Calculation rules
- Aggregate Consideration, Fees, Taxes per Relevant Activity type and per quarter (Q1–Q4) in the currency paid (use
currCode). - Count
NumberOfActivitiesper quarter. - A seller resident in / renting property in multiple Member States is reported with all relevant
ResCountryCodes; property listings repeat per listed property. - Corrections re-send only the affected records using
MessageTypeIndic= DPI402 andDocTypeIndicOECD2 (correction) / OECD3 (deletion), referencing the originalDocRefId.
Worked example (one individual seller, services, outline)
<DPI_OECD version="1.0" xmlns="urn:oecd:ties:dpi:v1">
<MessageSpec>
<TransmittingCountry>IE</TransmittingCountry>
<ReceivingCountry>IE</ReceivingCountry>
<MessageType>DPI</MessageType>
<MessageRefId>IE-2026-PLT-0001</MessageRefId>
<MessageTypeIndic>DPI401</MessageTypeIndic>
<ReportingPeriod>2025-12-31</ReportingPeriod>
</MessageSpec>
<DPIBody>
<PlatformOperator>
<ResCountryCode>IE</ResCountryCode>
<TIN issuedBy="IE">1234567T</TIN>
<Name>Example Platform Ltd</Name>
<DocSpec><DocTypeIndic>OECD1</DocTypeIndic><DocRefId>IE-2026-PLT-0001-PO</DocRefId></DocSpec>
</PlatformOperator>
<ReportableSeller>
<Identity><IndividualSeller><IndividualName><FirstName>Anna</FirstName><LastName>Müller</LastName></IndividualName>
<Address legalAddressType="OECD303"><CountryCode>DE</CountryCode></Address>
<TIN issuedBy="DE">12345678901</TIN></IndividualSeller></Identity>
<RelevantActivities>
<ServicePersonal>
<Consideration><ConsiderationQ1 currCode="EUR">2500.00</ConsiderationQ1></Consideration>
<NumberOfActivities><NumbQ1>40</NumbQ1></NumberOfActivities>
<Fees><FeesQ1 currCode="EUR">250.00</FeesQ1></Fees>
</ServicePersonal>
</RelevantActivities>
<DocSpec><DocTypeIndic>OECD1</DocTypeIndic><DocRefId>IE-2026-PLT-0001-S1</DocRefId></DocSpec>
</ReportableSeller>
</DPIBody>
</DPI_OECD>
Validation checklist
-
MessageTypeIndic(DPI401/402) and everyDocTypeIndic/DocRefIdset; corrections reference the original - Platform Operator identity, TIN and
ResCountryCodecomplete - Each seller: name, address, TIN + issuing country, VATId/
FinancialIdentifierper due diligence - Consideration / fees / taxes split per quarter and per Relevant Activity, with
currCode - Immovable-property listings carry address + land-registration + rented days
- Validates against the current DPI XSD; filed with the Member State of registration by 31 January
Last updated: 2026-06-04 — confirm the active DPI XML schema version, the Member State filing portal, and DAC7 due-diligence rules against the current European Commission / OECD and national tax-authority specifications before use.