Welcome to the system documentation. Select a topic from the sidebar to learn more.

Quick Start

Get up and running quickly with our step-by-step guides.

Get Started

Video Tutorials

Watch our video tutorials to see the system in action.

Watch Videos
Additional Zatca Utiilities - Documentation

ZATCA Tools API Documentation

Handles ZATCA (Saudi Arabian tax authority) compliance operations including CSR generation, Invoice Signing, Hashing, and QRCode Generation.

Authentication: All endpoints require JWT Bearer authentication with a valid TenantId claim.

Sign Invoice

POST
/api/ZatcaTools/signinvoice

Generates a digitally signed invoice according to ZATCA e-invoicing regulations.

Request Body
{ "InvoiceXml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2...", "Certificate": "MIID3jCCA4SgAwIBAgITEQAAOAPF90Ajs/xcXwABAAA4AzAKBggqhkjOPQQDAjBiMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNnb3YxFzAVBgoJkiaJk/IsZAEZFgdleHRnYXp0MRswGQYDVQQDExJQUlpFSU5WT0lDRVNDQTQtQ0EwHhcNMjQwMTExMDkxOTMwWhcNMjkwMTA5MDkxOTMwWjB1MQswCQYDVQQGEwJTQTEmMCQGA1UEChMdTWF4aW11bSBTcGVlZCBUZWNoIFN1cHBseSBMVEQxFjAUBgNVBAsTDVJpeWFkaCBCcmFuY2gxJjAkBgNVBAMTHVRTVC04ODY0MzExNDUtMzk5OTk5OTk5OTAwMDAzMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEoWCKa0Sa9FIErTOv0uAkC1VIKXxU9nPpx2vlf4yhMejy8c02XJblDq7tPydo8mq0ahOMmNo8gwni7Xt1KT9UeKOCAgcwggIDMIGtBgNVHREEgaUwgaKkgZ8wgZwxOzA5BgNVBAQMMjEtVFNUfDItVFNUfDMtZWQyMmYxZDgtZTZhMi0xMTE4LTliNTgtZDlhOGYxMWU0NDVmMR8wHQYKCZImiZPyLGQBAQwPMzk5OTk5OTk5OTAwMDAzMQ0wCwYDVQQMDAQxMTAwMREwDwYDVQQaDAhSUlJEMjkyOTEaMBgGA1UEDwwRU3VwcGx5IGFjdGl2aXRpZXMwHQYDVR0OBBYEFEX+YvmmtnYoDf9BGbKo7ocTKYK1MB8GA1UdIwQYMBaAFJvKqqLtmqwskIFzVvpP2PxT+9NnMHsGCCsGAQUFBwEBBG8wbTBrBggrBgEFBQcwAoZfaHR0cDovL2FpYTQuemF0Y2EuZ292LnNhL0NlcnRFbnJvbGwvUFJaRUludm9pY2VTQ0E0LmV4dGdhenQuZ292LmxvY2FsX1BSWkVJTlZPSUNFU0NBNC1DQSgxKS5jcnQwDgYDVR0PAQH/BAQDAgeAMDwGCSsGAQQBgjcVBwQvMC0GJSsGAQQBgjcVCIGGqB2E0PsShu2dJIfO+xnTwFVmh/qlZYXZhD4CAWQCARIwHQYDVR0lBBYwFAYIKwYBBQUHAwMGCCsGAQUFBwMCMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwMwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwIDSAAwRQIhALE/ichmnWXCUKUbca3yci8oqwaLvFdHVjQrveI9uqAbAiA9hC4M8jgMBADPSzmd2uiPJA6gKR3LE03U75eqbC/rXA==", "PrivateKey": "-----BEGIN EC PRIVATE KEY-----\r\nMHQCAQEEIOT0rOBpNfGQm8X1/oh/8XPcpcdrY9laNEeykofv3LXfoAcGBSuBBAAK\r\noUQDQgAEqGQX/NggA5+Jaac2DnFtAT1pVcsjvxYj0H85Bq+ei7nHSEgaPuAmWV69\r\ndxK/FdsxWm3xT+dddbQb9FWkdCpDhQ==\r\n-----END EC PRIVATE KEY-----", "Environment": "NonProduction", "InvoiceUUID": "123e4567-e89b-12d3-a456-426614174000", "VatNo": "399999999900003" }
Request Attributes
Attribute Type Required Description
InvoiceXml string Yes Base64-encoded XML invoice content
Certificate string Yes Decoded Binary security Token (Certificate)
PrivateKey string Yes Private key in PEM format
Environment string Yes Zatca Integration Environment (NonProduction, Simulation, Production)
InvoiceUUID string Yes Invoice Unique Id (UUID)
VatNo string Yes VAT Number
Success Response
{ "SignedInvoice": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2ljQ29tcG9uZW50cy0yIiB4bWxuczpleHQ9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkV4dGVuc2lvbkNvbXBvbmVudHMtMiIgeG1sbnM6cWR0PSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpRdWFsaWZpZWREYXRhdHlwZXMtMiIgeG1sbnM6dWR0PSJ1cm46dW46dW5lY2U6dW5jZTp1ZHQ6eHNkOkRhdGF0eXBlc1NjaGVtYUltcGwtMiIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQogIDxjYmM6SUQ+MTIzNDU2Nzg5MDwvY2JjOklEPg0KICA8Y2JjOklzc3VlRGF0ZT4yMDIzLTAxLTAxPC9jYmM6SXNzdWVEYXRlPg0KICA8Y2JjOkludm9pY2VUeXBlQ29kZT4zODA8L2JjOkludm9pY2VUeXBlQ29kZT4NCiAgPGNiYzpOb3RlPkV4YW1wbGUgSW52b2ljZTwvY2JjOk5vdGU+DQogIDxjYWM6QWNjb3VudGluZ1N1cHBsaWVyUGFydHk+DQogICAgPGNiYzpJRD5TVVBQTEk8L2NiYzpJRD4NCiAgICA8Y2JjOk5hbWU+U3VwcGxpZXIgTmFtZTwvY2JjOk5hbWU+DQogIDwvY2FjOkFjY291bnRpbmdTdXBwbGllclBhcnR5Pg0KICA8Y2FjOkFjY291bnRpbmdDdXN0b21lclBhcnR5Pg0KICAgIDxjYmM6SUQ+Q1VTVDwvY2JjOklEPg0KICAgIDxjYmM6TmFtZT5DdXN0b21lciBOYW1lPC9jYmM6TmFtZT4NCiAgPC9jYWM6QWNjb3VudGluZ0N1c3RvbWVyUGFydHk+DQogIDxjYWM6VGF4VG90YWw+DQogICAgPGNiYzpUYXhBbW91bnQgY3VycmVuY3lJRD0iRVVSIj4xMDAuMDA8L2NiYzpUYXhBbW91bnQ+DQogIDwvY2FjOlRheFRvdGFsPg0KICA8Y2FjOkxlZ2FsTW9uZXRhcnlUb3RhbD4NCiAgICA8Y2JjOkxpbmVFeHRlbnNpb25BbW91bnQgY3VycmVuY3lJRD0iRVVSIj4xMDAwLjAwPC9jYmM6TGluZUV4dGVuc2lvbkFtb3VudD4NCiAgPC9jYWM6TGVnYWxNb25ldGFyeVRvdGFsPg0KPC9JbnZvaWNlPg==", "status": "success", "message": "" }
Error Response
{ "status": "error", "message": "Invalid certificate format" }
Response Attributes
Attribute Type Description
SignedInvoice string Signed invoice in Base64
status string Success status (success/error)
message string Reason for the Error (if any)
cURL Example
curl -X POST \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "InvoiceXml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2... (truncated)", "Certificate": "MIID3jCCA4SgAwIBAgITEQAAOAPF90Ajs/xcXwABAAA4AzAKBggqhkjOPQQDAjBiMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNnb3YxFzAVBgoJkiaJk/IsZAEZFgdleHRnYXp0MRswGQYDVQQDExJQUlpFSU5WT0lDRVNDQTQtQ0EwHhcNMjQwMTExMDkxOTMwWhcNMjkwMTA5MDkxOTMwWjB1MQswCQYDVQQGEwJTQTEmMCQGA1UEChMdTWF4aW11bSBTcGVlZCBUZWNoIFN1cHBseSBMVEQxFjAUBgNVBAsTDVJpeWFkaCBCcmFuY2gxJjAkBgNVBAMTHVRTVC04ODY0MzExNDUtMzk5OTk5OTk5OTAwMDAzMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEoWCKa0Sa9FIErTOv0uAkC1VIKXxU9nPpx2vlf4yhMejy8c02XJblDq7tPydo8mq0ahOMmNo8gwni7Xt1KT9UeKOCAgcwggIDMIGtBgNVHREEgaUwgaKkgZ8wgZwxOzA5BgNVBAQMMjEtVFNUfDItVFNUfDMtZWQyMmYxZDgtZTZhMi0xMTE4LTliNTgtZDlhOGYxMWU0NDVmMR8wHQYKCZImiZPyLGQBAQwPMzk5OTk5OTk5OTAwMDAzMQ0wCwYDVQQMDAQxMTAwMREwDwYDVQQaDAhSUlJEMjkyOTEaMBgGA1UEDwwRU3VwcGx5IGFjdGl2aXRpZXMwHQYDVR0OBBYEFEX+YvmmtnYoDf9BGbKo7ocTKYK1MB8GA1UdIwQYMBaAFJvKqqLtmqwskIFzVvpP2PxT+9NnMHsGCCsGAQUFBwEBBG8wbTBrBggrBgEFBQcwAoZfaHR0cDovL2FpYTQuemF0Y2EuZ292LnNhL0NlcnRFbnJvbGwvUFJaRUludm9pY2VTQ0E0LmV4dGdhenQuZ292LmxvY2FsX1BSWkVJTlZPSUNFU0NBNC1DQSgxKS5jcnQwDgYDVR0PAQH/BAQDAgeAMDwGCSsGAQQBgjcVBwQvMC0GJSsGAQQBgjcVCIGGqB2E0PsShu2dJIfO+xnTwFVmh/qlZYXZhD4CAWQCARIwHQYDVR0lBBYwFAYIKwYBBQUHAwMGCCsGAQUFBwMCMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwMwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwIDSAAwRQIhALE/ichmnWXCUKUbca3yci8oqwaLvFdHVjQrveI9uqAbAiA9hC4M8jgMBADPSzmd2uiPJA6gKR3LE03U75eqbC/rXA==", "PrivateKey": "-----BEGIN EC PRIVATE KEY-----\r\nMHQCAQEEIOT0rOBpNfGQm8X1/oh/8XPcpcdrY9laNEeykofv3LXfoAcGBSuBBAAK\r\noUQDQgAEqGQX/NggA5+Jaac2DnFtAT1pVcsjvxYj0H85Bq+ei7nHSEgaPuAmWV69\r\ndxK/FdsxWm3xT+dddbQb9FWkdCpDhQ==\r\n-----END EC PRIVATE KEY-----", "Environment": "NonProduction", "InvoiceUUID": "123e4567-e89b-12d3-a456-426614174000", "VatNo": "399999999900003" }' \
"https://your-api-url/api/ZatcaTools/signinvoice"

