Pengesah medan e-invois untuk PKS Malaysia

Semak setiap medan XML e-invois terhadap 49 peraturan jadual LHDN. Setiap baris menamakan peraturan, laluan UBLnya dan apa yang ditunjukkan oleh fail. Bukan penghakiman.

🔒 100% dalam pelayar · tiada muat naik ke pelayan

Peraturan Malaysia & kes luar biasa

Setiap peraturan yang disemak oleh alat ini berasal dari satu tempat: jadual Data Structure laman SDK LHDN untuk Invoice v1.0, yang dibaca pada 2026-11-08 — lajur Mandatory (Wajib), lajur Number of Chars dan lajur Cardinality bagi setiap unsur. Alat ini tidak mencipta peraturan dan tidak menambah peraturan sendiri. Di mana jadual menyatakan “Mandatory” atau “Mandatory where applicable”, kata-katanya diikuti di sini: medan yang wajib tiada dan baris itu menyatakannya; medan bersyarat yang pencetusnya tidak kelihatan dalam fail dilaporkan sebagai tidak dinilai, bukan sebagai lulus.

Apa yang disemakBagaimana jadual menyatakannya
Kod Jenis e-Invois, nombor invois, tarikh dan masa keluaran, mata wang invoisSetiap satu 1-1 dan wajib; kod jenis ialah 2 aksara dan mesti salah satu jenis e-invois yang diterbitkan (01, 02, …).
Nama pembekal (300 aksara), TIN pembekal (14), kod MSIC (5), alamat, telefonSetiap satu wajib, dengan had panjang jadual; nombor telefon ialah 20 aksara maksimum.
Subjumlah cukai: Jumlah Cukai, Jumlah Kena Cukai, ID Kategori CukaiJumlah Cukai dan ID Kategori Cukai wajib dalam setiap subjumlah; Jumlah Kena Cukai ialah bersyarat pada pengecualian cukai (jenis E).
Setiap baris: penerangan (300 aksara), pengelasan, harga unit, jumlah cukai, subjumlah, kuantitiSemua wajib bagi setiap baris kecuali kuantiti; penerangan melebihi 300 aksara menunjukkan had dan panjang sebenar.
Pembeli: nama, TIN, nombor pendaftaran, alamat, telefonSetiap satu wajib, dengan had panjang jadual (TIN pembeli 14, baris alamat 150).
Nombor pendaftaran SST pembekal, Kadar Pertukaran Mata Wang, butiran pengecualianBersyarat pada pencetus yang dinamakan oleh jadual: subjumlah jenis 02, mata wang bukan MYR, subjumlah pengecualian. Tiada pencetus kelihatan, tiada penilaian.
  • Bukan penghakiman. Penemuan menyatakan “jadual menandainya Wajib dan ia tiada dalam fail ini”. Ia tidak pernah menyebut “LHDN akan menolak ini” dan tidak mengira hasil penerimaan.
  • Apa yang tidak disemak oleh alat ini disenaraikan di halaman dan dikekalkan selepas setiap jalankan: kesahan tandatangan, aritmetik antara jumlah-jumlah, sama ada tarikh keluaran ialah hari ini dalam UTC, kod MSIC/pengelasan terhadap senarai kod LHDN penuh (hanya dua senarai kod yang dibawa di sini disemak), dan status kediaman cukai pembeli.
  • Wang, tarikh dan angka tidak pernah dihurai atau dikira semula. Pengesah hanya membaca kehadiran, panjang dan nilai kod, jadi tiada jumlah dalam fail yang dijumlah, dibandingkan atau dibundarkan di sini.
  • Unsur dipadankan mengikut nama setempat. Dokumen yang menggunakan Cbc:, cbc: atau awalan lain bagi namespace yang sama dibaca dengan cara yang sama.
  • Pengenal pihak dibezakan dengan schemeID. Jadual menyenaraikan tiga peraturan yang semuanya menunjuk kepada PartyIdentification/ID; TIN, BRN dan SST yang bertulis masing-masing membawa schemeID sendiri, dan setiap peraturan membaca hanya miliknya.
  • Setiap peraturan dibaca daripada jadual itu sendiri, dan bacaan itu direkod di halaman ini dengan tarikhnya, seperti jadual kadar. Apabila jadual berubah, peraturan dibaca semula; tiada apa di halaman ini yang menegaskan hasil pematuhan tentang mana-mana fail.

Tiada apa yang anda tampal keluar dari pelayar anda: halaman ini ialah JavaScript statik tanpa sebarang panggilan rangkaian.

Sebelum dan selepas

Sebelum

