{
"status": "ok"
}
curl --location --request GET 'https://zylalabs.com/api/13423/malaysia+myinvois+e-invoice+validator+api/29078/health+check' --header 'Authorization: Bearer YOUR_API_KEY'
{
"valid": true,
"wellFormed": true,
"inputFormat": "xml",
"documentType": "01",
"version": "1.1",
"errorCount": 0,
"warningCount": 4,
"findings": [
{
"level": "info",
"ruleId": "MY-STRUCT-XSD",
"text": "Document is valid against the official UBL 2.1 Invoice XSD.",
"location": null,
"occurrences": 1
},
{
"level": "warning",
"ruleId": "MY-MATH-TAX-INCLUSIVE",
"text": "TaxInclusiveAmount (1436.50) != TaxExclusiveAmount + total TaxAmount (1524.13).",
"location": "cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount",
"occurrences": 1
},
{
"level": "info",
"ruleId": "MY-SIG-CERT",
"text": "Embedded signing certificate: subject '1.2.840.113549.1.9.1=#1616616e61732e6140666776686f6c64696e67732e636f6d,2.5.4.5=#1309443132333435363738,CN=Dummy,OU=Test Unit eInvoice,2.5.4.97=#130c433239373032363335303630,O=Dummy,C=MY', issuer 'CN=Trial LHDNM Sub CA V1,OU=Terms of use at http://www.posdigicert.com.my,O=LHDNM,C=MY'.",
"location": "ds:X509Certificate",
"occurrences": 1
},
{
"level": "info",
"ruleId": "MY-SIG-EKU",
"text": "Certificate carries the Document Signing EKU (1.3.6.1.4.1.311.10.3.12).",
"location": "ds:X509Certificate",
"occurrences": 1
},
{
"level": "warning",
"ruleId": "MY-SIG-CERT-VALIDITY",
"text": "Signing certificate is outside its validity window (Thu Jun 06 02:52:36 UTC 2024 .. Fri Sep 06 02:52:36 UTC 2024): CertificateExpiredException.",
"location": "ds:X509Certificate",
"occurrences": 1
},
{
"level": "info",
"ruleId": "MY-SIG-CERTDIGEST",
"text": "XAdES SigningCertificate/CertDigest matches SHA-256 of the embedded certificate.",
"location": "xades:SigningCertificate",
"occurrences": 1
},
{
"level": "info",
"ruleId": "MY-SIG-ISSUERSERIAL",
"text": "XAdES IssuerSerial serial number matches the embedded certificate.",
"location": "xades:IssuerSerial",
"occurrences": 1
},
{
"level": "info",
"ruleId": "MY-SIG-DOC-DIGEST",
"text": "Document digest VERIFIES: recomputed SHA-256 over the minified document (UBLExtensions and cac:Signature removed, inclusive Canonical XML) matches the signed DigestValue.",
"location": "ds:Reference[@URI='']",
"occurrences": 1
},
{
"level": "warning",
"ruleId": "MY-SIG-PROPS-DIGEST",
"text": "SignedProperties digest MISMATCH: signed DigestValue Tc9oNX8EuNQohWVDZeaPOHmeBU5tuwVdwIRyfltnTPw= does not match the recomputed SHA-256 (exclusive b0VXjdpRrf5OQt96gzaFM1e8I9/+1qC5uFfI8eK8zjY= / inclusive vjjXqMNokPtL5qvfFj4irmcxCjxyVuirMVVe3KCKXBw=).",
"location": "ds:Reference[@URI='#id-xades-signed-props']",
"occurrences": 1
},
{
"level": "warning",
"ruleId": "MY-SIG-VALUE",
"text": "SignatureValue does NOT verify: RSA-SHA256 over the canonicalized SignedInfo does not match the embedded certificate's public key.",
"location": "ds:SignatureValue",
"occurrences": 1
},
{
"level": "info",
"ruleId": "MY-SIG-TRUST",
"text": "Trust chain to a Malaysian (LHDN/Pos Digicert) CA is NOT verified here; this requires the LHDNM CA/root list and, for full assurance, an online LHDN check. Structure and the embedded-certificate crypto are checked offline.",
"location": null,
"occurrences": 1
}
]
}
curl --location --request POST 'https://zylalabs.com/api/13423/malaysia+myinvois+e-invoice+validator+api/29079/validate+e-invoice' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '
urn:oasis:names:specification:ubl:dsig:enveloped:xades
urn:oasis:names:specification:ubl:signature:1
urn:oasis:names:specification:ubl:signature:Invoice
not(//ancestor-or-self::ext:UBLExtensions)
not(//ancestor-or-self::cac:Signature)
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
2024-07-23T16:31:06Z
KKBSTyiPKGkGl1AFqcPziKCEIDYGtnYUTQN4ukO7G40=
CN=Trial LHDNM Sub CA V1, OU=Terms of use at http://www.posdigicert.com.my, O=LHDNM, C=MY
162880276254639189035871514749820882117
XML-INV12345
2024-07-23
00:40:00Z
01
MYR
MYR
2024-07-01
2024-07-31
Monthly
151891-1981
L1
CustomsImportForm
FTA
FreeTradeAgreement
Sample Description
L1
K2
L1
urn:oasis:names:specification:ubl:signature:Invoice
urn:oasis:names:specification:ubl:dsig:enveloped:xades
CPT-CCN-W-211111-KL-000002
46510
Supplier's TIN
Supplier's BRN
NA
NA
Kuala Lumpur
50480
14
Lot 66
Bangunan Merdeka
Persiaran Jaya
MYS
Supplier's Name
+60123456789
[email protected]
Buyer's TIN
Buyer's BRN
NA
NA
Kuala Lumpur
50480
14
Lot 66
Bangunan Merdeka
Persiaran Jaya
MYS
Buyer's Name
+60123456780
[email protected]
Recipient's TIN
Recipient's BRN
Kuala Lumpur
50480
14
Lot 66
Bangunan Merdeka
Persiaran Jaya
MYS
Recipient's Name
1234
true
Service charge
100
01
1234567890
Payment method is cash
E12345678912
1.00
2024-07-23
00:30:00Z
false
Sample Description
100
true
Service charge
100
87.63
87.63
87.63
01
OTH
1436.50
1436.50
1436.50
1436.50
1436.50
0.30
1436.50
1234
1
1436.50
false
Sample Description
0.15
100
true
Sample Description
0.10
100
0
1460.50
0
6.00
E
Exempt New Means of Transport
OTH
Laptop Peripherals
MYS
9800.00.0010
003
17
100
'
注册后,每个开发者都会被分配一个个人 API 访问密钥,这是一个唯一的字母和数字组合,用于访问我们的 API 端点。要使用 马来西亚MyInvois电子发票验证器 API 进行身份验证,只需在 Authorization 标头中包含您的 bearer token。
| 标头 | 描述 |
|---|---|
授权
|
必需
应为 Bearer access_key. 订阅后,请查看上方的"您的 API 访问密钥"。
|
无长期承诺。随时升级、降级或取消。 免费试用包括最多 50 个请求。
(年度计费可节省 2 个月 🎉)
GET 健康检查端点返回一个简单的 JSON 对象,指示服务状态,而 POST 验证电子发票端点返回一个详细的 JSON 验证报告,其中包含“valid”“wellFormed”“documentType”“errorCount”和“findings”等字段,并附有特定规则编码的消息
POST验证电子发票响应中的关键字段包括“valid”(布尔), “wellFormed”(布尔), “documentType”(字符串), “errorCount”(整数), “warningCount”(整数)和“findings”(详细验证结果的数组)
返回的数据是JSON格式的 结构包括一个具有验证状态字段 错误和警告计数的顶级对象 还有一个发现数组 每个发现包含“级别”“规则ID”“文本”和“位置”等详细信息
GET健康检查提供服务状态,而POST验证电子发票则提供全面的验证结果,包括与UBL 2.1 XSD的合规性、必填字段、LHDN代码列表以及XAdES签名检查
API支持POST验证电子发票端点的XML(application/xml)和JSON(application/json)格式。格式是根据请求体自动检测的
响应数据被组织成一个包含键值对的JSON对象 "findings" 字段包含一个对象数组 每个对象详细说明了特定的验证问题 按严重性(信息 警告 错误)和相关规则ID分类
典型用例包括验证电子发票是否符合马来西亚法规,确保格式和结构正确,以及检查总额和税务计算的数学准确性
用户可以分析“有效”和“格式正确”字段来确定发票合规性。“发现”数组提供了可操作的见解以纠正问题,而“错误计数”和“警告计数”有助于优先处理必要的调整
不 验证器是无钥匙的 无LHDN账户 无数字证书 无令牌 你发布发票 你得到一个JSON报告 没有任何内容提交给LHDN
UBL 2.1 XML(内容类型:application/xml)和MyInvois JSON(application/json)格式会被自动检测并且相同的LHDN规则适用于两者