Malaysia: validation rules

Find the rule behind a rejected Malaysian e-invoice and correct it. Start with the document type you sent and the errors returned by Unify or LHDN.

A Malaysian e-invoice is checked twice. Unify checks the GETS request against LHDN’s requirements before anything is submitted. LHDN then runs its own document validation rules when the document reaches MyInvois.

Check the GETS request

Select Malaysia and the document type in the field reference. The Requirement column shows which GETS fields are mandatory, optional or conditional. In List with sample request, choose the document type and inspect the fields for that selection. Use values from the invoice and the company’s registration records.

Read a 422 response

A 422 response from Unify lists each failed rule in errors. code is the rule ID from the table below, getsPath names the GETS field to correct and message describes the rule. Correct the source data, then send the document again. See Unify errors for the response format.

Read LHDN’s result

After the 200, follow the document until isTerminal is true. final_valid means LHDN validated the document. final_invalid means LHDN marked it invalid; government holds LHDN’s answer with the reason.

LHDN’s checks cover the document structure and core fields, taxpayer identities, references on credit and debit notes, codes, duplicate documents, currency and exchange rates. Check the current MyInvois code tables when a code is rejected. For a credit or debit note, check that the invoice it refers to is valid in MyInvois. For a taxpayer error, confirm the identifiers against the company’s registration records. Do not replace a rejected identifier with a guessed value.

Every rule Unify checks

These are the 173 rules Unify applies to a Malaysian GETS request, with the message you get back and the field it points at. MY-* codes are Unify’s checks of LHDN’s requirements. IBR-*, ALIGNED-IBRP-* and BR-* codes come from the Peppol rules and apply with the peppol modifier. Applies to shows the document types, modifiers or variant each rule belongs to. A receipt (is_receipt) skips the buyer checks.

173 of 173 rules

