E-Invoice Object

An E-Invoice object has the following schema:

1. Document Data

ParameterData TypeField ValidationsDescription

Id

String

-

Mandatory. Document reference number used by Supplier for internal tracking purpose.

IssueDate

String

Format:

YYYY-MM-DD

Mandatory. Date of issuance of the e-Invoice

*Note that the date must be the current date

IssueTime

String

Format: HH:mm:ss (24 hr format)

Mandatory. Time of issuance of the e-Invoice

*Note that the time must be the current time

InvoiceTypeCode

Object

-

Mandatory. Invoice Type Code https://sdk.myinvois.hasil.gov.my/codes/e-invoice-types/ Object. Identifies the document type (e.g., invoice, credit note, debit note, refund note, etc.)

DocumentCurrencyCode

String

Enum: ISO code list 4217 alpha-3

Mandatory. Specific currency that is used to represent the monetary value stated in the e-Invoice. Default: "MYR".

https://sdk.myinvois.hasil.gov.my/codes/currencies/

TaxCurrencyCode

String

Enum: ISO code list 4217 alpha-3

Optional. Specific currency that is used to represent the tax monetary value stated in the e-Invoice. Default: "MYR".

https://sdk.myinvois.hasil.gov.my/codes/currencies/

TaxExchangeRate

Object

-

Mandatory. Tax Exchange Rate Object

TaxExchangeRate.CalculationRate

String

MaxLength: 15

Optional, add wherever applicable.Rate at which non-Malaysian currency will be converted into Malaysian Ringgit.

InvoicePeriod

Object

-

Optional. Represents Billing Period Details. Refer to Invoice Period Object

AccountingSupplierParty

Object

-

Mandatory. Accounting Supplier Party Object

AccountingCustomerParty

Object

-

Mandatory. Accounting Customer Party Object

Delivery

Object

-

Mandatory where applicable

InvoiceLine

Array

-

Mandatory. Array of Invoice Line Item Objects

PaymentMeans

Object

-

Conditional. Required in case of Standard Tax Invoice, Standard Credit Note, Standard Debit Note, Simplified Credit Note and Simplified Debit Note. Not required in case of Simplified Tax Invoice. Array of Payment Means Object

PaymentTerms

Object

-

Optional. Payment Terms Object

PrepaidPayment

Object

Optional. Prepaid Payment Object

BillingReference

Array

-

Optional. Supplier’s internal billing reference details to facilitate payment from Buyer. Billing Reference. Object

LegalMonetaryTotal

Object

-

Mandatory. Legal Monetary Total Object

TaxTotal

Array

-

Mandatory. Array of Tax Total Objects

AllowanceCharge

Array

-

Conditional. Required in case of invoice level discount. Allowance Charge Object

AdditionalDocumentReference

Array ()

NA

Mandatory where applicable.

1.1 Invoice Type Code Object

ParameterData TypeField ValidationsDescription

Value

Enum

INVOICE,

CREDIT_NOTE,

DEBIT_NOTE,

REFUND_NOTE, SELF_BILLED_INVOICE, SELF_BILLED_CREDIT_NOTE, SELF_BILLED_DEBIT_NOTE, SELF_BILLED_REFUND_NOTE

Mandatory. Value specifying the functional type of the Invoice. The document type must be equal to one of values from the subset of Enum

1.2 Invoice Period Object

ParameterData TypeField ValidationsDescription

StartDate

Date

yyyy-mm-dd

Max Length: 10

Billing Period Start Date

EndDate

Date

yyyy-mm-dd

Max Length: 10

Billing Period End Date

Description

String

Max Length: 50

Frequency of the invoice (e.g., Daily, Weekly, Biweekly, Monthly, Bimonthly, Quarterly, Half-yearly, Yearly, Others / Not Applicable)

1.3 Payment Terms Object

ParameterData TypeField ValidationsDescription

Note

String

Max Length: 300

Optional. An agreed-upon payment terms and conditions e.g., timing and method of payment

1.4 Prepaid Payment Object

ParameterData TypeField ValidationsDescription

PaidAmount

Amount Object

-

