Mga Serbisyong Pang-korporasyon para sa Iyong Negosyo sa Singapore
WhatsApp
WeChat⌄
Apex Gateway WeChat QR code

I-scan upang makipag-ugnayan sa amin sa WeChat

Mobile: +65 8585 9090Email: info@acggroupsg.com
Taxes · PDF

Country-by-Country Reporting XML v2.0: Fields, Codes and Corrections

A complete reading of OECD’s June 2019 guide linked by IRAS, covering message and entity fields, jurisdiction indicators, all activity/reference codes, five correction examples, namespaces and reporting templates.

Source checked · 11 October 2026

What this 2019 technical guide covers

This is OECD’s Country-by-Country Reporting XML Schema User Guide for Tax Administrations, version 2.0, June 2019, made available through an IRAS source link. It describes automatic exchanges between competent authorities and can also support domestic filings where local rules use the schema. The BEPS Action 13 background concerns groups with consolidated annual revenue of at least EUR750 million or an approximately equivalent domestic amount. That background does not substitute for Singapore’s own filing thresholds, deadlines or current submission specifications. The guide explains identifiers, jurisdiction summaries, constituent entities, annotations and targeted corrections.

File structure and validation categories

CBC_OECD contains MessageSpec and one or more CbcBody elements. Each body relates to a reporting entity, with repeatable jurisdiction CbcReports and repeatable AdditionalInfo. “Validation” means technically required and automatically checkable; “Optional (Mandatory)” means substantively needed in defined circumstances, so a simple presence test cannot decide all cases. Ordinary “Optional” fields are recommended where useful, and some choices still require one option. Run XML validation, then apply business conditions and record relationships. ReportingEntity is required in the schema, but correction rules permit omitted/blank unaffected report elements as specified.

Message header field reference

Country codes use ISO3166-1 alpha-2, supplemented by X5 for stateless entities/income. ReceivingCountry lists constituent-entity resident jurisdictions; the sending authority determines which may actually receive a given year’s report under effective exchange relationships. Repeat it only for identical information sent to multiple jurisdictions. The header ReportingPeriod is the fiscal year’s last day, e.g. 2017-03-31 for 1 April 2016–31 March 2017. Timestamp examples include 2018-02-15T14:37:40 and 2018-02-15T14:37:40.789. English is preferred if local law permits; that law determines permitted filing language.

Header elementRequirement/limitContent
SendingEntityINOptional for exchange; mandatory domestic; 1–200Domestic reporting entity identification
TransmittingCountryValidation; 2 lettersSending authority jurisdiction; domestic country for local filing
ReceivingCountryValidation; repeatable; 2 lettersIntended receiving jurisdictions; domestic country for local filing
MessageTypeValidationCBC only
LanguageConditional; ISO639-1Language of AdditionalInfo, if provided
WarningOptional; 1–4,000Cautions governing content use
ContactOptional; 1–4,000Sender contact details
MessageRefIDValidation; 1–170Unique message reference
MessageTypeIndicValidationCBC401 new or CBC402 correction/deletion
CorrMessageRefIDUnusedDo not use for CbC message correction
ReportingPeriodValidation; dateFiscal year end YYYY-MM-DD
TimestampValidation; dateTimeCompilation time, optional 3-digit milliseconds

Message and document identifier design

MessageRefID must be unique across space and time, start with sending-country code and reporting year, then a unique part: NL2017123456789 denotes Netherlands, 2017 and identifier123456789. DocRefID similarly identifies an entire record and children; LU2019286abc123xyz denotes Luxembourg, 2019 and its unique part. Authorities may consistently choose fiscal-year start or end year, with start year preferred; use the same year for message and document references. Domestic senders create unique references under local specifications, potentially including the reporting entity ID. Every correction message has its own new message reference.

Organisation identity, TIN and legal name

OrganisationParty_Type identifies both reporting and constituent entities. ResCountryCode is required and may repeat; a permanent establishment uses the jurisdiction where it is taxable. TIN is required, 1–200 characters: provide the tax authority’s actual TIN if available, otherwise NOTIN. TIN issuedBy is conditionally mandatory. Other IN identifiers may repeat, 1–200 characters, with optional issuing-country and INType (1–200) attributes. Name is required, 1–200, and may repeat for appropriate representations; use the full legal name and legal-form designation. Append (P.E.) for a permanent establishment. Address is optional but strongly recommended for accurate matching.

