E-Invoice Object
An E-Invoice object has the following schema:
1. Document Data
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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". |
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". |
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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. |
1.6 Legal Monetary Total Object
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
TaxAmount | Amount Object | - | Mandatory. Total amount of tax payable |
TaxSubtotal[] | Array | - | Mandatory. One or more Tax Subtotal objects. |
1.7.1 Tax SubTotal Object
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
ChargeIndicator | Boolean | - | Optional |
AllowanceChargeReason | String | MaxLength: 300 | Optional |
Amount | Amount | - | Optional |
1.10 Additional Document Reference list
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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:
|
Party.PartyIdentification.Id.SchemeID | String | Enum: TIN/NRIC/PASSPORT/BRN/ARMY | Mandatory ID is one of the list:
|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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:
|
Party.PartyIdentification.Id.SchemeID | String | Enum: TIN/NRIC/PASSPORT/BRN/ARMY | Mandatory ID is one of the list:
|
Party.Contact | Object | - | Optional |
Party.Contact.ElectronicMail | String | MaxLength: 320 | Optional, Default: NA |
Party.Contact.Telephone | String | MaxLength: 20 |
|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
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
Parameter | Data Type | Field Validations | Description |
---|---|---|---|
PaymentMeansCode | String | 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