Why your invoice was rejected (error codes)

Last reviewed: 2026-07-09 ยท Last updated: 2026-07-10

Scope: Common invoice and receipt rejection, validation, and submission errors, where to find the details, and customer-safe fix steps.

Use this guide when an invoice, receipt, upload, or automated import fails. Match the exact message you see, check where it appeared, then follow the fix steps for that scenario.

This guide covers invoice and receipt errors. For other problems, see Account and sign-in issues, Fixing import and upload errors, Document and export issues, or API submission errors.

Where to find the full error

Every error is recorded in one of two places:

  • Activity Trail: Open the invoice and scroll to the bottom. The Activity Trail shows each status change and the rejection reason returned during submission.
  • Import Log: For CSV uploads and automated imports, open the log entry and select View to inspect the failed row or receipt.

What the status means

Status Where you usually see it What to do
Failed Import Log or inbound receipt processing Fix the source data, then upload or process the receipt again.
Error Outbound invoice submission Usually safe to resubmit. If it repeats, check the Activity Trail and contact support.
Invalid Outbound invoice submission after LHDN validation LHDN rejected the invoice. Read the Activity Trail reason, fix the invoice, then resubmit.

Buyer and customer details

Buyer not matched to a saved customer

Error message: No buyer matches the configured identifiers.

Where you will encounter it: Import Log or automated receipt processing. The receipt usually remains Failed until the buyer can be matched.

What it means: The buyer identifiers on the receipt, such as TIN, registration number, or ID, do not match a saved Customer record in your workspace.

Steps to fix:

  1. Open the Customer record for the buyer.
  2. Confirm the buyer's TIN and registration number match the receipt exactly.
  3. Add or correct the Customer record if it is missing or outdated.
  4. Process the receipt again.

Use Forgot/don't have your TIN in the TIN field if you know the BRN but not the TIN.

More than one customer matched

Error message: Multiple parties found.

Where you will encounter it: Import Log or automated receipt processing. The receipt usually shows Failed.

What it means: More than one Customer record has the same identifiers, so JomeInvoice cannot safely choose which buyer to use.

Steps to fix:

  1. Open your Customer list.
  2. Find records that share the same TIN, registration number, or ID.
  3. Remove, merge, or correct the duplicates so only one Customer record matches.
  4. Process the receipt again.

TIN mismatch or TIN not found

Error message: The message may say the TIN is invalid, not found, or does not match the buyer details.

Where you will encounter it: Customer details, invoice submission, Activity Trail, or Import Log.

What it means: The TIN does not match LHDN's records for that entity. A common cause is using the wrong entity type or TIN prefix.

Steps to fix:

  1. Confirm whether the buyer is a company, Malaysian individual, foreign company, or foreign individual.
  2. Check that the TIN prefix matches the entity type. A company TIN looks like C1234567890, and a Malaysian individual TIN looks like IG1234567890. A TIN is up to 14 characters.
  3. Use Forgot/don't have your TIN if you know the BRN but not the correct TIN.
  4. Confirm the details with the customer if the lookup does not return a match.

Buyer TIN or registration number missing

Error message: Missing buyer fields: tin, registration_number.

Where you will encounter it: Import Log, automated receipt processing, or invoice submission.

What it means: The buyer's TIN, registration number, or individual ID is missing. LHDN requires buyer identifiers before submission.

Steps to fix:

  1. Open the Customer record.
  2. Add the buyer's TIN and registration number.
  3. For individuals, add the NRIC or other valid ID where required.
  4. Save the Customer record and resubmit.

The registration number (BRN) has two accepted formats. A new-format SSM number is 12 digits, for example 200101012345. An old-format number is 7 digits, a hyphen, then a letter, for example 1234567-A.

Buyer ID number is not valid

Error message: Identification number is not valid NRIC - BUYER

Where you will encounter it: Activity Trail after LHDN validation, usually with Invalid status.

What it means: The buyer was submitted as a Malaysian individual, but the ID number does not match the NRIC format LHDN expects.

