Desko POSZATCA e-invoicing

ZATCA onboarding for Desko POS

Connect your Saudi store to ZATCA’s Fatoora platform for Phase 2 e-invoicing. Complete the business profile, register the invoicing solution, finish compliance checks, and confirm that the production certificate is issued before using the integration.

This guide is for Desko POS. For the separate invoicing product, see Desko Invoice ZATCA settings.

Before you start

RequirementWhat to check
VAT registration certificateRegistered legal name and 15-digit VAT registration number. The shorter TIN is a different field.
Commercial registration or applicable licenceRegistration number and its correct type. A unified 700 number is different from a CR number.
Saudi National AddressStreet, 4-digit building number, district, city and 5-digit postal code for this branch.
Fatoora accessThe taxpayer or authorised representative can sign in and generate an onboarding OTP.
Desko POS accessActive ZATCA add-on, an up-to-date app, and a member signed in with a PIN and relevant ZATCA permissions.

Use the registered legal name on invoices, even when the store trades under another name. Cross-check the VAT certificate, CR/licence and National Address. Do not guess the postal code from a neighbourhood or copy the sample values below.

Production and simulation are separate

Production uses the taxpayer’s Fatoora account. Simulation is a separate test environment arranged with your administrator or Desko support. Do not enter simulation OTPs into a production store.

1. Open ZATCA setup

  1. Open Menu > Billing & Subscription > Active Addons.
  2. Find the active ZATCA add-on and select Onboard.
  3. On ZATCA e-invoicing, review the store and VAT number, then select Start ZATCA setup for first-time onboarding.

If the add-on or button is missing, check the subscription and member permissions with your administrator. Configuration and invoice submission can require different permissions.

Desko POS ZATCA screen before setup, showing Setup needs attention and Start ZATCA setup.
Current POS screen rendered with sample data. Layout may vary with app version and device size.

2. Generate a fresh Fatoora OTP

Open the official Fatoora portal and sign in as the correct taxpayer. Choose Onboard New Solution Unit/Device, request the number of OTPs needed for the units you are onboarding, and generate the codes. Enter an unused code in Desko within one hour of generation.

The onboarding code is different from a login verification code. Generate it after gathering the business details. Never publish an OTP in a screenshot or share your portal password in a support ticket.

For the portal screens and login process, use ZATCA’s illustrated Fatoora Portal User Manual.

3. Complete the onboarding form

On ZATCA Onboarding, fill the CSR configuration and OTP. CSR means certificate signing request: it identifies the business and invoicing unit to ZATCA.

Form fieldEnter
Common NameThe invoicing unit’s name or identifier, provided by your administrator.
Country CodeSA.
Functionality MapSimplified, Standard, or Both, matching the invoice flows the unit will issue. Confirm the selection with your administrator.
Industry / Business CategoryThe actual business activity, for example Food Services.
Location AddressThe registered location of this invoicing unit.
Organization IdentifierThe 15-digit VAT registration number.
Organization NameThe registered business name.
Serial NumberThe unique invoicing unit identifier provided by your administrator. Do not reuse another store’s identifier.
Organization UnitThe branch or organisation unit name.
ZATCA OTPAn unused onboarding code for the correct taxpayer and environment.

Select Submit, review the confirmation dialog, and select Confirm. Allow the request to finish and refresh the setup screen if needed.

Desko POS onboarding form with organisation, invoicing unit, functionality and OTP fields using example values.
Sample values only. The OTP is intentionally empty; use your own fresh code.

4. Save the registered address and complete compliance

After the onboarding request is saved, Registered business address becomes available. Fill every field using the branch’s verified documents:

  • Street, building number, district, city and postal code.
  • Registration type and the matching registration number. CRN means commercial registration; 700 means unified number. Other supported types are MOM, MLS, SAG and OTH. Use the applicable identifier and type.

Select Save settings. If the production certificate is not ready, select Retry compliance and certificate steps. This resumes setup using the saved compliance credentials; a new OTP is normally unnecessary for this stage.

Desko runs the samples required by the selected functionality. Both includes standard and simplified invoices, credit notes and debit notes: six samples. The final step obtains and saves the production certificate.

Registration is not the same as readiness

A saved request or issued compliance certificate does not mean production setup is complete. Confirm Ready to issue invoices and Production certificate: Issued. Resolve any address, certificate, renewal or invoice-history message shown.

5. Choose how invoices are reported

In Invoice reporting, choose a mode and select Save settings:

ModeWhat to do
ManualUse the bill’s ZATCA action to report simplified invoices and monitor outstanding submissions. Signing or printing alone does not confirm reporting.
AutomaticSet a delay from 0 to 60 minutes. Zero makes the invoice eligible immediately; processing still depends on connectivity and the submission service. Monitor failed or pending invoices.

Standard invoices require clearance before printing. Simplified invoices are signed before printing and must be reported within 24 hours, regardless of reporting mode.

Ready Desko POS ZATCA screen with certificate issued, registered address and automatic invoice reporting selected.
Example ready screen with automatic reporting selected. Your saved mode may be Manual; check it explicitly.

6. Submit and verify the first real invoice

  1. Complete a genuine sale with correct items, VAT and seller details. Use simulation for made-up transactions.
  2. Open Menu > Sales > Bills and open the bill.
  3. In ZATCA actions, select Submit to ZATCA if manual submission is required.
  4. Wait for the response and refresh the bill status.
  5. Confirm acceptance. REPORTED confirms simplified reporting; CLEARED confirms standard clearance. Review warnings as well as errors.

A QR code, a signed status or a successful print does not prove authority acceptance. Keep the accepted invoice, original signed document and QR intact. Use the appropriate refund or credit-note process to correct an issued invoice rather than editing it.

Troubleshooting

What you seeNext step
Invalid-OTPCheck taxpayer, environment, code type, unused status and one-hour validity. Generate a fresh onboarding code if needed.
Missing address or registration detailsComplete Registered business address, save, and retry remaining setup steps.
Compliance certificate issued, production certificate not readyResolve the displayed error and use Retry compliance and certificate steps. Do not start first-time onboarding again.
Network error or timeoutRefresh status before repeating. A request may have completed remotely; support may need to investigate an uncertain certificate result.
Existing production certificateUse renewal. First-time onboarding must not overwrite it.
Accepted with warningsInvestigate the warning. A QR timestamp warning requires support to check the signing service; changing the postal code does not fix it.
Rejected or pending invoiceReview the saved response. Retry the same saved invoice through Desko rather than creating a duplicate bill.
Invoice history must be reconciledContact your administrator. Do not reset counters or hashes to bypass the hold.

Certificate renewal

Use Renew certificate and enter a fresh renewal OTP from Fatoora. Finish outstanding invoices first. Desko checks readiness and holds new issuance during renewal; Resume renewal continues a resumable attempt. Contact support for an uncertain outcome, lost key, replacement device or changed business identity.

Renewal retains invoice history and counters. Do not use first-time setup to replace a working certificate.

Official references and support

For support, include the store name, invoice number, time and visible error. Share redacted screenshots; exclude OTPs, portal passwords and certificate secrets.

Last reviewed: 11 October 2026. Screenshots are rendered from the current POS views using documentation-only sample data.

APPEARANCE