Optional.Monetary value that is prepaid by the Buyer in order to fulfill the financial obligation.

Please add currencyID attribute to the XML element.

PaidDate

Date

yyyy-mm-dd

Max Length: 10

Optional.Date of prepayment received

PaidTime

Time

hh:mm:ss

Max Length: 12

Optional.Time of prepayment received

Id

String

MaxLength: 150

Optional. Unique identifier assigned to trace payment

1.5 Billing Reference Object

ParameterData TypeField ValidationsDescription

AdditionalDocumentReference

Object

-

-

AdditionalDocumentReference.Id

String

MaxLength: 150

Mandatory where applicable. Document number of original invoice / document that is being affected / adjusted. Applicable where a debit note, credit note or refund note e-Invoice is issued. Self-billed versions can only refer to Self-Billed Invoice, and normal versions can only refer to Normal Invoices.

ParameterData TypeField ValidationsDescription

TaxExclusiveAmount

Amount Object

currencyId=’MYR’

Mandatory. Sum of amount payable (inclusive of applicable discounts and charges), excluding any applicable taxes (e.g., sales tax, service tax)

TaxInclusiveAmount

Amount Object

-

Mandatory. Sum of amount payable inclusive of total taxes chargeable (e.g., sales tax, service tax).

PayableAmount

Amount Object

-

Mandatory. Sum of amount payable (inclusive of total taxes chargeable) excluding any amount paid in advance and any rounding adjustment.

LineExtensionAmount

Amount Object

-

Optional. Sum of total amount payable (inclusive of applicable line item and invoice level discounts and charges), excluding any applicable taxes (e.g., sales tax, service tax).

AllowanceTotalAmount

Amount Object

-

Optional. Total amount deducted from the original price of a product or service.

ChargeTotalAmount

Amount Object

-

Optional. Total charge associated with the product or service imposed after tax.

PayableRoundingAmount

Amount Object

-

Optional, where applicable. Rounding amount added to the amount payable.

PrepaidAmount

Amount Object

-

Optional

1.7 Tax Total Object

ParameterData TypeField ValidationsDescription

TaxAmount

Amount Object

-

Mandatory. Total amount of tax payable

TaxSubtotal[]

Array

-

Mandatory. One or more Tax Subtotal objects.

1.7.1 Tax SubTotal Object

ParameterData TypeField ValidationsDescription

TaxableAmount

Amount Object

-

Optional where applicable. Sum of amount chargeable for each tax type

TaxAmount

Amount Object

-

Mandatory. Total amount of tax payable for each tax type

TaxCategory

Object

-

Mandatory. Tax Category Object

1.7.2 Tax Category Object

ParameterData TypeField ValidationsDescription

Id

String

E

Mandatory if tax exemption is applicable

TaxExemptionReason

String

MaxLength: 300

Mandatory if tax exemption is applicable. Description of tax exemption applicable.(e.g., Buyer’s sales tax exemption certificate number, special exemption as per gazette orders, etc.). The input of special characters is not allowed, except for dash (-).

1.8 Document Allowance Charge Object

ParameterData TypeField ValidationsDescription

ChargeIndicator

String

-

Mandatory. An indicator that this AllowanceCharge describes a discount. The value of this tag indicating discount (Allowance) must be ""false""." Else true

Amount

Amount Object

-

Optional. Total amount deducted from the original price of a product or service

Or

Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).

Please add currencyID attribute to the XML element.

AllowanceChargeReason

String

-

Optional. Contain the description of the additional discount applied or description of the additional fees

1.9 Delivery Object

ParameterData TypeField ValidationsDescription

DeliveryParty

Object

-

Optional

Shipment.FreightAllowanceCharge

Object. Shipment Object

-

Optional. Details of Other Charges. Details of additional charges, along with the amount payable

1.9.1 Delivery Party Object

ParameterData TypeField ValidationsDescription

PartyLegalEntity.RegistrationName

String

-

Name of shipping recipient of the products included in the e-Invoice in a commercial transaction

PartyIdentification.Id.Value

String

Max Length: 14

Optional. TIN of the shipping recipient assigned by IRBM

PartyIdentification.Id.SchemeID