Sign Invoice With Hash

POST
/api/ZatcaTools/signinvoiceWithHash

Generates a digitally signed invoice with hash value according to ZATCA e-invoicing regulations.

Request Body
{
"InvoiceXml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2... (truncated)"
}
Request Attributes
Attribute Type Required Description
InvoiceXml string Yes Base64-encoded XML invoice content
Success Response
{
"InvoiceHash": "NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==",
"SignedInvoice": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2ljQ29tcG9uZW50cy0yIiB4bWxuczpleHQ9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW... (truncated)",
"message": "",
"status": "success"
}
Error Response
{
"status": "error",
"message": "Invalid XML format"
}
Response Attributes
Attribute Type Description
InvoiceHash string Invoice Hash
SignedInvoice string Signed invoice in Base64
message string Message if Error
status string Success or Error status
cURL Example
curl -X POST \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "InvoiceXml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2..." }' \
"https://your-api-url/api/ZatcaTools/signinvoiceWithHash"

Generate CSR

POST
/api/ZatcaTools/generatecsr

Creates a Certificate Signing Request (CSR) for ZATCA compliance certificate registration.

Request Body
{ "commonName": "TST-000000001", "serialNo": "1-TST|2-TST|3-ed22f1d8-e6a2-1118-9c58-d9a8f11e445f", "organizationIdentifier": "399999999900003", "organizationUnitName": "AL JUBAIL", "organizationName": "Maximum Speed tech Pvt Limited", "countryName": "SA", "invoiceType": "0100", "locationAddress": "ENAB3405", "businessCategory": "Retail", "pemformat": true, "etype": "NonProduction" }
Request Attributes
Attribute Type Required Description
commonName string Yes Common Name that can identify the pos unit
serialNo string Yes Device Serial No
organizationIdentifier string Yes VAT No
organizationUnitName string Yes Unit Name
organizationName string Yes Organisation name as appeared in Vat Certificate
countryName string Yes Country Code (SA for Saudi Arabia)
invoiceType string Yes Invoice Type (0100- Simplified only, 1000 Standard Only, 1100 Both)
locationAddress string Yes Short Address
businessCategory string Yes Business Category
pemformat boolean No PEM format true or false (default: true)
etype string Yes Environment Type (NonProduction, Production, Simulation)
Success Response
{ "csr": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0NCk1JSUNFekNDQWJrQ0FRQXdmVEVMTUFrR0ExVUVCaE1DVTBFeEVqQVFCZ05WQkFzTUNVRk1JRXBWUWtGSlRERXgNCk1DOEdBMVVFQ2d3b1JYTjBZV0pzYVhOb2JXVnVkQ0JLVlVSRlNDQkJUQzFCUkU5VlFWUWdRMjl0YldWeVkybGgNCmJERW5NQ1VHQTFVRUF3d2VWRk5VTFRJd05UVXhNalk0T0RjdE16RXdNRGc0T1RFME9UQXdNREF6TUZZd0VBWUgNCktvWkl6ajBDQVFZRks0RUVBQW9EUWdBRUlXaGJ4MWZEaEF5NXpKcDRrRUQ3bEpKUVlKRVlxNWNPcGxhdGlDVGcNCnNWangweTcyNEJ4Vno1d0ZsbGFLYWg0dVZHZUs1UFZlaWFHQklhbWh6ZloyVEtDQ......", "privatekey": "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tXHJcbk1IUUNBUUVFSU9UMHJPQnBOZkdRbThYMS9vaC84WFBjcGNkclk5bGFORWV5a29mdjNMWGZvQWNHQlN1QkJBQUtcclxub1VRRFFnQUVxR1FYL05nZ0E1K0phYWMyRG5GdEFUMXBWY3NqdnhZajBIODVCcStlaTduSFNFZ2FQdUFtV1Y2OVxyXG5keEsvRmRzeFdtM3hUK2RkZGJRYjlGV2tkQ3BEaFE9PVxyXG4tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0t", "status": "success", "message": "" }
Error Response
{ "status": "error", "message": "Incorrect VAT Number" }
Response Attributes
Attribute Type Description
csr string CSR in base64
privatekey string Private key in base64
status string CSR Generation status
message string Message if Error
cURL Example
curl -X POST \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "commonName": "TST-000000001", "serialNo": "1-TST|2-TST|3-ed22f1d8-e6a2-1118-9c58-d9a8f11e445f", "organizationIdentifier": "399999999900003", "organizationUnitName": "AL JUBAIL", "organizationName": "Maximum Speed tech Pvt Limited", "countryName": "SA", "invoiceType": "0100", "locationAddress": "ENAB3405", "businessCategory": "Retail", "pemformat": true, "etype": "NonProduction" }' \
"https://your-api-url/api/ZatcaTools/generatecsr"

