Release notes for Malaysia Self billing invoice

Version 1.3.0

Maintained by Peppol Technical Committee

Release Date

2025-12-08

Status

Final

What’s new in this release?

  • Syntax Binding Fixes

    • Added missing mandatory UBL 2.1 fields (cbc:ID, @name, SourceCurrencyCode, TargetCurrencyCode) to resolve XSD validation errors.

  • Data Model Enhancements

    • Designated segments for FTA, K2 and CertEx.

    • Added TaxTotal and ItemPriceExtension under line items to align with LHDN requirements.

  • TTx Support

    • Documentation updated with usage steps.

    • Schematron rules added for TTX (Tourism Tax).

    • AAL accepted as TaxScheme ID.

  • Code List Updates

    • Deprecated generic code T. Use SE, SA, HVG, or LVG.

  • Documentation Improvements

    • Minor sentence corrections and clarification for tax handling.

    • Section 4. Local Tax Information is updated with overview of TTx, SST, Tax Category Codes, and how to implement SST and TTx.

  • Updated XML Samples to reflect new rules and mappings.

  • A new Schematron rule on cbc:CustomizationID to restrict wildcard character.

Overview

This release includes updates to the Peppol specification covering the Data Model, BIS documentation, Compliance, Specialisation, Code Lists, and Schematron rules. The objective is to improve semantic clarity, validation precision, and implementation support.

Version Information

PINT General 1.1.2

PINT MY

1.3.0

Applies to

PINT MY Self-Billing.

Reviewed

-

Changes

Data Model

Element Change Description Rationale

cac:AdditionalDocumentReference[cbc:DocumentTypeCode = "938"]/cbc:ID

Modified

Made cbc:ID as IRBM Unique Identifier Number.

This is to make the structure inline with Semantic Model.

cac:AdditionalDocumentReference[cbc:DocumentTypeCode = "938"]/cbc:DocumentTypeCode

Modified

Explicitly included cbc:DocumentTypeCode.

Improves visibility and consistency in syntax binding.

cbc:IndustryClassificationCode/@name

Modified

Added attribute @name.

Mandatory for LHDN reporting.

cac:Shipment/cbc:ID

Modified

Added mandatory cbc:ID.

Required by UBL 2.1 XSD when using Shipment.

cac:Shipment/cac:Consignment/cbc:ID

Modified

Added mandatory cbc:ID.

Required by UBL 2.1 XSD when using Consignment.

cac:TaxExchangeRate

Modified

Added cbc:SourceCurrencyCode and cbc:TargetCurrencyCode.

Both are mandatory by UBL 2.1 XSD when using TaxExchangeRate.

cac:TaxTotal (line level)

Added

Introduced TaxTotal under line items.

Enables field mapping between PINT MY and LHDN.

cac:ItemPriceExtension (line level)

Added

Introduced ItemPriceExtension under line items.

Mandatory field for LHDN compliance.

cac:DeliveryParty/cac:PartyIdentification

Modified

Change in Cardinality: from 0..1 to 0..n.

Enables fields compatibility between PINT MY and LHDN

cac:DeliveryParty/cac:PartyIdentification/@schemeID

Added

Introduced Attribute: schemeID.

Enables field mapping between PINT MY and LHDN.

cac:AdditionalDocumentReference for FTA, K2 and CertEx

Added

Introduced New mappings.

Enables field mapping between PINT MY and LHDN.

Documentation

Document Section Change Description Reason

PINT Model for Billing

4.8

The word either is removed from the sentence. Sub section: "Document level total tax amount".

Correction.

PINT Model for Billing

4.2

How to use TTx, steps are added.

Support for TTx.

Code List

Code List Code Change Description Justification

TaxCat-cat

T

Removed

The code T is removed.

It was conveyed in previous release that we encourage to use SE, SA, HVG, and LVG. These are similar to T.

Schematron Rules

Rule ID Syntax (cac:TaxTotal/cac:TaxSubtotal/) Change Business Rule Reason

aligned-ibrp-047

cac:TaxCategory/cac:TaxScheme/cbc:ID

Added

Tax Scheme ID can be AAL as well.

Updated to support TTx.

aligned-ibrp-048

cac:TaxCategory/cac:TaxScheme/cbc:ID

Added

For TTx, cbc:Percent can be ommited.

Updated to support TTx.

aligned-ibrp-sa-08

cac:TaxCategory[cbc:ID='SA']/cbc:Percent

