1.1.4 • Published 12 months ago

einvoice-sdk-nodejs v1.1.4

Weekly downloads
-
License
ISC
Repository
github
Last release
12 months ago

einvoice-sdk-nodejs

A Node.js SDK for interacting with e-invoice LHDN @ IRB MALAYSIA APIs using JSON format data, including obtaining tokens, submitting documents, and managing e-invoice data.

Features

Provides a set of functions to cater to the following needs. You may still need to plan the flow based on your business requirements:

  • Obtain tokens as a taxpayer or intermediary
  • Validate TIN using different ID type
  • Submit documents
  • Get document details
  • Cancel valid documents by supplier
  • Utility functions for JSON to Base64 conversion, SHA256 hash calculation, and generating certificate hashed parameters and hashed documents
  • Automatic API recall in case of hitting the API rate limit

Usage

Create a .env file in the root directory and add your configuration variables:

CLIENT_ID_VALUE=your-client-id
CLIENT_SECRET_1_VALUE=your-client-secret
PREPROD_BASE_URL=your-preprod-base-url
X509Certificate_VALUE=your-x509-certificate
X509SubjectName_VALUE=your-x509-subject-name
X509IssuerName_VALUE=your-x509-issuer-name
X509SerialNumber_VALUE=your-x509-serial-number
PRIVATE_KEY_FILE_PATH=example.key
PRIVATE_CERT_FILE_PATH=exampleCert.crt
const einvois = require('./einvoice-sdk.js');

# Note: You may refer getCertificatesHashedParams() on how to generate hashed signed documents.
# let hashed_payload = {
#     "documents": [
#          {
#             "format": "JSON",
#             "documentHash": <sha256_encoded_signed_documents>,
#             "codeNumber": <assign accordingly>,
#             "document": <base64_encoded_signed_documents>
#         } 
        
#     ]
# }

try {
  const token = await einvois.getTokenAsTaxPayer();
  const documentSubmissionResponse = await einvois.submitDocument(hashed_payload.documents, token.access_token);
  console.log(documentSubmissionResponse);
} catch (error) {
  console.error(error);
}

Contributing / License

Author: Syukran Soleh This project is open-source and licensed under the ISC License. Contributions are welcome—please follow the guidelines for contributions and feel free to submit issues or pull requests.

1.1.4

12 months ago

1.1.3

12 months ago

1.1.2

12 months ago

1.1.1

12 months ago

1.1.0

12 months ago

1.0.0

12 months ago