Steps to fix:

  1. Confirm the buyer's NRIC. It must be 12 digits, entered as digits only with no spaces or dashes, for example 900101015523.
  2. Correct the ID number on the Customer record.
  3. If the buyer is a company, change the entity type to Company and provide the company registration number and TIN instead.
  4. Resubmit the invoice.

Buyer phone number is not valid

Error message: Enter valid phone number - BUYER

Where you will encounter it: Activity Trail after LHDN validation, usually with Invalid status.

What it means: The buyer phone number is missing or not in a format LHDN accepts.

Steps to fix:

  1. Open the Customer record.
  2. Enter the phone number with the country code, for example +60123456789. Keep it to 20 characters or fewer, and do not include spaces or brackets.
  3. Save the Customer record and resubmit.

Customer country is missing or does not match the entity type

Error message: country code does not exist

Where you will encounter it: Activity Trail or Import Log.

What it means: The Customer record has no country, or the country and entity type do not fit together.

Steps to fix:

  1. Open the Customer record.
  2. Set the buyer's country.
  3. For non-Malaysian buyers, select Foreign Company or Foreign Individual.
  4. Save the Customer record and resubmit.

State does not match postcode

Error message: State does not match postcode for a Malaysia address.

Where you will encounter it: Import Log or Activity Trail.

What it means: The state selected for a Malaysian address does not match the postcode, or it cannot be mapped to the LHDN state code.

Steps to fix:

  1. Open the address on the Customer or invoice record.
  2. Confirm the postcode is a 5-digit Malaysian postcode, for example 40000.
  3. Re-select the state from the dropdown so it matches the postcode. For example, postcode 40000 is in Selangor.
  4. Save and process the receipt or invoice again.

For a Malaysian buyer or supplier, the state must be a real Malaysian state (Johor through the federal territories, LHDN state codes 01 to 16).

The state "Not Applicable" (code 17) is only for specific cases, such as a foreign (non-Malaysian) buyer or supplier, or a consolidated e-invoice. A local Malaysian party must use a real state, codes 01 to 16.

Company profile

Your company details are incomplete

Error message: Company party email does not exist.

Related messages may say Company party does not exist, Multiple company emails found, or Company Party already exists.

Where you will encounter it: Activity Trail during invoice submission, or Import Log if the receipt cannot be prepared for submission.

What it means: Your own company profile is missing required supplier details, most often the company email, or the company record is duplicated.

Steps to fix:

  1. Open Company Settings.
  2. Check that your company email and required company details are complete.
  3. Remove or correct duplicate company records if you see more than one.
  4. Save and resubmit.

Your company MSIC code is missing

Error message: The message may say the MSIC code is missing or invalid.

Where you will encounter it: Activity Trail during submission, or Import Log.

What it means: Your company profile has no valid MSIC business code. LHDN requires one on every submission.

Steps to fix:

  1. Open Company Settings.
  2. Set a valid 5-digit MSIC code for your business activity.
  3. Use 00000 (Not Applicable) only if no code fits.
  4. Save and resubmit.

Invoice and receipt details

E-invoice document type is missing or wrong

Error message: Missing required field: einvoice_type or Invalid einvoice type code

Where you will encounter it: Import Log, CSV upload, automated import, or invoice creation.

What it means: The invoice, credit note, debit note, refund note, or self-billed document type is missing or was sent in the wrong format.

Steps to fix:

  1. Set the correct document type before submission.
  2. If you upload from another system, send the LHDN code instead of free text.
  3. Use 01 Invoice, 02 Credit Note, 03 Debit Note, 04 Refund Note, or 11 to 14 for the self-billed equivalents.
  4. Upload or submit again.

No line items on the invoice or receipt

Error message: Missing required field: receipt_line_items

Where you will encounter it: Import Log, CSV upload, automated import, or Activity Trail.

What it means: The invoice or receipt has no line items. An e-invoice must contain at least one line.

Steps to fix:

  1. Add at least one line item.
  2. Confirm the line includes description, quantity, amount, and classification code.
  3. Save and submit again.