AddressFix and AddressFree

Prefer the structured AddressFix for permanent residence addresses. If components cannot reliably be separated, use AddressFree with blanks, slashes or line breaks. AddressFix can be followed by a free-text full street address while city, subdivision and postal code remain in their fixed fields; preserve the fixed-before-free order shown in Appendix A. The legalAddressType attribute is optional: OECD301 residential or business, OECD302 residential, OECD303 business, OECD304 registered office, OECD305 unspecified. A schema diagram’s general explanatory note calls addresses required, but the detailed CbC field table and actual diagram cardinality make Address optional and recommended; use the specific CbC rule.

Address fieldRequirementLimit/meaning
CountryCodeValidation2-letter country code, outside both address options
AddressFreeChoice/optional1–4,000; all available components with separators
StreetOptional1–200
BuildingIdentifierOptional1–200
SuiteIdentifierOptional1–200
FloorIdentifierOptional1–200
DistrictNameOptional1–200
POBOptional1–200
PostCodeOptional1–200
CityValidation in AddressFix1–200
CountrySubentityOptional1–200

Reporting entity and fiscal-period role

ReportingEntity contains Entity identity, optional NameMNEGroup (1–200) if the common group name differs, required ReportingRole, fiscal StartDate/EndDate and DocSpec. Roles are CBC701 ultimate parent; CBC702 surrogate parent; CBC703 local filing for international exchange, intra-EU only; CBC704 local filing with incomplete information, intra-EU only. These latter codes are not universal Singapore filing permissions. The reporting entity must be associated with its reports and resent unchanged when required by correction rules.

A report for every tax jurisdiction

Repeat CbcReports for every jurisdiction containing one or more constituent entities, including the reporting entity where appropriate. Each contains DocSpec, the jurisdiction ResCountryCode, Summary and one or more ConstEntities. A report is the correctable unit: a change to any one summary field or constituent-entity item requires resubmitting that whole jurisdiction report, including unaffected siblings, but not every other jurisdiction. Monetary amounts are full units with no decimals; prefix negative values with a minus sign. Every monetary item has a required three-letter ISO4217 currCode.

Summary fields and revenues

All Summary fields listed below are validation-required. Revenues include inventory/property sales, services, royalties, interest, premiums and other amounts. Exclude payments from other constituent entities treated as dividends in the payer’s tax jurisdiction. Report related and unrelated revenues separately and total them; do not replace them with consolidated group revenue after eliminations unless that meets the defined jurisdiction reporting basis.

Summary itemWhat to aggregate
Revenues/UnrelatedIndependent-party revenues
Revenues/RelatedAssociated-enterprise revenues
Revenues/TotalUnrelated + Related
ProfitOrLossPre-income-tax profit/loss including extraordinary items
TaxPaidCash income tax paid, including withholding
TaxAccruedCurrent-year current tax expense
CapitalStated capital
EarningsYear-end accumulated earnings
NbEmployeesFull-time equivalents, integer
AssetsNet book tangible assets excluding cash/equivalents, intangibles and financial assets

Profit, cash tax and accrued tax are different

ProfitOrLoss aggregates pre-tax profit/loss including extraordinary items. TaxPaid includes cash taxes paid to residence and other jurisdictions and taxes withheld by associated or independent payers: jurisdiction A company receiving interest from B reports B’s withholding. TaxAccrued records current tax expense on current-year taxable profits/losses only, excluding deferred tax and uncertain-tax provisions. Do not assume tax paid and accrued must equal one another.

Capital, earnings and permanent establishments

Capital sums stated capital by residence jurisdiction. Normally a permanent establishment’s capital is reported by its legal entity; if the PE jurisdiction imposes a defined regulatory capital requirement, attributed capital may be further explained in AdditionalInfo. Accumulated earnings at year-end are likewise normally reported by the legal entity rather than the PE. Tangible assets, in contrast, are allocated to the PE’s location jurisdiction. These allocation differences are important when reconciling branch data.

Employees and tangible assets