String

- NRIC VARCHAR (12 CHAR)

- PASSPORT VARCHAR (12 CHAR)

- BRN VARCHAR (20 CHAR)

- ARMY VARCHAR (12 CHAR)

- SST

- TTX

- TIN

Optional. For businesses: Business registration number For Malaysian individual: MyKad identification number

For non-Malaysian individual: Passport number

PostalAddress

Object. Postal Address Object

-

Optional

1.9.2 Shipment Object

ParameterData TypeField ValidationsDescription

ChargeIndicator

Boolean

-

Optional

AllowanceChargeReason

String

MaxLength: 300

Optional

Amount

Amount

-

Optional

1.10 Additional Document Reference list

ParameterData TypeField ValidationsDescription

AdditionalDocumentReference[0]

-

Mandatory where applicable. Object takes input for Reference Number of Customs Form No.1, 9, etc. Takes input the Unique identifier assigned on the Declaration of Goods Imported.The input of special characters is not allowed.

AdditionalDocumentReference[1]

-

Optional. Free Trade Agreement (FTA)

Information

[For export only, if applicable]. i.e. Details, provisions and requirements outlined within a trade agreement between two or more countries. The input of special characters is not allowed, except for dash (-), open bracket (() and closed bracket ()).

AdditionalDocumentReference[2]

-

Optional. Contains Reference Number of Customs Form No.2 information. i.e. Unique identifier assigned on the Declaration of Goods Exported.The input of special characters is not allowed.

AdditionalDocumentReference[3]

-

Optional. Contains info about Incoterms i.e. A set of international trade rules that define the responsibilities of buyers and suppliers.The input of special characters is not allowed.

1.10.1 Additional Document Reference Object

ParameterData TypeField ValidationsDescription

Id

String

Max Length: 12

Mandatory where applicable. Unique identifier assigned on the Declaration of Goods Imported.The input of special characters is not allowed. OR FTA for Free Trade Agreement

DocumentType

String

CustomsImportForm,

FreeTradeAgreement,

K2

Mandatory where applicable. Invoice counter value. Default: Clear will try to generate the ICV based on configuration.

DocumentDescription

String

Max Length: 300

Mandatory where applicable.(Can be applicable for FTA Agreement) Details, provisions and requirements outlined within a trade agreement between two or more countries. The input of special characters is not allowed, except for dash (-), open bracket (() and closed bracket ()).

1.11 Accounting Supplier Party Object

ParameterData TypeField ValidationsDescription

Party

Object

-

Mandatory. Supplier Party Object.

AdditionalAccountID

String

Max Length: 300

Optional. A unique identification number or code used for validation of a certified exporter by the relevant authority. The input of special characters is not allowed, except for dash (-)

Party.PartyLegalEntity

Object

-

Mandatory. Seller Party Legal Entity Object

Party.PartyLegalEntity.RegistrationName

String

-

Conditional. Name of business or individual who will be the issuer of the e-Invoice.

Party.PartyIdentification

Array

-

Mandatory. Supplier Party Identification Object.

Party.PartyIdentification.Id

Object

-

Mandatory. Supplier Party Identification ID Object.

Party.PartyIdentification.Id.Value

String

Alphanumeric

Mandatory: ID from the below list:

  • TIN (14 CHAR)

  • NRIC (12 CHAR)

  • PASSPORT (12 CHAR)

  • BRN (20 CHAR)

  • ARMY (12 CHAR)

  • SST (17 CHAR)

  • TTX (17 CHAR)

Party.PartyIdentification.Id.SchemeID

String

Enum: TIN/NRIC/PASSPORT/BRN/ARMY

Mandatory ID is one of the list:

  • TIN (14 CHAR)

  • NRIC (12 CHAR)

  • PASSPORT (12 CHAR)

  • BRN (20 CHAR)

  • ARMY (12 CHAR)

  • SST (17 CHAR)

  • TTX (17 CHAR)

Party.Contact

Object

-

Optional

Party.Contact.ElectronicMail

String

MaxLength: 320

Optional

Party.Contact.Telephone

String

MaxLength: 20