<?xml version="1.0" encoding="UTF-8"?>
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2.1"
  xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
  xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:ID>INV20261108002</cbc:ID>
  <cbc:IssueDate>2026-11-08</cbc:IssueDate>
  <cbc:IssueDate>2026-11-08</cbc:IssueDate>
  <cbc:IssueTime>09:15:00</cbc:IssueTime>
  <cbc:InvoiceTypeCode listVersionID="1.0">01</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>MYR</cbc:DocumentCurrencyCode>
  <cbc:TaxCurrencyCode>MYR</cbc:TaxCurrencyCode>
  <cac:Signature>
    <cbc:ID>sig-001</cbc:ID>
  </cac:Signature>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cac:PartyIdentification>
        <cbc:ID schemeID="BRN">202501123456</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyIdentification>
        <cbc:ID schemeID="SST">B16-1234567890</cbc:ID>
      </cac:PartyIdentification>
      <cbc:IndustryClassificationCode name="Computer programming activities" schemeID="MSIC">62012</cbc:IndustryClassificationCode>
      <cac:PostalAddress>
        <cac:AddressLine>
          <cbc:Line>12, Jalan Teknologi 3/1, Taman Sains</cbc:Line>
        </cac:AddressLine>
        <cbc:CityName>Cyberjaya</cbc:CityName>
        <cbc:PostalZone>63000</cbc:PostalZone>
        <cbc:CountrySubentityCode>10</cbc:CountrySubentityCode>
        <cac:Country>
          <cbc:IdentificationCode>MYS</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:Contact>
        <cbc:Telephone>+603-8311 0000</cbc:Telephone>
        <cbc:ElectronicMail>billing@hoelee.com</cbc:ElectronicMail>
      </cac:Contact>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Hoelee Enterprise</cbc:RegistrationName>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cac:PartyIdentification>
        <cbc:ID schemeID="TIN">C87654321090</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Restoran Aisyah Sdn. Bhd.</cbc:RegistrationName>
      </cac:PartyLegalEntity>
      <cac:PostalAddress>
        <cac:AddressLine>
          <cbc:Line>8, Jalan Persiaran Merdeka</cbc:Line>
        </cac:AddressLine>
        <cbc:CityName>Shah Alam</cbc:CityName>
        <cbc:CountrySubentityCode>10</cbc:CountrySubentityCode>
        <cac:Country>
          <cbc:IdentificationCode>MYS</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:Contact>
        <cbc:Telephone>+603-5511 2222</cbc:Telephone>
      </cac:Contact>
    </cac:Party>
  </cac:AccountingCustomerParty>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="MYR">37.40</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="MYR">400.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="MYR">32.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>02</cbc:ID>
        <cbc:Percent>8.00</cbc:Percent>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
    <cac:TaxSubtotal>
      <cac:TaxCategory>
        <cbc:ID>99</cbc:ID>
        <cbc:Percent>10.00</cbc:Percent>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="MYR">454.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="MYR">454.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="MYR">491.40</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="MYR">491.40</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="MYR">400.00</cbc:LineExtensionAmount>
    <cac:TaxTotal>
      <cbc:TaxAmount currencyID="MYR">32.00</cbc:TaxAmount>
      <cac:TaxSubtotal>
        <cbc:TaxableAmount currencyID="MYR">400.00</cbc:TaxableAmount>
        <cbc:TaxAmount currencyID="MYR">32.00</cbc:TaxAmount>
        <cac:TaxCategory>
          <cbc:ID>02</cbc:ID>
          <cbc:Percent>8.00</cbc:Percent>
        </cac:TaxCategory>
      </cac:TaxSubtotal>
    </cac:TaxTotal>
    <cac:Item>
      <cbc:Description>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</cbc:Description>
      <cac:CommodityClassification>
        <cbc:ItemClassificationCode listID="CLASS">T10</cbc:ItemClassificationCode>
      </cac:CommodityClassification>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="MYR">400.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
  <cac:InvoiceLine>
    <cbc:ID>2</cbc:ID>
    <cbc:InvoicedQuantity unitCode="EA">6</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="MYR">54.00</cbc:LineExtensionAmount>
    <cac:TaxTotal>
      <cbc:TaxAmount currencyID="MYR">5.40</cbc:TaxAmount>
      <cac:TaxSubtotal>
        <cbc:TaxableAmount currencyID="MYR">54.00</cbc:TaxableAmount>
        <cbc:TaxAmount currencyID="MYR">5.40</cbc:TaxAmount>
        <cac:TaxCategory>
          <cbc:ID>01</cbc:ID>
          <cbc:Percent>10.00</cbc:Percent>
        </cac:TaxCategory>
      </cac:TaxSubtotal>
    </cac:TaxTotal>
    <cac:Item>
      <cbc:Description>IP camera 4MP — wired</cbc:Description>
      <cac:CommodityClassification>
        <cbc:ItemClassificationCode listID="CLASS">P10</cbc:ItemClassificationCode>
      </cac:CommodityClassification>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="MYR">10.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</ubl:Invoice>

