Questions about otp,CSR, invoice hash

I have begun working on integrating with the ZATCA system using the API Integration Sandbox, and I would like to seek your clarification on a few questions:

  1. OTP Usage: The OTP is generated from the Fatoora portal. Is it used just once to generate the CSID, or do we need a new OTP each time we generate a CSID?
  2. CSR Configuration: from where can I create a valid CSR
  3. InvoiceHash: I created invoice hash from the SDK but I got [{“type”=>“ERROR”, “code”=>“invalid-invoice-hash”, “category”=>“INVOICE_HASHING_ERRORS”, “message”=>“The invoice hash API body does not match the (calculated) Hash of the XML”, “status”=>“ERROR”}],
    “status”=>“ERROR”}
  4. Transaction Types: Please describe how we can specify the type of transaction (e.g., invoice, debit note, credit note, etc.).
  5. CSID Renewal: Could you clarify when the renewal of the CSID is needed and when it expires?

Dear @islamalghoul ,

Thank you for reaching out,

Kindly find below the answers of your questions:

For every CCISD you need to generate a new OTP.

You can find an example in the SDK in /Data/input directory

  • Is it simplified or standard invoice? if its simplified, you need to sign the invoice.
  • Did you modify the invoice after generating the hash? If you modify the invoice, you need to generate a new hash
  • Did you use Fatoora -invoiceRequest -invoice [invoice path] command to generate the invoice body? The mentioned command ensures that the request body matches the submitted invoice.

You can refer to the detailed guideline for a clear explanation

In fatoora portal, you can navigate to " view list of solutions and devises" to view the certificate expiry date.

Finally, for more information, you can access the Educatioal Libray.

Thanks,