Invoice Hash

POST
/api/ZatcaTools/InvoiceHash

Calculates the hash value for an invoice according to ZATCA specifications.

Request Body
{
"InvoiceXml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2...... (truncated)"
}
Request Attributes
Attribute Type Required Description
InvoiceXml string Yes Invoice in base64
Success Response
{
"invoiceHash": "NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==",
"status": "success",
"message": ""
}
Error Response
{
"status": "error",
"message": "Invalid XML format"
}
Response Attributes
Attribute Type Description
invoiceHash string Invoice Hash
status string success or Error in hashing
message string message if Error
cURL Example
curl -X POST \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"InvoiceXml\": \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxJbnZvaWNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpJbnZvaWNlLTIiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpjYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkJhc2...... (truncated)\"
}" \
"https://your-api-url/api/ZatcaTools/InvoiceHash"

Compliance Certificate

POST
/api/ZatcaTools/ComplianceCertificate

Get Compliance Certificate from ZATCA.

Request Body
{
"RegistrationType": "NonProduction",
"Token": "123345",
"CSR": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0NCk1JSUNFekNDQWJrQ0FRQXdmVEVMTUFrR0ExVUVCaE1DVTBFeEVqQVFCZ05WQkFzTUNVRk1JRXBWUWtGSlRERXgNCk1DOEdBMVVFQ2d3b1JYTjBZV0pzYVhOb2JXVnVkQ0JLVlVSRlNDQkJUQzFCUkU5VlFWUWdRMjl0YldWeVkybGgNCmJERW5NQ1VHQTFVRUF3d2VWRk5VTFRJd05UVXhNalk0T0RjdE16RXdNRGc0T1RFME9UQXdNREF6TUZZd0VBWUgNCktvWkl6ajBDQVFZRks0RUVBQW9EUWdBRUlXaGJ4MWZEaEF5NXpKcDRrRUQ3bEpKUVlKRVlxNWNPcGxhdGlDVGcNCnNWangweTcyNEJ4Vno1d0ZsbGFLYWg0dVZHZUs1UFZlaWFHQklhbWh6ZloyVEtDQ...... (truncated)"
}
Request Attributes
Attribute Type Required Description
RegistrationType string Yes Registration Stage (NonProduction, Simulation, Production)
Token string Yes Token Received from Simulation or Production Portal
CSR string Yes CSR in base64
Success Response
{
"csid": "TUlJQ09qQ0NBZUNnQXdJQkFnSUdBWmR6akRxL01Bb0dDQ3FHU000OUJBTUNNQlV4RXpBUkJnTlZCQU1NQ21WSmJuWnZhV05wYm1jd0hoY05NalV3TmpFMU1USXlOREUwV2hjTk16QXdOakUwTWpFd01EQXdXakI5TVFzd0NRWURWUVFHRXdKVFFURVNNQkFHQTFVRUN3d0pRVXdnU2xWQ1FVbE1NVEV3THdZRFZRUUtEQ2hGYzNSaFlteHBjMmh0Wlc1MElFcFZSRVZJSUVGTUxVRkVUMVZCVkNCRGIyMXRaWEpqYVdGc01TY3dKUVlEVlFRRERCNVVVMVF0TWpBMU5URXlOamc0Tnkwek1UQXdPRGc1TVRRNU1EQXdNRE13VmpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBQ2dOQ0FBUWhhRnZIVjhPRURMbk1tbmlRUVB1VWtsQmdrUmlybHc2bVZxMklKT0N4V1BIVEx2YmdIRlhQbkFXV1ZvcHFIaTVVWjRyazlWNkpvWUVocWFITjluWk.... (truncated)",
"certificate": "MIICOjCCAeCgAwIBAgIGAZdzjDq/MAoGCCqGSM49BAMCMBUxEzARBgNVBAMMCmVJbnZvaWNpbmcwHhcNMjUwNjE1MTIyNDE0WhcNMzAwNjE0MjEwMDAwWjB9MQswCQYDVQQGEwJTQTESMBAGA1UECwwJQUwgSlVCQUlMMTEwLwYDVQQKDChFc3RhYmxpc2htZW50IEpVREVIIEFMLUFET1VBVCBDb21tZXJjaWFsMScwJQYDVQQDDB5UU1QtMjA1NTEyNjg4Ny0zMTAwODg5MTQ5MDAwMDMwVjAQBgcqhkjOPQIBBgUrgQQACgNCAAQhaFvHV8...... (truncated)",
"requestId": "1234567890123",
"secret": "TwymFN5JJaoJwYcU+2gvVmI72m2Pz5cMKXIqNoHw82Q=",
"status": "success",
"message": ""
}
Error Response
{
"status": "error",
"message": "Invalid CSR format"
}
Response Attributes
Attribute Type Description
csid string Zatca CSID-base64(Binary security Token)
certificate string Decoded CSID
requestId string Request Id
secret string Secret
status string CSID Generation status
message string Message if Error
cURL Example
curl -X POST \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"RegistrationType\": \"NonProduction\",
\"Token\": \"123345\",
\"CSR\": \"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0NCk1JSUNFekNDQWJrQ0FRQXdmVEVMTUFrR0ExVUVCaE1DVTBFeEVqQVFCZ05WQkFzTUNVRk1JRXBWUWtGSlRERXgNCk1DOEdBMVVFQ2d3b1JYTjBZV0pzYVhOb2JXVnVkQ0JLVlVSRlNDQkJUQzFCUkU5VlFWUWdRMjl0YldWeVkybGgNCmJERW5NQ1VHQTFVRUF3d2VWRk5VTFRJd05UVXhNalk0T0RjdE16RXdNRGc0T1RFME9UQXdNREF6TUZZd0VBWUgNCktvWkl6ajBDQVFZRks0RUVBQW9EUWdBRUlXaGJ4MWZEaEF5NXpKcDRrRUQ3bEpKUVlKRVlxNWNPcGxhdGlDVGcNCnNWangweTcyNEJ4Vno1d0ZsbGFLYWg0dVZHZUs1UFZlaWFHQklhbWh6ZloyVEtDQ...... (truncated)\"
}" \
"https://your-api-url/api/ZatcaTools/ComplianceCertificate"