Selepas

<?xml version="1.0" encoding="UTF-8"?>
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2.1"
  xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
  xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:ID>INV20261108003</cbc:ID>
  <cbc:IssueDate>2026-11-08</cbc:IssueDate>
  <cbc:IssueTime>09:15:00</cbc:IssueTime>
  <cbc:InvoiceTypeCode listVersionID="1.0">01</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>MYR</cbc:DocumentCurrencyCode>
  <cbc:TaxCurrencyCode>MYR</cbc:TaxCurrencyCode>
  <cac:Signature>
    <cbc:ID>sig-001</cbc:ID>
  </cac:Signature>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cac:PartyIdentification>
        <cbc:ID schemeID="TIN">C12345678901</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyIdentification>
        <cbc:ID schemeID="BRN">202501123456</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyIdentification>
        <cbc:ID schemeID="SST">B16-1234567890</cbc:ID>
      </cac:PartyIdentification>
      <cbc:IndustryClassificationCode name="Computer programming activities" schemeID="MSIC">62012</cbc:IndustryClassificationCode>
      <cac:PostalAddress>
        <cac:AddressLine>
          <cbc:Line>12, Jalan Teknologi 3/1, Taman Sains</cbc:Line>
        </cac:AddressLine>
        <cbc:CityName>Cyberjaya</cbc:CityName>
        <cbc:PostalZone>63000</cbc:PostalZone>
        <cbc:CountrySubentityCode>10</cbc:CountrySubentityCode>
        <cac:Country>
          <cbc:IdentificationCode>MYS</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:Contact>
        <cbc:Telephone>+603-8311 0000</cbc:Telephone>
        <cbc:ElectronicMail>billing@hoelee.com</cbc:ElectronicMail>
      </cac:Contact>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Hoelee Enterprise</cbc:RegistrationName>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cac:PartyIdentification>
        <cbc:ID schemeID="TIN">C87654321090</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyIdentification>
        <cbc:ID schemeID="BRN">202901234567</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Restoran Aisyah Sdn. Bhd.</cbc:RegistrationName>
      </cac:PartyLegalEntity>
      <cac:PostalAddress>
        <cac:AddressLine>
          <cbc:Line>8, Jalan Persiaran Merdeka</cbc:Line>
        </cac:AddressLine>
        <cbc:CityName>Shah Alam</cbc:CityName>
        <cbc:CountrySubentityCode>10</cbc:CountrySubentityCode>
        <cac:Country>
          <cbc:IdentificationCode>MYS</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:Contact>
        <cbc:Telephone>+603-5511 2222</cbc:Telephone>
      </cac:Contact>
    </cac:Party>
  </cac:AccountingCustomerParty>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="MYR">37.40</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="MYR">400.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="MYR">32.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>02</cbc:ID>
        <cbc:Percent>8.00</cbc:Percent>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="MYR">54.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="MYR">5.40</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>01</cbc:ID>
        <cbc:Percent>10.00</cbc:Percent>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="MYR">454.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="MYR">454.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="MYR">491.40</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="MYR">491.40</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="MYR">400.00</cbc:LineExtensionAmount>
    <cac:TaxTotal>
      <cbc:TaxAmount currencyID="MYR">32.00</cbc:TaxAmount>
      <cac:TaxSubtotal>
        <cbc:TaxableAmount currencyID="MYR">400.00</cbc:TaxableAmount>
        <cbc:TaxAmount currencyID="MYR">32.00</cbc:TaxAmount>
        <cac:TaxCategory>
          <cbc:ID>02</cbc:ID>
          <cbc:Percent>8.00</cbc:Percent>
        </cac:TaxCategory>
      </cac:TaxSubtotal>
    </cac:TaxTotal>
    <cac:Item>
      <cbc:Description>Website maintenance service — November 2026</cbc:Description>
      <cac:CommodityClassification>
        <cbc:ItemClassificationCode listID="CLASS">T10</cbc:ItemClassificationCode>
      </cac:CommodityClassification>
    </cac:Item>
    <cac:ItemPriceExtension>
      <cbc:Amount currencyID="MYR">400.00</cbc:Amount>
    </cac:ItemPriceExtension>
    <cac:Price>
      <cbc:PriceAmount currencyID="MYR">400.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
  <cac:InvoiceLine>
    <cbc:ID>2</cbc:ID>
    <cbc:InvoicedQuantity unitCode="EA">6</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="MYR">54.00</cbc:LineExtensionAmount>
    <cac:TaxTotal>
      <cbc:TaxAmount currencyID="MYR">5.40</cbc:TaxAmount>
      <cac:TaxSubtotal>
        <cbc:TaxableAmount currencyID="MYR">54.00</cbc:TaxableAmount>
        <cbc:TaxAmount currencyID="MYR">5.40</cbc:TaxAmount>
        <cac:TaxCategory>
          <cbc:ID>01</cbc:ID>
          <cbc:Percent>10.00</cbc:Percent>
        </cac:TaxCategory>
      </cac:TaxSubtotal>
    </cac:TaxTotal>
    <cac:Item>
      <cbc:Description>IP camera 4MP — wired</cbc:Description>
      <cac:CommodityClassification>
        <cbc:ItemClassificationCode listID="CLASS">P10</cbc:ItemClassificationCode>
      </cac:CommodityClassification>
    </cac:Item>
    <cac:ItemPriceExtension>
      <cbc:Amount currencyID="MYR">54.00</cbc:Amount>
    </cac:ItemPriceExtension>
    <cac:Price>
      <cbc:PriceAmount currencyID="MYR">10.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</ubl:Invoice>