Tax or total amounts are missing

Error message: Missing required field: total_tax or Missing required field: total_payable

Where you will encounter it: Import Log, CSV upload, or automated import.

What it means: A required amount is blank or missing, such as total tax, total payable, total excluding tax, or total including tax.

Steps to fix:

  1. Open the invoice, CSV row, or source-system record.
  2. Enter the missing amounts as plain numbers with a decimal point, for example 100.00. Do not include a currency symbol or thousands separators.
  3. Re-export or upload the corrected file.

Buyer or receiver name is missing

Error message: Missing required field: receiver_name

Where you will encounter it: Import Log or automated import.

What it means: The buyer name was not provided.

Steps to fix:

  1. Add the buyer or receiver name to the source record.
  2. Confirm the buyer identifiers are also present.
  3. Upload or process the receipt again.

Receipt data is empty or in the wrong format

Error message: The message may mention Input should be a valid list and several missing required fields.

Where you will encounter it: Import Log or automated import.

What it means: The receipt reached JomeInvoice empty, or one or more fields were sent in the wrong data type. For example, a list field may have been sent as blank text.

Steps to fix:

  1. Check the affected record in your source system or upload file.
  2. Confirm required fields are present, including issue date, totals, line items, and buyer identifiers.
  3. Confirm dates are sent as dates and amounts are sent as numbers.
  4. Re-export and send the file again.

Contact support with a sanitized sample if the file looks correct but the error continues.

Totals do not add up

Error message: Calculation mismatch

Where you will encounter it: Import Log or Activity Trail, usually with Failed status.

What it means: The total excluding tax does not equal the sum of the line-item amounts.

Steps to fix:

  1. Add up the line-item totals.
  2. Compare them with the invoice header total excluding tax.
  3. Correct either the line amounts or the header total.
  4. Submit again.

Issuance date is too old

Error message: Issuance date time value of the document is too old that cannot be submitted.

Where you will encounter it: Activity Trail after LHDN validation, usually with Invalid status.

What it means: The invoice date is older than LHDN allows for submission.

Steps to fix:

  1. Check the invoice date.
  2. Submit invoices promptly within the allowed submission window.
  3. If a late document is genuinely needed, issue it with a current date in line with your accounting policy.

Duplicate invoice number

Error message: The message may say the invoice number or document reference already exists.

Where you will encounter it: Invoice creation, upload validation, Import Log, or Activity Trail.

What it means: An invoice with the same number already exists in your workspace or has already been submitted.

Steps to fix:

  1. Check whether this is a duplicate of an existing invoice.
  2. If it is a separate invoice, change the invoice number.
  3. Use a clear suffix if needed, such as INV-001-A.
  4. Submit again.

Codes and formats

Codes must match LHDN's official code lists. Free text, such as Bank Transfer or Service Tax, is not accepted where a code is required. LHDN publishes the full list in its MyInvois SDK code tables.

Payment method is not a valid code

Error message: Invalid payment method code

Where you will encounter it: Import Log, CSV upload, or automated import.

What it means: The payment method was sent as free text or as an unpadded number instead of an LHDN payment-method code.

Steps to fix:

  1. Select the payment method from the JomeInvoice dropdown where possible.
  2. If you upload from another system, map payment methods to LHDN codes.
  3. Use 01 Cash, 02 Cheque, 03 Bank Transfer, 04 Credit Card, 05 Debit Card, 06 e-Wallet, 07 Digital Bank, or 08 Others.
  4. Use the two-digit code, such as 03, not the label or a single digit such as 3.

Tax type is not a valid code

Error message: Invalid tax type code

Where you will encounter it: Import Log, CSV upload, automated import, or line-item validation.

What it means: The tax type was sent as free text instead of an LHDN tax type code.

Steps to fix:

  1. Select the tax type from the dropdown where possible.
  2. If you upload from another system, map tax types to LHDN codes.
  3. Use 01 Sales Tax, 02 Service Tax, 03 Tourism Tax, 04 High-Value Goods Tax, 05 Sales Tax on Low Value Goods, 06 Not Applicable, or E Tax exemption.
  4. Upload or submit again.