Added

Taxable amount for SA must equal (lines + charges – allowances) for the same rate.

Alignment with VAT breakdown rules.

aligned-ibrp-sa-09

cac:TaxCategory[cbc:ID='SA']/cbc:TaxAmount

Added

SA tax amount must equal SA taxable amount × SA rate.

Alignment with VAT breakdown rules.

aligned-ibrp-sa-10

cac:TaxCategory[cbc:ID='SA']

Added

SA breakdown must not include exemption reason or code.

To ensure correct use of standard VAT categories.

aligned-ibrp-se-08

cac:TaxCategory[cbc:ID='SE']/cbc:Percent

Added

Taxable amount for SE must equal (lines + charges – allowances) for the same rate.

New support for SE category.

aligned-ibrp-se-09

cac:TaxCategory[cbc:ID='SE']/cbc:TaxAmount

Added

SE tax amount must equal SE taxable amount × SE rate.

New support for SE category.

aligned-ibrp-se-10

cac:TaxCategory[cbc:ID='SE']

Added

SE breakdown must not include exemption reason or code.

New support for SE category.

aligned-ibrp-hvg-08

cac:TaxCategory[cbc:ID='HVG']/cbc:Percent

Added

Taxable amount for HVG must equal (lines + charges – allowances) for the same rate.

New support for HVG category.

aligned-ibrp-hvg-09

cac:TaxCategory[cbc:ID='HVG']/cbc:TaxAmount

Added

HVG tax amount must equal HVG taxable amount × HVG rate.

New support for HVG category.

aligned-ibrp-hvg-10

cac:TaxCategory[cbc:ID='HVG']

Added

HVG breakdown must not include exemption reason or code.

New support for HVG category.

aligned-ibrp-lvg-08

cac:TaxCategory[cbc:ID='LVG']/cbc:Percent

Added

Taxable amount for LVG must equal (lines + charges – allowances) for the same rate.

New support for LVG category.

aligned-ibrp-lvg-09

cac:TaxCategory[cbc:ID='LVG']/cbc:TaxAmount

Added

LVG tax amount must equal LVG taxable amount × LVG rate.

New support for LVG category.

aligned-ibrp-lvg-10

cac:TaxCategory[cbc:ID='LVG']

Added

LVG breakdown must not include exemption reason or code.

New support for LVG category.

aligned-ibrp-ttx-08

cac:TaxCategory[cbc:ID='TTX']/cbc:Percent

Added

Tourism Tax (TTX/AAL) must not include a tax percentage.

Alignment with Malaysian TTX rules.

aligned-ibrp-ttx-09

cac:TaxCategory[cbc:ID='TTX']/cbc:TaxAmount

Added

TTX amount must equal sum of line-level TTX tax amounts plus document-level charges minus allowances.

Alignment with Malaysian TTX rules.

IBR-04-MY

cac:PartyIdentification/cbc:ID[not(@schemeID)]

Modified

To use TTX and SST together, provide TIN number in Supplier Party Identification ID without the schemeID.

To Support TTX and SST together.

IBR-SR-63

cbc:CustomizationID

Added

Specification identifier must not contain the wildcard character '*'

New rule to block using wildcard character in customizationID

aligned-ibrp-047:

Previous Behavior: Only VAT was accepted as cac:TaxCategory/cac:TaxScheme/cbc:ID, so AAL (used for Tourism Tax) failed validation.

New Behavior: cac:TaxCategory/cac:TaxScheme/cbc:ID may be AAL when the tax category is TTX.

Justification: Enables Malaysia Tourism Tax (TTX) which is modeled under the AAL scheme, preventing false errors and aligning with local requirements.

aligned-ibrp-048:

Previous Behavior: cbc:Percent was implicitly expected for tax categories, which forced a rate even for TTX.

New Behavior: For TTX (scheme AAL), cbc:Percent may be omitted (and is effectively disallowed by the dedicated TTX rule); only amount-based taxation applies.

Justification: TTX is amount-only (no percentage rate). Allowing omission of cbc:Percent avoids incorrect rate-based calculations and matches the TTX model.

aligned-ibrp-sa-08:

Previous Behavior: No validation on SA taxable amount consistency.

New Behavior: SA taxable amount must equal the sum of invoice line net amounts + document-level charges – document-level allowances, for the same rate.

Justification: Ensures tax breakdowns are mathematically consistent with invoice content for SA VAT category.