Cara ia berfungsi

  1. Salin XML daripada sistem perakaunan anda dan tampalkan ke dalam kotak Input. Contoh di bawah sudah menunjukkan invois Malaysia dengan enam kesalahan, satu bagi setiap jenis.
  2. Tekan Jalankan. Kotak Hasil menyenaraikan setiap peraturan yang tidak dipenuhi oleh fail, setiap satu menamakan peraturan, laluan UBL, nama unsur jadual itu sendiri dan apa yang ditunjukkan oleh fail — kemudian peraturan yang tidak dinilai kerana pencetusnya tidak kelihatan, kemudian apa yang tidak disemak oleh alat ini. Tandakan “Tunjuk peraturan yang dipenuhi” untuk melihat peraturan yang diluluskan oleh fail.
  3. Salin hasil jika anda mahu penemuan itu di tempat lain. Fail itu sendiri tidak diubah dan tiada apa yang dimuat naik; buka tab Rangkaian dan anda akan lihat sifar permintaan.

Soalan lazim

Adakah alat ini memberitahu saya sama ada LHDN akan menerima invois saya?

Tidak. Ia tidak pernah menyebut dokumen diterima atau ditolak dan tidak mengira hasil penerimaan. Setiap penemuan ialah kenyataan tentang fail dan jadual yang diterbitkan bersama-sama — “jadual menandainya Wajib dan ia tiada dalam fail ini” — dan senarai “Apa yang tidak disemak oleh alat ini” dicetak dengan setiap jalankan.

Mengapa sesetengah peraturan “tidak dinilai” dan bukan lulus?

Empat peraturan ialah bersyarat: ia hanya terpakai apabila pencetusnya kelihatan dalam fail — mata wang dokumen bukan MYR, pengecualian cukai (jenis E), caj cukai perkhidmatan (jenis 02). Apabila pencetus tiada dalam fail, enjin tidak dapat memberitahu sama ada peraturan itu terpakai, jadi ia menyatakan “tidak dinilai” dengan teks pencetusnya, dan bukannya berpura-pura peraturan itu lulus.

Dari mana peraturan 49 itu berasal?

Setiap baris ditranskripsikan daripada jadual Data Structure laman SDK LHDN untuk Invoice v1.0, yang dibaca pada 2026-11-08 — lajur Mandatory, lajur Number of Chars dan lajur Cardinality. Modul peraturan menamakan unsur, rantai, keperluan dan pencetus dalam kata-kata jadual itu sendiri; tarikh bacaan sumber dicatat bersama modul, seperti jadual kadar.

Adakah ia menyemak bahawa jumlah saya dijumlahkan dengan betul?

Tidak. Enjin hanya membaca kehadiran, panjang dan nilai kod. Wang, tarikh dan angka tidak pernah dihurai atau dikira semula, jadi tiada jumlah yang dijumlah, dibandingkan atau dibundarkan di sini — aritmetik antara jumlah-jumlah ialah di atas senarai “Apa yang tidak disemak oleh alat ini”.

Adakah invois saya atau TIN pembeli saya dimuat naik ke mana-mana?

Tidak. Pengesah ini ialah JavaScript statik dalam pelayar anda: buka tab Rangkaian dan anda akan lihat sifar permintaan. Invois membawa nombor pendaftaran perniagaan sebenar dan TIN sebenar, dan tidak satu pun meninggalkan mesin.