Tax code is not recognised by LHDN

Error message: LHDN code does not exist.

Where you will encounter it: Import Log, Activity Trail, or line-item validation.

What it means: A tax code on the invoice or receipt is not in LHDN's current list.

Steps to fix:

  1. Open the affected line or tax item.
  2. Clear the pasted or imported code.
  3. Pick the value again from the dropdown where possible.
  4. Update your source-system mapping if the value came from an upload or automated import.

Classification code is invalid

Error message: The message may say the classification code is invalid or does not exist.

Where you will encounter it: Line-item validation, Import Log, or Activity Trail.

What it means: The classification code on a line item is missing or not in LHDN's current list.

Steps to fix:

  1. Open the affected line item.
  2. Clear the classification code.
  3. Select a current value from the typeahead or dropdown.
  4. Save and resubmit.

Unit of Measurement is not allowed

Error message: The message may say the unit of measurement, UOM, or unit code is invalid.

Where you will encounter it: Line-item validation, Import Log, or Activity Trail.

What it means: The unit of measurement is not in LHDN's allowed list.

Steps to fix:

  1. Open the affected line item.
  2. Select the unit of measurement from the JomeInvoice dropdown.
  3. Save and resubmit.

Currency needs an exchange rate

Error message: The message may say the exchange rate is missing.

Where you will encounter it: Invoice creation, upload validation, Import Log, or Activity Trail.

What it means: A non-MYR currency was selected, but no exchange rate to MYR was provided.

Steps to fix:

  1. Enter the exchange rate to MYR.
  2. Use the exact rate from your source record.
  3. Save and resubmit.

Credit, debit, and refund notes

Original invoice reference is missing

Error message: The message may say the original e-Invoice reference number is missing or invalid.

Where you will encounter it: Credit note, debit note, or refund note submission.

What it means: A credit, debit, or refund note must reference the original e-invoice it adjusts.

Steps to fix:

  1. Open the credit note, debit note, or refund note.
  2. Set the original invoice reference.
  3. Confirm it points to the correct issued invoice.
  4. Submit again.

See When to issue a Credit, Debit, or Refund Note.

Tax exemption reason is required

Error message: Tax exemption reason is required

Where you will encounter it: Activity Trail after LHDN validation, or line-item validation before submission.

What it means: A line is marked as tax-exempt, but the exemption reason is missing or not valid text.

Steps to fix:

  1. Open each exempted line.
  2. Add a valid tax exemption reason.
  3. Save and resubmit.

Amount exempted from tax is more than the line total

Error message: Amount Exempted from Tax exceeds the total amount

Where you will encounter it: Invoice creation or line-item validation.

What it means: The exempted amount on a line is larger than the line total.

Steps to fix:

  1. Open the exempted line.
  2. Set the exempted amount so it is not more than the line total.
  3. Save and resubmit.

A tax line is missing a tax type

Error message: Please select a tax type for all tax lines or Tax rate cannot be 0 when multiple tax types are configured

Where you will encounter it: The tax section during invoice creation.

What it means: A tax line has no tax type, or a rate is zero where a rate is expected.

Steps to fix:

  1. Select a tax type on every tax line.
  2. Set a non-zero rate where the line is taxable.
  3. Save and resubmit.

An item name is too long

Error message: Item name must not exceed 300 characters

Where you will encounter it: Invoice creation or line-item validation.

What it means: A line item name is longer than LHDN allows.

Steps to fix:

  1. Shorten the item name to 300 characters or fewer.
  2. Save and resubmit.

Submission and system errors

Most errors in this section are not caused by your invoice data. They are usually authorization, connectivity, or submission-processing issues.

JomeInvoice is not authorized as intermediary

Error message: Add Intermediary is required or Unauthorized

Where you will encounter it: Activity Trail during submission or cancellation.