NbEmployees is an integer full-time-equivalent total. Year-end, average-year or another basis may be used consistently across jurisdictions and years. Contractors engaged in ordinary operating activities may be counted; reasonable rounding/approximation is permitted if it does not materially distort relative jurisdiction distribution. Assets sums tangible net book values and excludes cash/equivalents, intangibles and financial assets. Apply the same measurement approach across entities and years.

Constituent-entity identity and roles

Repeat ConstEntities for each resident entity or taxable PE in the jurisdiction, including the reporting entity where relevant. ConstEntity uses OrganisationParty_Type. Optional Role codes identify CBC801 ultimate parent, CBC802 reporting entity, CBC803 both. IncorpCountryCode is conditionally mandatory where incorporation/organisation jurisdiction differs from residence. BizActivities requires one or more main-activity codes; OtherEntityInfo is optional free text of 1–4,000 characters for entity-specific explanations. Group-wide explanations instead belong in AdditionalInfo.

All thirteen business-activity codes

Select multiple accurate activities rather than using Other merely because an entity has a complex business. CBC513 is for activities that cannot accurately be described by other codes and requires further detail in OtherEntityInfo. Correct that explanation too when changing activity codes if it is related. Appendix C’s original paper template labels an “Other” explanation in additional information, but the specific XML rule places solely entity-related explanations in OtherEntityInfo.

CodeBusiness activity
CBC501Research and development
CBC502Holding/managing intellectual property
CBC503Purchasing/procurement
CBC504Manufacturing/production
CBC505Sales/marketing/distribution
CBC506Administration/management/support
CBC507Services to unrelated parties
CBC508Internal group finance
CBC509Regulated financial services
CBC510Insurance
CBC511Holding shares/other equity
CBC512Dormant
CBC513Other

AdditionalInfo and language tags

Each AdditionalInfo has a required DocSpec and OtherInfo free text of 1–4,000 characters. Repeat AdditionalInfo for additional space. Repeat OtherInfo within one item only for transliteration and provide the language attribute when doing so. Optional ResCountryCode tags associate one or more jurisdictions; optional SummaryRef tags associate one or more summary fields. XX is an exceptional country code for a jurisdiction absent from the ISO list when no adequate code exists; never use XX in MessageSpec. X5 separately denotes stateless entities/income and must not be confused with XX.

Summary-reference codes

The eleven tags below improve association of free-text explanations with reported indicators; they do not replace mandatory Summary fields. Multiple tags and jurisdiction tags may be used where an explanation spans them.

SummaryRefAssociated item
CBC601Unrelated revenue
CBC602Related revenue
CBC603Total revenue
CBC604Profit/loss
CBC605Tax paid
CBC606Tax accrued
CBC607Capital
CBC608Earnings
CBC609Employees
CBC610Assets
CBC611MNE group name

Currency, schema version and transliteration

Use one reporting-MNE currency throughout. If statutory financial statements are the basis, convert to the group’s stated functional currency at the year’s average exchange rate and explain that rate in AdditionalInfo. The schema version distinguishes major/minor, and potentially a third minor-revision number; the namespace carries only the major version. CBC_OECD version is 1–10 characters and must be 2.0 for this schema. Authorities may agree transliteration; without agreement, on request use Latin transliteration aligned with the source’s ISO8859 reference, and may send both domestic and Latin representations. This is a data-exchange rule, not a requirement to show bilingual search labels on a public website.

DocSpec: correction and deletion controls

DocSpec contains required DocTypeIndic and DocRefID (1–200), optional CorrDocRefID (1–200) and unused CorrMessageRefID (1–170). A corrected/deleted record gets a new unique DocRefID and points CorrDocRefID to the latest accepted predecessor, not the first-ever version. A correction fully replaces that correctable record and children. OECD0 is only for an already sent, unchanged ReportingEntity; retain its latest DocRefID and omit CorrDocRefID. Tests OECD10–13 are only for agreed testing periods or bilateral testing and must not be mixed into live data.

DocTypeIndicMeaning
OECD0Resent reporting entity only
OECD1New live data
OECD2Corrected live data
OECD3Delete live data
OECD10Resent test data
OECD11New test data
OECD12Corrected test data
OECD13Delete test data

Do not mix new data with corrections

