Frequently Asked Questions

Answers to frequently asked questions about MyInvois system integration approach

What are the various document statuses within the e-Invoice workflow?

The invoice is stored in the local database with a specific status. The status is an integer value, which could be one of the following:

Status Value Note
Submitted 1 This means the invoice has passed initial structure validations but is still pending additional validations to be completed
Valid 2 The status of a successful invoice validation
Invalid 3 The status of a submitted invoice with validation issues
Cancelled 4 The status of an invoice cancelled by the issuer

What are UBL JSON Value Mappings?

In the UBL JSON, every attribute value should be paired with a key “_” to be compliant with UBL. For Example: value for InvoiceTypeCode should be represented as “_” : “02” which refers to the Credit Note Invoice Type code.

What are the environment URLs?

Env Registration Portal Invoicing Portal System API Identity Service
PROD TBD myinvois.hasil.gov.my api.myinvois.hasil.gov.my TBD
SANDBOX TBD preprod.myinvois.hasil.gov.my preprod-api.myinvois.hasil.gov.my preprod-api.myinvois.hasil.gov.my

Where can taxpayers obtain guidance on Digital Signature?

The comprehensive guidance on Digital Signature creation and validation can be found on the Signature page.

Which login API should be used by the Taxpayer or Intermediary?

Taxpayers should use the Login as Taxpayer System when submitting their own documents. However, taxpayers who act as service providers, submitting documents on behalf of their customers, should use the Login as Intermediary System.

How to obtain Client ID and Client Secret for Sandbox?

Obtaining the Client ID and Client Secret is a required step to access the Sandbox environment, which will be ready by end of April. To obtain your Client ID and Client Secret, please send an email request to sdkmyinvois@hasil.gov.my with the following information:

  1. Taxpayer TIN
  2. Business Registration Number
  3. Company Name
  4. Company Email Address
  5. ERP System Name

What are the available APIs in the Sandbox Environment?

The table below provides details about the APIs available in the Sandbox environment. “Actual APIs” are functional and will return actual API responses, whereas “Stub APIs” are temporary endpoints that return mock API responses. Stubs serve as stand-ins until the actual API implementation is made available.

# API Actual / Stub
1 Login as Taxpayer System Actual
2 Login as Intermediary System Stub
3 Get All Document Types Stub
4 Get Document Type Stub
5 Get Document Type Version Stub
6 Get Notifications Stub
7 Validate Taxpayer’s TIN Actual
8 Submit Documents Actual (limited to Structure Validator only)
9 Cancel Document Stub
10 Reject Document Stub
11 Get Recent Documents Stub
12 Get Submission Stub
13 Get Document Stub
14 Get Document Details Stub
15 Search Documents Stub

How to test APIs via Postman?

For those that are using Postman to do quick tests and see how the APIs should be called both on identity service and actual document exchange, please use the Postman collection e-Invoice SDK.postman_collection.json (right-click to Save ) and use Postman as per the environment below (right-click to Save ).

Environment Postman Env. File
PROD PROD Env.postman_environment.json
SANDBOX Sandbox Env.postman_environment.json

To install the environments file, follow these steps:

  1. On the top right-hand corner, click on the gear icon named Manage Environments Choose Manage environments

  2. A Manage Environments window will pop-up, click on the Import button and select the right environment file and click Ok Choose the File to Import

  3. A new environment named Sandbox Env or Prod Env should be added to the drop down list on the top right corner, click again on the gear icon and click on the newly added environment named Sandbox Env or Prod Env (Based on the environment you want to work on) Environment available

Note: If you encounter an error message “SSL Error: Self signed certificate in certificate chain” (see image below) on PostMan, click “Disable SSL Verification”. Disable SSL Verification

Alternatively, click on the Gear Icon button at the top right-hand corner to open the Settings. Turn off “SSL Certificate Verification” as shown in the image below. SSL Certificate Verification