Production Certificate

POST
/api/ZatcaTools/ProductionCertificate

Get production certificate from ZATCA.

Request Body
{
"RegistrationType": "NonProduction",
"CSID": "TUlJQ09qQ0NBZUNnQXdJQkFnSUdBWmR6akRxL01Bb0dDQ3FHU000OUJBTUNNQlV4RXpBUkJnTlZCQU1NQ21WSmJuWnZhV05wYm1jd0hoY05NalV3TmpFMU1USXlOREUwV2hjTk16QXdOakUwTWpFd01EQXdXakI5TVFzd0NRWURWUVFHRXdKVFFURVNNQkFHQTFVRUN3d0pRVXdnU2xWQ1FVbE1NVEV3THdZRFZRUUtEQ2hGYzNSaFlteHBjMmh0Wlc1MElFcFZSRVZJSUVGTUxVRkVUMVZCVkNCRGIyMXRaWEpqYVdGc01TY3dKUVlEVlFRRERCNVVVMVF0TWpBMU5URXlOamc0Tnkwek1UQXdPRGc1TVRRNU1EQXdNRE13VmpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBQ2dOQ0FBUWhhRnZIVjhPRURMbk1tbmlRUVB1VWtsQmdrUmlybHc2bVZxMklKT0N4V1BIVEx2YmdIRlhQbkFXV1ZvcHFIaTVVWjRyazlWNkpvWUVocWFITjluWk.... (truncated)",
"RequestId": "1234567890123",
"Secret": "TwymFN5JJaoJwYcU+2gvVmI72m2Pz5cMKXIqNoHw82Q="
}
Request Attributes
Attribute Type Required Description
RegistrationType string Yes Registration type (NonProduction, Simulation, Production)
CSID string Yes Zatca CSID-base64(Binary security Token)
RequestId string Yes Request Id received at the compliance stage
Secret string No Secret received at compliance stage
Success Response
{
"Secret": "TwymFN5JJaoJwYcU+2gvVmI72m2Pz5cMKXIqNoHw82Q=",
"RequestId": "1234567890123",
"Certificate": "MIICOjCCAeCgAwIBAgIGAZdzjDq/MAoGCCqGSM49BAMCMBUxEzARBgNVBAMMCmVJbnZvaWNpbmcwHhcNMjUwNjE1MTIyNDE0WhcNMzAwNjE0MjEwMDAwWjB9MQswCQYDVQQGEwJTQTESMBAGA1UECwwJQUwgSlVCQUlMMTEwLwYDVQQKDChFc3RhYmxpc2htZW50IEpVREVIIEFMLUFET1VBVCBDb21tZXJjaWFsMScwJQYDVQQDDB5UU1QtMjA1NTEyNjg4Ny0zMTAwODg5MTQ5MDAwMDMwVjAQBgcqhkjOPQIBBgUrgQQACgNCAAQhaFvHV8OEDLnMmniQQPuUklBgkRirlw6mVq2IJOCxWPHTLvbgHFXPnAWWVopqHi5UZ4rk9V6JoYEhqaHN9nZMo4G2MIGzMAwGA1UdEwEB/wQCMAAwgaIGA1UdEQSBmjCBl6SBlDCBkTE7MDkGA1UEBAwyMS1UU1R8Mi1UU1R8My1lZDIyZjFkOC1lNmEyLTExMTgtOWM1OC1kOWE4ZjExZTQ0NWYxHzAdBgoJkiaJk/IsZAEBDA8zOTk5OTk5OTk5MDAwMDMxDTALBgNVBAwMBDAxMDAxETAPBgNVBBoMCEVOQUIzNDA1MQ8wDQYDVQQPDAZSZXRhaWwwCgYIKoZIzj0EAwIDSAAwRQIgcFVgOSxyfqqiLtYOgn0tidQ2OC75N2dUt/H6RRSu1rUCIQCEe8T0vXaKghGKAEwjmhA3ytN99O2czDa7ZZ8ixMYlhw==",
"PCSID": "TUlJQ09qQ0NBZUNnQXdJQkFnSUdBWmR6akRxL01Bb0dDQ3FHU000OUJBTUNNQlV4RXpBUkJnTlZCQU1NQ21WSmJuWnZhV05wYm1jd0hoY05NalV3TmpFMU1USXlOREUwV2hjTk16QXdOakUwTWpFd01EQXdXakI5TVFzd0NRWURWUVFHRXdKVFFURVNNQkFHQTFVRUN3d0pRVXdnU2xWQ1FVbE1NVEV3THdZRFZRUUtEQ2hGYzNSaFlteHBjMmh0Wlc1MElFcFZSRVZJSUVGTUxVRkVUMVZCVkNCRGIyMXRaWEpqYVdGc01TY3dKUVlEVlFRRERCNVVVMVF0TWpBMU5URXlOamc0Tnkwek1UQXdPRGc1TVRRNU1EQXdNRE13VmpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBQ2dOQ0FBUWhhRnZIVjhPRURMbk1tbmlRUVB1VWtsQmdrUmlybHc2bVZxMklKT0N4V1BIVEx2YmdIRlhQbkFXV1ZvcHFIaTVVWjRyazlWNkpvWUVocWFITjluWk1vNEcyTUlHek1Bd0dBMVVkRXdFQi93UUNNQUF3Z2FJR0ExVWRFUVNCbWpDQmw2U0JsRENCa1RFN01Ea0dBMVVFQkF3eU1TMVVVMVI4TWkxVVUxUjhNeTFsWkRJeVpqRmtPQzFsTm1FeUxURXhNVGd0T1dNMU9DMWtPV0U0WmpFeFpUUTBOV1l4SHpBZEJnb0praWFKay9Jc1pBRUJEQTh6T1RrNU9UazVPVGs1TURBd01ETXhEVEFMQmdOVkJBd01CREF4TURBeEVUQVBCZ05WQkJvTUNFVk9RVUl6TkRBMU1ROHdEUVlEVlFRUERBWlNaWFJoYVd3d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ2NGVmdPU3h5ZnFxaUx0WU9nbjB0aWRRMk9DNzVOMmRVdC9INlJSU3UxclVDSVFDRWU4VDB2WGFLZ2hHS0FFd2ptaEEzeXROOTlPMmN6RGE3Wlo4aXhNWWxodz09",
"status": "success",
"message": ""
}
Error Response
{
"status": "error",
"message": "Invalid CSID"
}
Response Attributes
Attribute Type Description
Secret string Secret
RequestId string Request Id
Certificate string Decoded PSID
PCSID string Zatca PSID-base64(Binary security Token)
status string CSID Generation status
message string Message if Error
cURL Example
curl -X POST \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"RegistrationType\": \"NonProduction\",
\"CSID\": \"TUlJQ09qQ0NBZUNnQXdJQkFnSUdBWmR6akRxL01Bb0dDQ3FHU000OUJBTUNNQlV4RXpBUkJnTlZCQU1NQ21WSmJuWnZhV05wYm1jd0hoY05NalV3TmpFMU1USXlOREUwV2hjTk16QXdOakUwTWpFd01EQXdXakI5TVFzd0NRWURWUVFHRXdKVFFURVNNQkFHQTFVRUN3d0pRVXdnU2xWQ1FVbE1NVEV3THdZRFZRUUtEQ2hGYzNSaFlteHBjMmh0Wlc1MElFcFZSRVZJSUVGTUxVRkVUMVZCVkNCRGIyMXRaWEpqYVdGc01TY3dKUVlEVlFRRERCNVVVMVF0TWpBMU5URXlOamc0Tnkwek1UQXdPRGc1TVRRNU1EQXdNRE13VmpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBQ2dOQ0FBUWhhRnZIVjhPRURMbk1tbmlRUVB1VWtsQmdrUmlybHc2bVZxMklKT0N4V1BIVEx2YmdIRlhQbkFXV1ZvcHFIaTVVWjRyazlWNkpvWUVocWFITjluWk.... (truncated)\",
\"RequestId\": \"1234567890123\",
\"Secret\": \"TwymFN5JJaoJwYcU+2gvVmI72m2Pz5cMKXIqNoHw82Q=\"
}" \
"https://your-api-url/api/ZatcaTools/ProductionCertificate"
}