CBC401 messages contain new OECD1 information; CBC402 contains OECD2 corrections and/or OECD3 deletions. Do not combine new and correction/deletion records, apart from an unchanged ReportingEntity resent with OECD0 as required. ReportingEntity is resent for new reports/additional information and for correction of other body items unless it itself needs correction/deletion. Unchanged CbcReports/AdditionalInfo may be omitted from a correction message. Delete the reporting entity only after or together with all related reports and AdditionalInfo. To cancel an entire erroneous message, delete every record through a correction message; do not use MessageSpec.CorrMessageRefID. Before first filing, simply fix the file; this post-filing correction chain is unnecessary.

Correction example 1: TaxPaid

France sends FR2018FranceNationalPart00001 to correct TaxPaid to USD100. Resubmit the whole jurisdiction CbcReports with Summary and all ConstEntities. Use OECD2, new DocRefID FR2018C0002, CorrDocRefID FR2018C0001. Resend unchanged ReportingEntity with OECD0 and DocRefID FR2018R0001, no CorrDocRefID. Review OtherEntityInfo and AdditionalInfo for accuracy; omit unchanged AdditionalInfo. A single changed amount does not permit sending only that amount.

Correction example 2: entity name and address

Message FR2018FranceNationalPart00002 changes constituent-entity identity in the already corrected report. Send the entire report, including unchanged Summary, with OECD2 and new FR2018C0003 referencing latest FR2018C0002. The reporting entity remains OECD0/FR2018R0001. Again review related explanation fields and omit unchanged AdditionalInfo. Referencing the initial FR2018C0001 instead of latest C0002 would break the correction chain.

Correction example 3: reporting entity only

Message FR2018FranceNationalPart00003 corrects only ReportingEntity. Send it with OECD2, new FR2018R0002 and CorrDocRefID FR2018R0001; omit unchanged CbcReports and AdditionalInfo. The illustration labels its DocSpec box “CbcReports”, but its text and R identifiers clearly concern ReportingEntity; this article follows the stated example rather than treating it as a jurisdiction-report correction.

Correction examples 4–5: additional information and new report

Example 4’s message FR2018FranceNationalPart00004 corrects AdditionalInfo using OECD2, new FR2018A0002, predecessor FR2018A0001. Omit unchanged CbcReports and resend ReportingEntity OECD0 with latest FR2018R0002. Example 5 adds a new jurisdiction report using message FR2018FranceNationalPart00005: new report OECD1/FR2018R0004, no CorrDocRefID, with the same reporting entity resent OECD0/FR2018R0002. Add new AdditionalInfo as OECD1 only if needed, otherwise omit it. The R prefix in the source’s new-report example is its chosen identifier, not a universal rule that a report must use a C prefix.

Appendices A and B: diagrams and namespace files

Appendix A diagrams confirm one-or-more CbcBody, repeatable recipient countries, reports, entity residence codes/names/addresses and activity codes, plus AddressFix/AddressFree choice and sequence. Use these cardinalities with the conditional business rules, not alone. Appendix B lists the schema dependencies below. The schema sample has qualified elements, unqualified attributes and target namespace urn:oecd:ties:cbc:v2; import ISO and common types from the matching versioned files. Source-country/language lists are technical codes and carry no assertion on territorial sovereignty.

NamespaceURIFile
cbcurn:oecd:ties:cbc:v2CbcXML_v2.0.xsd
stfurn:oecd:ties:cbcstf:v5oecdcbctypes_v5.0.xsd
isourn:oecd:ties:isocbctypes:v1isocbctypes_v1.1.xsd

Appendix C: the three reporting-template tables

The first table records group name, fiscal year and currency, then one jurisdiction row with unrelated/related/total revenue, pre-tax profit/loss, cash tax, current accrued tax, stated capital, accumulated earnings, employees and tangible assets excluding cash/equivalents. It maps to Summary. The second identifies all constituent entities per jurisdiction, incorporation jurisdiction if different, and the thirteen activity categories; it maps to ConstEntities. The third holds group name/year and necessary brief explanations to understand compulsory data; it maps to AdditionalInfo, while entity-only explanations use OtherEntityInfo in XML. The blank original template is a structure, not a worked dataset.

Official source

This article independently explains the substantive contents of the official PDF, including the relevant conditions, procedures and annexes. The linked document remains the authoritative source for its original wording, and later changes should be checked separately.

Read the official PDF ↗
Makipag-ugnayan para sa konsultasyon
Makipag-ugnayan