EGS not appear in device_list

I created CSR and private key and when use the OTP that i get from fatoora i get the ICSR Successfully but device_list is always empty and when try to report the invoice i get error in (Invalid signed properties hashing, SignedProperties with id=‘xadesSignedProperties’) while every thing is working fine in developer mode … this is my csr config temp <?php

// 2.2.2 Profile specification of the Cryptographic Stamp identifiers. & CSR field contents / RDNs.
return <<<TEXT

------------------------------------------------------------------

Default section for “req” command options

------------------------------------------------------------------

[req]

Password for reading in existing private key file

input_password = SET_PRIVATE_KEY_PASS

Prompt for DN field values and CSR attributes in ASCII

prompt = no
utf8 = no

Section pointer for DN field options

distinguished_name = my_req_dn_prompt

Extensions

req_extensions = v3_req

[ v3_req ]
#basicConstraints=CA:FALSE
#keyUsage = digitalSignature, keyEncipherment

Production or Testing Template (TSTZATCA-Code-Signing - ZATCA-Code-Signing)

1.3.6.1.4.1.311.20.2 = ASN1:UTF8String:SET_PRODUCTION_VALUE
subjectAltName=dirName:dir_sect

[ dir_sect ]

EGS Serial number (1-SolutionName|2-ModelOrVersion|3-serialNumber)

SN = SET_EGS_SERIAL_NUMBER

VAT Registration number of TaxPayer (Organization identifier [15 digits begins with 3 and ends with 3])

UID = SET_VAT_REGISTRATION_NUMBER

Invoice type (TSCZ)(1 = supported, 0 not supported) (Tax, Simplified, future use, future use)

title = 0100

Location (branch address or website)

registeredAddress = SET_BRANCH_LOCATION

Industry (industry sector name)

businessCategory = SET_BRANCH_INDUSTRY

------------------------------------------------------------------

Section for prompting DN field values to create “subject”

------------------------------------------------------------------

[my_req_dn_prompt]

Common name (EGS TaxPayer PROVIDED ID [FREE TEXT])

commonName = SET_COMMON_NAME

Organization Unit (Branch name)

organizationalUnitName = SET_BRANCH_NAME

Organization name (Tax payer name)

organizationName = SET_TAXPAYER_NAME

ISO2 country code is required with US as default

countryName = SA
TEXT;

Dear @AhmedTarekYA

Regarding the devices not being appeared in the device list, you need to take the production CSID for the device to show.
Below on boarding steps:

1- Get the compliance CSID
2- Compliance checks
3- Request compliance CSID

After successfully calling the production CSID API the device will appear in the device list.

Also, you can follow the below steps to solve your signing problem:

1-After submitting the Certificate Signing Request (CSR) via the Compliance Request CSID API, you will receive a BinaryToken and a secret.
2-Decode the BinaryToken using a base64 decoder. The decoded value will be the x.509 certificate.
3-Navigate to the SDK directory: SDK/Data/Certificates/Cert.pem.
4-Replace the contents of the Cert.pem file with the x.509 certificate obtained from the decoded BinaryToken.
5-Insert the newly generated private key into the ec-secp256k1-priv-key.pem file.
6-if you use JAVA SDK, run the following command: fatoora -sign -invoice “invoice.xml”.
else the .Net SDK, run the following command: fatooranet sign -invoice “invoice.xml”
7-The invoice will now be signed and can be successfully submitted during the compliance checks phase via the Compliance Invoice API.

Do the same steps with production CSID to sign and submit e invoices to the reporting APIs.

If you are still facing issue, kindly reach out to the below emails:
E-invoicing@zatca.gov.sa
sp_support@zatca.gov.sa

Thank you.

1 Like

end point to Request compliance CSID ?

error is Invalid signed properties hashing, SignedProperties with id=‘xadesSignedProperties’ in simulation mode but all is ok in test mode

I have onboarded my EGS unit to ZATCA with below flow

Make the CSR using SDK
Call the compliance CSID API
Call production CSID API by authorizing the response of Compliance CSID API

My issue is that the onboarding process was successfully completed with API calls, but my EGS does not appear in fatoora registered device list?