Mandatory. Example: +60-123456789

Party.IndustryClassificationCode

String

-

Mandatory

Party.IndustryClassificationCode.Value

String

-

Mandatory. Supplier’s Malaysia Standard Industrial Classification (MSIC) Code. 5-digit numeric code that represent the Supplier’s business nature and activity

Party.IndustryClassificationCode.Name

String

MaxLength: 300

Mandatory. Supplier’s Business Activity Description

Party.PostalAddress

Object. Postal Address Object

-

Mandatory. Seller Postal Address object. Seller address must contain additional number, street name, building number, postal code, city, Neighborhood, country code.

1.11.1 Postal Address Object

ParameterData TypeField ValidationsDescription

AddressLine

Array

Min Size: 1

Max Size: 3

Mandatory.

AddressLine.Line

String

MaxLength: 150

Mandatory. Seller address line - the main address line in an address.

PostalZone

String

Numerals MinLen: 5 MaxLen: 5

Optional. The identifier for an addressable group of properties according to the relevant postal service. Ex 50480

CityName

String

-

The common name of the city, town or village, where the Seller address is located.

CountrySubentityCode

String

-

Mandatory. The state of a country.

Country

Object

-

Mandatory

Country.IdentificationCode

Object

-

Country Identification

Country.IdentificationCode.CountryCode

String

Equal: "MYS"

Mandatory. Seller country code. Country codes in an invoice MUST be coded using ISO code list 3166-1.

1.12 Accounting Customer Party Object

ParameterData TypeField ValidationsDescription

Party

Object

-

Buyer Party Object.

Party.PartyLegalEntity

Object

-

Conditional.

Buyer Party Legal Entity Object

Party.PartyLegalEntity.RegistrationName

String

-

Name of recipient of the e-Invoice in a commercial transaction

Party.PartyIdentification

Array

-

Mandatory. Buyer Party Identification Object.

Party.PartyIdentification.Id

Object

-

Mandatory. Buyer Party Identification ID Object.

Party.PartyIdentification.Id.Value

String

Alphanumeric

Mandatory: ID from the below list:

  • TIN (14 CHAR)

  • NRIC (12 CHAR)

  • PASSPORT (12 CHAR)

  • BRN (20 CHAR)

  • ARMY (12 CHAR)

  • SST (17 CHAR)

  • TTX (17 CHAR)

Party.PartyIdentification.Id.SchemeID

String

Enum: TIN/NRIC/PASSPORT/BRN/ARMY

Mandatory ID is one of the list:

  • TIN (14 CHAR)

  • NRIC (12 CHAR)

  • PASSPORT (12 CHAR)

  • BRN (20 CHAR)

  • ARMY (12 CHAR)

  • SST (17 CHAR)

  • TTX (17 CHAR)

Party.Contact

Object

-

Optional

Party.Contact.ElectronicMail

String

MaxLength: 320

Optional, Default: NA

Party.Contact.Telephone

String

MaxLength: 20

  • Optional, Default: NA

Party.PostalAddress

Object. Postal Address Object

-

Mandatory for B2B Optional for B2C. Buyer Postal Address object. Buyer address must contain additional number, street name, building number, postal code, city, Neighborhood, country code.

1.13 Invoice Line Object

ParameterData TypeField ValidationsDescription

Id

Number

-

Mandatory. Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).

A unique identifier for the individual line within the Invoice.

An Invoice shall have at least one Invoice line (BG-25)

Item

Object

-

Mandatory. Each Invoice line (BG-25) shall contain the Item name (BT-153).

Item.Description

String

MaxLength: 300

MandatoryDetails of products or services being billed as a result of a commercial transaction

Item.CommodityClassification[]

Array

-

Mandatory

Item.CommodityClassification[].ItemClassificationCode

String

MaxLength: 3

Mandatory. Category of products or services being billed as a result of a commercial transaction. More than 1 classification codes can be added for goods / services included in the invoice. OR Product Tariff Code [Only applicable for Goods]

Item.ProductTariffCode

Object

MaxLength: 12

Optional. Only Applicable to Goods. Harmonized System code of the goods under the relevant Sales Tax Orders.The input of special characters is not allowed, except for full stop (.).

