How to handle connection interruption with ZATCA after invoice submission (TaskCanceledException / SocketException / Gateway Timeout)?

I would like to understand the correct procedure when a connection issue occurs after sending an invoice to ZATCA, such as:

  • TaskCanceledException

  • SocketException

  • Gateway Timeout

  • or any similar network failure

My main questions are:

  1. Is the invoice considered received by ZATCA even if the system didn’t return a response due to the connection interruption?

  2. What is the correct handling procedure from a technical standpoint?

    • Should the application retry the submission automatically?

    • Or should we query ZATCA to verify the invoice status using UUID / Invoice Hash?

  3. In which cases should we contact ZATCA support to confirm whether the invoice was received and processed?

I want to ensure we follow the correct approach to avoid duplicate invoices or missing reporting.

1 Like