RuleWhat it checksFieldApplies to
ALIGNED-IBRP-046 Each tax breakdown must have tax amount.taxTotalsModifier peppol
ALIGNED-IBRP-047 Each tax breakdown must have tax category code.taxTotalsModifier peppol
ALIGNED-IBRP-048 Tax breakdown rate must be present for taxable categories, optional for O, and absent for TTX.taxTotalsModifier peppol
ALIGNED-IBRP-CL-01-MY Malaysian invoice tax categories must use the MY aligned tax-category codes.taxTotalsModifier peppol
ALIGNED-IBRP-E-05 Invoice line with 'Exempt from tax' must have tax rate 0.lineItemsModifier peppol
ALIGNED-IBRP-E-08 Exempt tax breakdown taxable amount must reconcile against exempt lines, allowances, and charges.taxTotalsModifier peppol
ALIGNED-IBRP-E-09 Exempt tax breakdown tax amount must equal 0.taxTotalsModifier peppol
ALIGNED-IBRP-HVG-08 HVG tax breakdown taxable amount must reconcile by rate.taxTotalsModifier peppol
ALIGNED-IBRP-HVG-09 HVG tax breakdown tax amount must equal taxable amount multiplied by rate.taxTotalsModifier peppol
ALIGNED-IBRP-HVG-10 HVG tax breakdown must not have exemption reason code or text.taxTotalsModifier peppol
ALIGNED-IBRP-LVG-08 LVG tax breakdown taxable amount must reconcile by rate.taxTotalsModifier peppol
ALIGNED-IBRP-LVG-09 LVG tax breakdown tax amount must equal taxable amount multiplied by rate.taxTotalsModifier peppol
ALIGNED-IBRP-LVG-10 LVG tax breakdown must not have exemption reason code or text.taxTotalsModifier peppol
ALIGNED-IBRP-O-09 Not subject to tax breakdown tax amount must equal 0.taxTotalsModifier peppol
ALIGNED-IBRP-SA-08 SA tax breakdown taxable amount must reconcile by rate.taxTotalsModifier peppol
ALIGNED-IBRP-SA-09 SA tax breakdown tax amount must equal taxable amount multiplied by rate.taxTotalsModifier peppol
ALIGNED-IBRP-SA-10 SA tax breakdown must not have exemption reason code or text.taxTotalsModifier peppol
ALIGNED-IBRP-SE-08 SE tax breakdown taxable amount must reconcile by rate.taxTotalsModifier peppol
ALIGNED-IBRP-SE-09 SE tax breakdown tax amount must equal taxable amount multiplied by rate.taxTotalsModifier peppol
ALIGNED-IBRP-SE-10 SE tax breakdown must not have exemption reason code or text.taxTotalsModifier peppol
ALIGNED-IBRP-TTX-08 Tourism tax breakdown must not include tax percentage.taxTotalsModifier peppol
ALIGNED-IBRP-TTX-09 Tourism tax amount must equal line-level and document-level TTX tax amounts.taxTotalsModifier peppol
BR-CL-14 Country codes in an invoice MUST be coded using ISO code list 3166-1.partiesModifier peppol
BR-CO-04 Each Invoice line MUST have an Invoice line VAT category code (ibt-151).lineItemsModifier peppol
IBR-002 An Invoice MUST have an Invoice number (ibt-001).header.documentNumberModifier peppol
IBR-02-MY Invoice must have supplier BRN number.parties.seller.registrationNumbersModifier peppol
IBR-003 An Invoice MUST have an Invoice issue date (ibt-002).header.issueDateModifier peppol
IBR-03-MY Invoice must have buyer BRN number.parties.buyer.registrationNumbersModifier peppol
IBR-04-MY Invoice must have supplier TIN.parties.seller.taxIdsModifier peppol
IBR-005 An Invoice MUST have an Invoice currency code (ibt-005).header.currencyModifier peppol
IBR-006 An Invoice MUST contain the Seller name (ibt-027).parties.seller.nameModifier peppol
IBR-007 An Invoice MUST contain the Buyer name (ibt-044).parties.buyer.nameModifier peppol
IBR-008 An Invoice MUST contain the Seller postal address (ibg-05).parties.seller.addressModifier peppol
IBR-009 The Seller postal address (ibg-05) MUST contain a Seller country code (ibt-040).parties.seller.address.countryModifier peppol
IBR-010 An Invoice MUST contain the Buyer postal address (ibg-08).parties.buyer.addressModifier peppol
IBR-011 The Buyer postal address (ibg-08) MUST contain a Buyer country code (ibt-055).parties.buyer.address.countryModifier peppol
IBR-012 An Invoice MUST have the Sum of Invoice line net amount (ibt-106).totals.totalLineTaxableAmountModifier peppol
IBR-013 An Invoice MUST have the Invoice total amount without Tax (ibt-109).totals.totalAmountExcludingTaxModifier peppol
IBR-014 An Invoice MUST have the Invoice total amount with Tax (ibt-112).totals.totalAmountIncludingTaxModifier peppol
IBR-015 An Invoice MUST have the Amount due for payment (ibt-115).totals.amountDueModifier peppol
IBR-016 An Invoice MUST have at least one Invoice line (ibg-25).lineItemsModifier peppol
IBR-017 The Payee name (ibt-059) MUST be provided in the Invoice, if the Payee (ibg-10) is different from the Seller (ibg-04).payment.paymentMeans.0.creditTransferInfo.payeeFinancialAccountNameModifier peppol
IBR-021 Each Invoice line MUST have an Invoice line identifier (ibt-126).lineItemsModifier peppol
IBR-022 Each Invoice line (ibg-25) MUST have an invoiced quantity (ibt-129)..lineItemsModifier peppol
IBR-023 An Invoice line (ibg-25) MUST have an Invoiced quantity unit of measure code (ibt-130).lineItemsModifier peppol
IBR-024 Each Invoice line (ibg-25) MUST have an Invoice line net amount (ibt-131).lineItemsModifier peppol
IBR-025 Each Invoice line (ibg-25) MUST contain the Item name (ibt-153).lineItemsModifier peppol
IBR-026 Each Invoice line (ibg-25) MUST contain the Item net price (ibt-146).lineItemsModifier peppol
IBR-027 The Item net price (ibt-146) MUST NOT be negative.lineItemsModifier peppol
IBR-028 The Item gross price (ibt-148) MUST NOT be negative.lineItemsModifier peppol
IBR-029 If both Invoicing period start date (ibt-073) and Invoicing period end date (ibt-074) are given then the Invoicing period end date (ibt-074) MUST be later or equal to the Invoicing period start date (ibt-073).header.invoicePeriodModifier peppol
IBR-030 If both Invoice line period start date (ibt-134) and Invoice line period end date (ibt-135) are given then the Invoice line period end date (ibt-135) MUST be later or equal to the Invoice line period start date (ibt-134).lineItemsModifier peppol
IBR-031 Allowance (ibg-20) MUST have an allowance amount (ibt-092).allowancesAndChargesModifier peppol
IBR-033 Each Document level allowance (ibg-20) MUST have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098).allowancesAndChargesModifier peppol
IBR-036 Charge (ibg-21) MUST have a charge amount (ibt-099).allowancesAndChargesModifier peppol
IBR-038 Each Document level charge (ibg-21) MUST have a Document level charge reason (ibt-104) or a Document level charge reason code (ibt-105).allowancesAndChargesModifier peppol
IBR-041 Each Invoice line allowance (ibg-27) MUST have an Invoice line allowance amount (ibt-136).lineItemsModifier peppol
IBR-042 Each Invoice line allowance (ibg-27) MUST have an Invoice line allowance reason (ibt-139) or an Invoice line allowance reason code (ibt-140).lineItemsModifier peppol
IBR-043 Each Invoice line charge (ibg-28) MUST have an Invoice line charge amount (ibt-141).lineItemsModifier peppol
IBR-044 Each Invoice line charge (ibg-28) MUST have an Invoice line charge reason (ibt-144) or an invoice line charge reason code (ibt-145).lineItemsModifier peppol
IBR-049 A Payment instruction (ibg-16) MUST specify the Payment means type code (ibt-081).payment.paymentMeansModifier peppol
IBR-052 Each Additional supporting document (ibg-24) MUST contain a Supporting document reference (ibt-122).supportingDocumentsModifier peppol
IBR-053 If the Tax accounting currency code (ibt-006) is present, then the Invoice total Tax amount in accounting currency (ibt-111) MUST be provided.extensions.peppol_totalTaxAmountInTaxCurrencyModifier peppol
IBR-054 Each Item attribute (ibg-32) MUST contain an Item attribute name (ibt-160) and an Item attribute value (ibt-161).lineItemsModifier peppol
IBR-057 Each Deliver to address MUST contain a Deliver to country code (ibt-080).parties.delivery.address.countryModifier peppol
IBR-062 The Seller electronic address (ibt-034) MUST have a Scheme identifier.extensions.peppol_seller_peppolIdSchemeModifier peppol
IBR-063 The Buyer electronic address (ibt-049) MUST have a Scheme identifier.extensions.peppol_buyer_peppolIdSchemeModifier peppol
IBR-064 The Item standard identifier (ibt-157) MUST have a Scheme identifier.lineItemsModifier peppol
IBR-065 The Item classification identifier (ibt-158) MUST have a Scheme identifier.lineItemsModifier peppol
IBR-066 An Invoice MUST contain maximum one Payment Card account (ibg-18).payment.paymentMeansModifier peppol
IBR-067 An Invoice MUST contain maximum one Payment Mandate (ibg-19).payment.paymentMeansModifier peppol
IBR-068 GLN MUST have a valid format according to GS1 rules for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-069 Norwegian organization number MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-070 Danish organization number (CVR) MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-071 An invoice should not include an AdditonalDocumentReference (ibg-24) simultaneously referring an Invoice Object Identifier (ibt-018) and an Attachment (ibt-125).supportingDocumentsModifier peppol
IBR-072 An invoice MUST not include an AdditionalDocumentReference (ibg-24) simultaneously referring an Invoice Object Identifier (ibt-018) and an Document Description (ibt-123).supportingDocumentsModifier peppol
IBR-073 A date MUST be formatted YYYY-MM-DD in (ibt-002), (ibt-007), (ibt-009), (ibt-026), (ibt-072), (ibt-073), (ibt-074), (ibt-134), (ibt-135).headerModifier peppol
IBR-074 Binary object elements (ibt-125) MUST contain the mime code attribute (ibt-125-1).supportingDocumentsModifier peppol
IBR-075 Binary object elements (ibt-125) MUST contain the filename attribute (ibt-125-2).supportingDocumentsModifier peppol
IBR-077 Tax accounting currency code (ibt-006) MUST be different from invoice currency code (ibt-005) when provided.header.taxCurrencyModifier peppol
IBR-078 Only one invoiced object (ibt-018) is allowed on document level.supportingDocumentsModifier peppol
IBR-080 The Buyer electronic address (ibt-049) MUST be provided.parties.buyer.peppolIdModifier peppol
IBR-081 The Seller electronic address (ibt-049) MUST be provided.parties.seller.peppolIdModifier peppol
IBR-082 Allowance/charge indicator value MUST equal 'true' or 'false'.allowancesAndChargesModifier peppol
IBR-084 Invoice total tax amount (ibt-110) and Invoice total tax amount in accounting currency (ibt-111) MUST have the same operational sign.totals.totalTaxAmountModifier peppol
IBR-085 Start date of line period (ibt-134) MUST be within invoice period (ibg-14).lineItemsModifier peppol
IBR-086 End date of line period (ibt-135) MUST be within invoice period (ibg-14).lineItemsModifier peppol
IBR-087 Base quantity (ibt-149) MUST be a positive number above zero.lineItemsModifier peppol
IBR-088 Unit code of price base quantity (ibt-150) MUST be same as invoiced quantity (ibt-130).lineItemsModifier peppol
IBR-090 Only one project reference (ibt-011) is allowed on document level.supportingDocumentsModifier peppol
IBR-091 Invoice amount due for payment (ibt-115) MUST have no more than 2 decimals.totals.amountDueModifier peppol
IBR-113 Belgian enterprise number MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-114 IPA Code (Codice Univoco Unità Organizzativa) must be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-115 Tax Code (Codice Fiscale) must be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-116 Italian VAT Code (Partita Iva) must be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-120 Australian Business Number (ABN) must be stated in the correct format for for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-121 Document level allowance amount (ibt-107) MUST have no more than 2 decimals.totals.totalAllowancesModifier peppol
IBR-122 Document level charge amount (ibt-108) MUST have no more than 2 decimals.totals.totalChargesModifier peppol
IBR-123 Invoice total amount without TAX (ibt-109) MUST have no more than 2 decimals.totals.totalAmountExcludingTaxModifier peppol
IBR-124 Invoice total TAX amount (ibt-110) MUST have no more than 2 decimals.taxTotals.0.taxAmountModifier peppol
IBR-125 Invoice total amount with TAX (ibt-112) MUST have no more than 2 decimals.totals.totalAmountIncludingTaxModifier peppol
IBR-127 Swedish organization number MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).partiesModifier peppol
IBR-CL-04 Invoice currency code (ibt-005) MUST be coded using ISO code list 4217 alpha-3.header.currencyModifier peppol
IBR-CL-05 Tax currency code (ibt-006) MUST be coded using ISO code list 4217 alpha-3.header.taxCurrencyModifier peppol
IBR-CL-05-MY If tax accounting currency is present, it must be MYR.header.taxCurrencyModifier peppol
IBR-CL-07 Object identifier schemes must use the UAE UNTDID 1153 restriction.lineItemsModifier peppol
IBR-CL-10 Party identifier scheme MUST be a code from the ISO 6523 ICD list.extensionsModifier peppol
IBR-CL-11 Legal registration identifier scheme MUST be a code from the ISO 6523 ICD list.extensions.peppol_registrationNumberSchemeModifier peppol
IBR-CL-13 Item classification identifier identification scheme MUST be coded using the UNTDID 7143 list.lineItemsModifier peppol
IBR-CL-14 Country codes in an invoice MUST be coded using ISO code list 3166-1.partiesModifier peppol
IBR-CL-15 Origin country codes in an invoice (ibt-159) MUST be coded using ISO code list 3166-1.lineItemsModifier peppol
IBR-CL-16 Payment means in an invoice (ibt-081) MUST be coded using UNCL4461 code list.payment.paymentMeansModifier peppol
IBR-CL-19 Reason code MUST be according to subset of UNCL 5189 D.16B.allowancesAndChargesModifier peppol
IBR-CL-20 Reason code MUST be according to UNCL 7161 D.16B.allowancesAndChargesModifier peppol
IBR-CL-21 Item standard identifier scheme (IBT-157-1) MUST belong to the ISO 6523 ICD list.lineItemsModifier peppol
IBR-CL-23 Unit code (ibt-130), (ibt-150) MUST be coded according to the UN/ECE Recommendation 20 with Rec 21 extension.lineItemsModifier peppol
IBR-CL-24 Mime code (ibt-125-1) MUST be according to subset of IANA code list.supportingDocumentsModifier peppol
IBR-CL-25 Endpoint identifier scheme MUST belong to the CEF EAS code list.extensionsModifier peppol
IBR-CL-26 Delivery location identifier scheme (IBT-071-1) MUST belong to the ISO 6523 ICD list.extensions.peppol_deliveryLocationIdSchemeModifier peppol
IBR-CO-10 Sum of Invoice line net amount MUST equal the rounded sum of Invoice line net amounts.totals.totalLineTaxableAmountModifier peppol
IBR-CO-11 Sum of allowances on document level (ibt-107) = Σ Document level allowance amount (ibt-092).totals.totalAllowancesModifier peppol
IBR-CO-12 Sum of charges on document level (ibt-108) = Σ Document level charge amount (ibt-099).totals.totalChargesModifier peppol
IBR-CO-13 Invoice total amount without Tax (ibt-109) = Σ Invoice line net amount (ibt-131) - Sum of allowances on document level (ibt-107) + Sum of charges on document level (ibt-108).totals.totalAmountExcludingTaxModifier peppol
IBR-CO-14 Invoice total Tax amount MUST equal the rounded sum of Tax category tax amounts.taxTotals.0.taxAmountModifier peppol
IBR-CO-15 Invoice total amount with Tax (ibt-112) = Invoice total amount without Tax (ibt-109) + Invoice total Tax amount (ibt-110).totals.totalAmountIncludingTaxModifier peppol
IBR-CO-16 Amount due for payment (ibt-115) = Invoice total amount with Tax (ibt-112) - Paid amount (ibt-113) + Rounding amount (ibt-114).totals.amountDueModifier peppol
IBR-CO-26 At least one Seller party, legal registration or tax identifier MUST be present.parties.sellerModifier peppol
MY-COMMODITY-CLASSIFICATION MY: Commodity classification code must be in the range 1–45.lineItemsEvery document type
MY-DATE-001 MY: Issue time is mandatory.header.issueTimeEvery document type
MY-DATE-002 Issuance date time value of the document is too old and cannot be submitted.header.issueDateEvery document type
MY-DATE-003 MY: Document issue date cannot be in the future.header.issueDateEvery document type
MY-DATE-004 MY: Issue time must match HH:mm:ssZ format.header.issueTimeEvery document type
MY-DATE-005 MY: Document issue date and time (UTC) cannot be in the future.header.issueTimeEvery document type
MY-DATE-006 MY: Invoice period start and end dates must both be provided and start must not be after end.header.invoicePeriodEvery document type
MY-DEBIT-NOTE-REFERENCE MY: Debit note must have a reference to the original invoice.header.referenceIdDebit note
MY-GEN-TOTALS MY: Totals section is mandatory for Malaysia e-invoicing.totalsEvery document type
MY-INVALID-TIN-BUYER MY: Buyer TIN format is invalid.parties.buyer.taxIdsEvery document type
MY-INVALID-TIN-SELLER MY: Seller TIN format is invalid.parties.seller.taxIdsEvery document type
MY-LINE-CLASSIFICATION MY: Line item classification is mandatory.lineItemsEvery document type
MY-LINE-DESCRIPTION MY: Line item description is mandatory.lineItemsEvery document type
MY-LINE-EXTENSION-SUM MY: Line taxable value must match quantity × unit price.lineItemsEvery document type
MY-LINE-ITEM-PRICE-EXTENSION MY: Line item subtotal is mandatory.lineItemsEvery document type
MY-LINE-QUANTITY MY: Line item quantity must be greater than zero.lineItemsEvery document type
MY-LINE-TAX-AMOUNT MY: Line tax amount must equal taxable value × tax rate.lineItemsEvery document type
MY-LINE-TAX-AMOUNT-NON-NEGATIVE MY: Line tax amount cannot be negative.lineItemsEvery document type
MY-LINE-TAX-CATEGORY MY: Line item tax category must be a valid LHDN code.lineItemsEvery document type
MY-LINE-TAX-RATE-RANGE MY: Tax rate must be between 0 and 100.lineItemsEvery document type
MY-LINE-TOTAL MY: Line total must equal taxable value + tax amount.lineItemsEvery document type
MY-MSIC-CODE MY: Invalid MSIC code for seller.parties.seller.industryClassification.codeEvery document type
MY-MSIC-CODE-REQUIRED MY: Seller MSIC code is mandatory.parties.seller.industryClassification.codeEvery document type
MY-MSIC-DESCRIPTION-REQUIRED MY: Seller business activity description is mandatory.parties.seller.industryClassification.descriptionEvery document type
MY-PARTY-001 MY: Buyer TIN is mandatory.parties.buyer.taxIdsEvery document type
MY-PARTY-002 MY: Credit note must have a reference to the original invoice.header.referenceIdCredit note
MY-PARTY-003 MY: Seller BRN registration number is mandatory.parties.seller.registrationNumbersEvery document type
MY-PARTY-005 MY: Seller's mobile number is mandatory.parties.seller.contact.phoneEvery document type
MY-PARTY-BUYER-PHONE MY: Buyer's mobile number format is invalid.parties.buyer.contact.phoneEvery document type
MY-PARTY-BUYER-PHONE-REQUIRED MY: Buyer's mobile number is mandatory.parties.buyer.contact.phoneEvery document type
MY-PARTY-REGISTRATION-BUYER MY: Buyer registration number is mandatory.parties.buyer.registrationNumbersEvery document type
MY-PARTY-TIN-SELLER MY: Seller TIN is mandatory.parties.seller.taxIdsEvery document type
MY-REFUND-BASE MY: variant 'refund' is only allowed with base type 'credit_note'.documentType.baseVariant refund
MY-REFUND-REFERENCE MY: header.referenceId is mandatory when documentType.variant='refund'.header.referenceIdVariant refund
MY-SELF-BILLED-EXPORT MY: modifier 'self_billed' cannot be combined with modifier 'export'.documentType.modifiersModifier self_billed
MY-SELLER-BUYER-TIN-SAME MY: Seller and Buyer TIN cannot be the same.parties.buyer.taxIdsEvery document type
MY-SELLER-COUNTRY MY: Seller address country must be MY.parties.seller.address.countryEvery document type
MY-SELLER-STATE MY: Seller address state is invalid.parties.seller.address.stateOrProvinceEvery document type
MY-TAX-001 MY: Cannot apply invoice-level discount or charge if line item tax rates differ.allowancesAndChargesEvery document type
MY-TAX-002 MY: Total tax amount must match sum of line tax amounts.totals.totalTaxAmountEvery document type
MY-TAX-SUBTOTAL MY: At least one tax subtotal is required.taxTotals.0.taxSubtotalsEvery document type
MY-TAX-SUBTOTAL-CATEGORY MY: Tax subtotal category must be a valid LHDN code.taxTotalsEvery document type
MY-TAX-TOTAL-AMOUNT MY: Document tax total amount is required.taxTotals.0.taxAmountEvery document type
MY-TAX-TOTAL-GROUP MY: Exactly one document tax total is required.taxTotalsEvery document type
MY-TOTAL-EXCLUDING MY: Total amount excluding tax must reconcile with line totals and adjustments.totals.totalAmountExcludingTaxEvery document type
MY-TOTAL-INCLUSIVE MY: Total amount including tax must equal excluding tax + total tax.totals.totalAmountIncludingTaxEvery document type