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.| Mode | Target | OTP in the wizard | Use it to |
|---|---|---|---|
developer | ZATCA Developer (sandbox) portal | Dummy โ any placeholder value is accepted | Test the onboarding flow end to end without touching a real ZATCA account. |
simulation (default) | ZATCA Simulation portal | Real โ must be generated from the supplierโs FATOORA Simulation account | Rehearse the production onboarding with genuine certificates and compliance checks before going live. |
-
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.Set State โ processing
Moves the silo entry into a visible โin progressโ state so operator dashboards reflect that onboarding is underway.
Register Party
Validates the partyโs identity (one of
CRN, MOM, MLS, 700, SAG, or OTH) and full address and publishes a public onboarding link in the meta section of the party. The supplier follows this link to complete the wizard below.Wait for Authorization
Pauses until the supplier finishes the wizard and a Compliance CSID exists. It then submits the mandatory compliance sample invoices and exchanges the Compliance CSID for the Production CSID.
- Template
- Code
Saudi Arabia register party workflow
Publishes the ZATCA onboarding link and provisions the partyโs production CSID.
The onboarding wizard
The link published by Register Party opens a hosted wizard the supplier completes once: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.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.
Enter the OTP
The supplier pastes the OTP and reviews the recap of the details that will be sent to ZATCA.
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
Unregistering a party from ZATCA 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.- Template
- Code
Saudi Arabia unregister party workflow
Removes the partyโs registration and stored credentials from Invopopโs internal systems.
FAQ
What do I need to onboard a party with ZATCA?
What do I need to onboard a party with ZATCA?
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, orOTH, and - a complete national address (building number, postal code, district, street, additional street, and country).
1000 standard / 0100 simplified / 1100 both), branch name, registered address, and business category โ plus the FATOORA OTP.How long is the OTP valid?
How long is the OTP valid?
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.
What is the difference between Developer and Simulation sandbox modes?
What is the difference between Developer and Simulation sandbox modes?
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.Can I test in Simulation without a real FATOORA account?
Can I test in Simulation without a real FATOORA account?
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.
๐ธ๐ฆ Invopop resources for Saudi Arabia
๐ธ๐ฆ Invopop resources for Saudi Arabia
| Compliance | Compliance timeline |
| Apps | |
| Guides | Registration Clearance & Reporting |
| FAQ | Saudi Arabia FAQ |
| GOBL | |
| GitHub | gobl.sa.zatca |
Participate in our community
Ask and answer questions about invoicing in Saudi Arabia โ