aligned-ibrp-sa-09:

Previous Behavior: No validation on SA tax amount.

New Behavior: SA tax amount must equal SA taxable amount × SA rate.

Justification: Prevents tax mismatches by enforcing correct rate multiplication.

aligned-ibrp-sa-10:

Previous Behavior: Exemption reasons could be incorrectly added to SA.

New Behavior: SA breakdown must not include exemption reason or exemption code.

Justification: Avoids misuse of exemption fields for standard rated SA VAT.

aligned-ibrp-se-08:

Previous Behavior: No validation on SE taxable amount consistency.

New Behavior: SE taxable amount must equal (lines + charges – allowances) for the same rate.

Justification: Introduces same VAT consistency rules for SE category.

aligned-ibrp-se-09:

Previous Behavior: No validation on SE tax amount.

New Behavior: SE tax amount must equal SE taxable amount × SE rate.

Justification: Guarantees proper tax calculation for SE VAT.

aligned-ibrp-se-10:

Previous Behavior: Exemption reasons could be incorrectly added to SE.

New Behavior: SE breakdown must not include exemption reason or exemption code.

Justification: Ensures SE is treated strictly as a standard VAT category.

aligned-ibrp-hvg-08:

Previous Behavior: No validation on HVG taxable amount.

New Behavior: HVG taxable amount must equal (lines + charges – allowances) for the same rate.

Justification: Introduces proper tax integrity checks for HVG VAT.

aligned-ibrp-hvg-09:

Previous Behavior: No validation on HVG tax amount.

New Behavior: HVG tax amount must equal HVG taxable amount × HVG rate.

Justification: Prevents tax misreporting in HVG VAT scenarios.

aligned-ibrp-hvg-10:

Previous Behavior: Exemption reasons could be incorrectly added to HVG.

New Behavior: HVG breakdown must not include exemption reason or exemption code.

Justification: Ensures correct classification of HVG transactions.

aligned-ibrp-lvg-08:

Previous Behavior: No validation on LVG taxable amount.

New Behavior: LVG taxable amount must equal (lines + charges – allowances) for the same rate.

Justification: Introduces proper VAT calculation consistency for LVG.

aligned-ibrp-lvg-09:

Previous Behavior: No validation on LVG tax amount.

New Behavior: LVG tax amount must equal LVG taxable amount × LVG rate.

Justification: Prevents tax mismatches and improves compliance for LVG VAT.

aligned-ibrp-lvg-10:

Previous Behavior: Exemption reasons could be incorrectly added to LVG.

New Behavior: LVG breakdown must not include exemption reason or exemption code.

Justification: Ensures LVG remains a strictly standard VAT category.

aligned-ibrp-ttx-08:

Previous Behavior: TTX could incorrectly include a tax percentage.

New Behavior: Tourism Tax (TTX/AAL) must not include a percentage.

Justification: Aligns with Malaysian TTX model where only flat tax amounts apply, not rates.

aligned-ibrp-ttx-09:

Previous Behavior: No validation on how TTX amounts are derived.

New Behavior: TTX amount must equal sum of line-level TTX amounts + document-level charges – allowances.

Justification: Ensures accurate aggregation of Tourism Tax across invoice components.

IBR-04-MY:

Previous Behavior: No support for TTX.

New Behavior: TTX and SST can be sent together in the same file.

Justification: To support TTX and SST together in the same file.

IBR-SR-63:

Previous Behavior: No validation was enforced on cbc:CustomizationID to restrict wildcard character.

New Behavior: cbc:CustomizationID Specification identifier must not contain the wildcard character '*'.

Justification: In general terms the busdox looks for an exact match, whereas DDTS uses a wildcard and looks for first match through a sequence. The wildcard is only used when registering the receiving capability, not in the document.

Action Items for Implementers

  • Schematron Updates

    • Integrate new rules for SA, SE, HVG, and LVG categories ensuring taxable amounts and tax amounts are consistent with rates.

    • Enforce that TTX (AAL scheme) must not have a percentage and is amount-only.

    • Ensure exemption reasons/codes are not used for standard categories (SA, SE, HVG, LVG).

  • Code List Updates

    • Remove use of deprecated code T. Replace with specific VAT category codes (SE, SA, HVG, LVG).

  • Syntax Binding Compliance

    • Add missing mandatory UBL fields:

    • cbc:ID in AdditionalDocumentReference, Shipment, and Consignment.

    • @name attribute in IndustryClassificationCode.

    • SourceCurrencyCode and TargetCurrencyCode in TaxExchangeRate.

  • Data Model Alignment

    • Go through the data model changes and adjust your mappings.

  • Documentation & Sample Review

    • Review updated BIS and PINT MY documentation sections (esp. §4.2 on TTx usage).

    • Validate against new XML samples provided.

  • Update your messages to comply with the new Schematron rule IBR-SR-63. If your current implementation already meets this rule, no changes are needed.