What it means: JomeInvoice does not have permission to submit or cancel documents on your behalf in MyInvois.

Steps to fix:

  1. Follow Adding JomeInvoice as Intermediary.
  2. Confirm the authorization is active in MyInvois.
  3. Return to JomeInvoice and resubmit.

Submission is stuck or timed out at MyInvois

Error message: Submission queue to MyInvois Portal stuck in processing

Where you will encounter it: Activity Trail during outbound submission, usually with Error status.

What it means: The submission stayed in the MyInvois queue too long and reached the retry limit. This is usually a MyInvois-side delay, not an invoice-data issue.

Steps to fix:

  1. Resubmit the invoice.
  2. If it times out again, wait and try later.
  3. Contact support if the same invoice keeps timing out.

JomeInvoice could not reach MyInvois

Error message: Failed to send request to MyInvois API

Where you will encounter it: Activity Trail during outbound submission, usually with Error status.

What it means: JomeInvoice could not complete the request to MyInvois. This is usually temporary.

Steps to fix:

  1. Resubmit the invoice.
  2. Wait a few minutes if MyInvois appears delayed.
  3. Contact support if the error persists.

Authentication failed during upload or submission

Error message: 401 or Unauthorized

Where you will encounter it: Import Log, automated import, or Activity Trail.

What it means: An authentication step failed while the upload or submission was being processed.

Steps to fix:

  1. Try the upload or submission again.
  2. Confirm JomeInvoice is authorized as intermediary if the error happens during submission.
  3. Contact support if the error repeats.

Submission failed during processing

Error message: Submission failed during processing.

Where you will encounter it: Activity Trail, usually with Error status.

What it means: A general processing failure occurred, and no specific field-level reason was returned.

Steps to fix:

  1. Resubmit the invoice.
  2. If it fails again, open the Activity Trail or Import Log and copy the exact error text.
  3. Contact support with the invoice number and error text.

Invoice marked Invalid by LHDN

Error message: Invoice INV-0001 status changed to Invalid

Where you will encounter it: Activity Trail after LHDN validation.

What it means: LHDN rejected the invoice. This status line may not include the full reason.

Steps to fix:

  1. Open the Activity Trail at the bottom of the invoice.
  2. Find the detailed rejection reason.
  3. Fix the specific issue listed there.
  4. Resubmit the invoice.

See Resubmitting sales invoices.

Receipt is valid but returned to the Error folder

Error message: The receipt may appear in the Error folder even though the receipt details look valid.

Where you will encounter it: Automated import folders or Import Log.

What it means: The receipt was routed to the wrong processing location or needs to be picked up again.

Steps to fix:

  1. Re-process the receipt if that option is available.
  2. Wait for JomeInvoice to process it again automatically.
  3. Contact support with the receipt details if it stays in the Error folder.

No matching receipt for the invoice request

Error message: No matching receipt found for Invoice INV-0001

Where you will encounter it: Invoice request checks or Import Log.

What it means: JomeInvoice could not find a receipt that matches the submitted invoice request.

Steps to fix:

  1. Confirm the receipt exists.
  2. Check that the receipt reference matches the invoice request.
  3. Re-send the receipt or correct the reference.

Invoice structure is invalid

Error message: The message may mention ArrayItemNotValid, TooFewItems, TaxSubtotal, or InvoiceLine.

Where you will encounter it: Activity Trail after LHDN validation, usually with Invalid status.

What it means: The invoice structure failed LHDN validation. Common causes include no invoice lines, a missing tax breakdown, or a missing classification code.

Steps to fix:

  1. Confirm the invoice has at least one line item.
  2. Confirm every line has a classification code.
  3. Confirm tax totals include the required tax breakdown.
  4. Resubmit. Contact support if the invoice looks complete but the error continues.

If your error is not listed

  1. Copy the exact error text.
  2. Open the Activity Trail for a single invoice, or the Import Log for an upload or automated import.
  3. Check whether the message names a missing field, invalid code, or authorization issue.
  4. Contact JomeInvoice support with the invoice number and exact error text.