Skip to main content
Registration is required for any Saudi VAT number that will clear or report invoices through Invopop. It is a prerequisite for the clearance and reporting flow.

Sandbox environments

In sandbox, the Register Party stepโ€™s configuration selects which ZATCA portal to onboard against. Production enrollments ignore this and always use the live endpoint.
ModeTargetOTP in the wizardUse it to
developerZATCA Developer (sandbox) portalDummy โ€” any placeholder value is acceptedTest the onboarding flow end to end without touching a real ZATCA account.
simulation (default)ZATCA Simulation portalReal โ€” must be generated from the supplierโ€™s FATOORA Simulation accountRehearse the production onboarding with genuine certificates and compliance checks before going live.
The two modes target different ZATCA sandbox endpoints and differ mainly in how the OTP is treated:
  • Developer is the lightweight sandbox. ZATCA does not validate the OTP, so the value the supplier types in the onboarding wizard is a dummy. You can register any party in developer mode, but ZATCA only accepts invoices issued from its fixed test VAT number, 399999999900003.
  • Simulation mirrors production. The OTP must be a real one-time password the supplier generates from their FATOORA Simulation portal, exactly as they would in production.
In both sandbox modes the supplier still completes the same wizard, only the OTP requirement changes.

How it works

Registration spans two parts: a workflow you run against the party document, and a hosted onboarding wizard the supplier completes to provide the FATOORA OTP.
1

Set State โ†’ Processing

Sets the state of the silo entry as โ€œProcessingโ€.
2

Register supplier with ZATCA

Validates the partyโ€™s identity and full address, then publishes a public onboarding link in the meta section of the party. The supplier follows this link to complete the onboarding wizard.
3

Wait for ZATCA certificate upload

Pauses until the supplier uploads the compliance CSID. It will then submit the mandatory compliance sample invoices and swaps the Compliance CSID with the Production CSID.
4

Set State โ†’ Registered

Sets the state of the silo entry as โ€œRegisteredโ€.

ZATCA register party workflow

Publishes the ZATCA onboarding link and provisions the partyโ€™s production CSID.

The onboarding wizard

The link published by Register Party provides an onboarding wizard for the supplier to complete:
1

Company details

The supplier confirms the legal name and provides the invoice type (1000 standard, 0100 simplified, or 1100 both), branch name, registered address, and business category. These values feed the certificate request.
2

Get the OTP from FATOORA

The supplier signs in to the FATOORA portal and generates a One-Time Password for the EGS unit. The wizard shows the relevant FATOORA screens.
3

Enter the OTP

The supplier pastes the OTP and reviews the recap of the details that will be sent to ZATCA.
4

Confirm details

Here you will make sure all the details you entered were correct. Click โ€œBackโ€ if you need to change anything.
5

Submit

Upon submit, Invopop requests the Compliance CSID, and stores the credentials. This unblocks the Wait for Authorization step in the workflow.
The invoice type chosen here determines which compliance samples Invopop submits: 1000 runs standard tax invoices, credit notes, and debit notes; 0100 runs the simplified equivalents; 1100 runs both sets.

Unregistration (sandbox only)

Unregistering a party from ZATCA in production environment is handled by the tax payers, directly in the FATOORA portal, signing in with their own credentials. Invopop also provides an unregister action that removes the party and its stored credentials from Invopopโ€™s internal systems only. It does not touch the partyโ€™s registration with ZATCA.
This action is intended for testing in sandbox โ€” for example, to re-onboard the same VAT during development. It is not for live environments; unregistering at ZATCA is always done by the tax payer in the FATOORA portal.

ZATCA unregister supplier workflow (sandbox only)

Removes the partyโ€™s registration and stored credentials from Invopopโ€™s internal systems.

FAQ

A workspace with the Saudi Arabia app enabled, and an org/party (the supplier) carrying:
  • a Saudi VAT registration number,
  • an identity of type CRN, MOM, MLS, 700, SAG, or OTH, and
  • a complete national address (building number, postal code, district, street, additional street, and country).
During the hosted onboarding wizard the supplier also provides the legal name, invoice type (1000 standard / 0100 simplified / 1100 both), branch name, registered address, and business category โ€” plus the FATOORA OTP.
1 hour from when it is generated in the FATOORA portal. If it expires, generate a new one and re-enter it in the wizard.
In Developer mode the OTP is not validated (any placeholder works) and you can only send invoices from ZATCAโ€™s fixed test VAT 399999999900003. In Simulation mode the OTP must be real and you can send from any registered party.
No. Simulation requires a real FATOORA account and taxpayer to generate a valid OTP. Use Developer mode if you want to test the flow without a real account.
More available in our Saudi Arabia FAQ section.

Participate in our community

Ask and answer questions about invoicing in Saudi Arabia โ†’