Support

For support and clarification: OpenPeppol/MDEC support.

Version 1.2.1

Release date

June 2025

Changes to Malaysian specialization of PINT

Changes to validation artefacts lists

  • Validation artefacts modified to support added tax category codes.

Version 1.2.0

Release date

May 2025

Changes to Malaysian specialization of PINT

  • Added business term btmy-017 to invoice for pre payment time.

  • Added business term btmy-018 in invoice and creditnote for IRBM Unique Identifier Number as preceding invoice reference.

  • Syntax binding for IRBM Unique Identifier Number btmy-001 in credit note aligned with Invoice.

Changes to BIS document

  • Added section 4.9 with guidance on QR codes.

  • Added in section 4.8.1 instructions for handling two tax registration ID.

  • Added in section 4.8 instructions for handling party tax schemes.

  • Corrected typoes in BIS and previous release notes.

Changes to code lists

  • Added tax category codes to align with LHDNM

Changes adopted to PINT MY from v1.1.1 of the general PINT

Data model

  • Tax representative identifier made optional. This means that specializations that want to keep it mandatory need to do that as an alignment.

Changes to code lists

  • TaxCategoryCode list and TaxExemptionReason code lists removed from general pint. This makes it easier to manage them in the specialization where they can be added if requried and with the relevant content.

  • Following code list changes have been adopted in line with update to EN 16931 code listing.

    • ISO 4217 Currency codes - Removed ZWL

    • ISO 6523 ICD - Added 0239 and 0240

    • UNCL 1153 Invoiced object identifier scheme - Added AXU

    • UNCL 7143 Item type identification code - Added PPI

    • EAS Electronic Address Scheme (EAS) - Added 0154, 0158, 0240, removed 9901, name changed for 0096

Changes to rules

  • Validation rules updated to support updated code lists.

  • Rule ibr-co-015 corrected to allow tax total in account currency.

Version 1.1.0

Release date

November 2024

Changes to Malaysian specialization of PINT

  • Added business terms ibt-180 to invoice and credit note.

  • Cardinality of ibt-063 changed to 1..1

Changes adopted to PINT MY from v1.0.2 of the general PINT

  • Corrected syntax binding for IBT-185.

  • EN 16931 terminology removed from Glossary

  • Text on totals in accounting currency removed from general BIS

  • Removed shared rule [ibr-cl-27]-The Tax scheme code (ibt-167).

  • Modified rules on cardinaltiy for Payment terms and Payment means.

  • Fixed schematron implementation of rules ibr-092 and ibr-sr-62

  • Corrected notation for syntax binding of ibt-111 in invoice and credit note

  • Rules checking currency codes aligned to the code list.

  • Rules checking UOM codees aligned to the code list.

  • Update error message for aligned-ibrp-008.

  • Code lists updates

    • Payment means: Added 98 and Malaysian payment means Z03, Z04, Z05, Z06, Z07, Z08

    • Currency code: Removed SLL, Sierra Leone. Replaced earlier by SLE

    • Item type: Added GMN

    • Charge codes: Added PRV

    • EAS: Added 0218 (Latvia)

Changes adopted to PINT MY from v1.1.0 of the general PINT

Changes to BIS document

  • Added BIS section 5.1.2 mandating use of wildcard document identifier scheme.

Changes to code lists

  • Added EAS codes 177 (Odette International Limited) and 235 (UAE Tax Identification Number (TIN))

  • Added currency codes VED (Bolívar Soberano, new valuation) and ZWG ( Zimbabwe Gold)

  • Removed currency code HRK (Kuna)

  • Added ICD (ISO6523) codes 0231 to 0238

Changes to rules

  • Schematron updated to support code changes.

  • Added new compliance rules on how to use sender/receiver identifiers when enveloping a PINT message in Peppol Business Message Envelope (SBDH).

Version 1.0.0

Release date

2024-02-29

  • First version of PINT-MY Self billing