Item.OriginCountry.IdentificationCode.CountryCode

String

-

Optional. Code. Description of origin of goods

ItemPriceExtension

Amount Object

-

Mandatory. Amount of each individual item / service within the invoice, excluding any taxes, charges or discounts. I.e. item Price*Quantity

Price

Object

-

Mandatory. Each Invoice line shall contain the Item net price

Price.PriceAmount

Amount Object

-

Mandatory. Price assigned to a single unit of a product or service. (Unit Price)

LineExtensionAmount

Amount Object

-

Mandatory. Total Excluding Tax. Sum of amount payable (inclusive of applicable discounts and charges), excluding any applicable taxes (e.g., sales tax, service tax)

InvoicedQuantity

Object

-

Optional. The quantity of items object

InvoicedQuantity.Quantity

Number

-

Optional. Number of units of a particular product or service in a commercial transaction

InvoicedQuantity.UnitCode

String

This field is following the UN/ECE Recommendation 20, Revision 17 (2021) as per here hence the values should be following that standard.

MaxLength : 3

Optional. Standard unit or system used to measure the product or service.This value should be represented in actual decimal value like 0.15.

AllowanceCharge[]

Array

-

Conditional. Required only if there is invoice line item level allowance.

One or more Invoice level allowance charge objects.

AllowanceCharge[].ChargeIndicator

Boolean

-

Conditional. Required in case of parent context exists.

An indicator that this AllowanceCharge describes a discount. The value of this tag indicating discount (Allowance) must be "false". The value of this tag indicating Charge (Allowance) must be "true".

AllowanceCharge[].AllowanceChargeReason

String

Optional. To contain the description of the line-item discount applied

AllowanceCharge[].Amount

Amount Object

-

Amount deducted from the original price of a product or service.

OR

Charge associated with the product or service imposed after tax

AllowanceCharge[].MultiplierFactorNumeric

Number

Min: 0.00

Max: 100.00

Conditional, Discount Rate or Charge Rate.

MultiplierFactorNumeric. Charge associated with the product or service (be it in the form of percentage (%) or prevailing specified rate) imposed after tax OR

Percentage of deduction from the original price of a product or service

TaxTotal

Object

-

Mandatory when applicable.

TaxTotal.TaxAmount

Amount Object

-

Mandatory. The amount of tax payable.

TaxTotal.TaxSubtotal

Array

-

Mandatory, wherever applicable. Types of taxes that will be applicable

1.3.1 Line Level Tax SubTotal Object

ParameterData TypeField ValidationsDescription

TaxAmount

Amount Object

-

Mandatory, The amount of tax payable.

TaxableAmount

Amount Object

-

Total amount of tax exempted for sales tax or service tax purposes.

Please add currencyID attribute to the XML element.

TaxCategory

Object

-

Mandatory. Line Level Tax Category Object

Percent

String

-

Optional. The appropriate tax rate as a decimal. i.e. dividing the tax rate percent by 100. For example, an 8% tax rate is represented as 0.08.

1.13.2 Line Level Tax Category Object

ParameterData TypeField ValidationsDescription

Id

String

MaxLength: 2

Mandatory. Code

Type of taxes that will be applicable. Use ID: E for Exemption

TaxExemptionReason

String

Max Length: 300

Description of tax exemption applicable.(e.g., Buyer’s sales tax exemption certificate number, special exemption as per gazette orders, etc.). The input of special characters is not allowed, except for dash (-).

Please add currencyID attribute to the XML element.

1.14 Payment Means Object

ParameterData TypeField ValidationsDescription

PaymentMeansCode

String

Link

Max Length: 2

Optional. Chosen mechanism through which funds are transferred from buyer to supplier (e.g., cash, cheque, bank transfer, credit card, debit card, e-Wallet/ Digital Wallet, etc.)

PayeeFinancialAccount

Object

-

Optional. Payee Financial Account Payment Note object. Default: null

PayeeFinancialAccount.Id

MultiLingualString

MaxLength: 150

Optional. The Supplier’s bank account number to facilitate payment by Buyer

Last updated