diff --git a/apps/saudi-arabia.mdx b/apps/saudi-arabia.mdx index fd79983b..c83c269e 100644 --- a/apps/saudi-arabia.mdx +++ b/apps/saudi-arabia.mdx @@ -40,6 +40,7 @@ import FAQ from '/snippets/faqs/sa/composers/app-zatca.mdx'; * **Clearance** of standard tax invoices (B2B, B2G). * **Reporting** of simplified tax invoices (B2C). * ZATCA onboarding: OTP, compliance checks, and production CSID provisioning. + * **Multi-branch onboarding**: a single VAT number can hold several registrations, one per [supplier identity](/guides/sa-zatca-registration#multi-branch-entities), each with its own CSID and invoice chain. * UBL 2.1 with KSA extensions, ICV/PIH chaining, and the Phase 2 QR code. Check out the guides below to get started: @@ -58,7 +59,7 @@ import FAQ from '/snippets/faqs/sa/composers/app-zatca.mdx'; Registration - Validate the party, stake the VAT claim, and publish the ZATCA onboarding link the supplier follows. + Validate the party, stake the claim on its VAT number and identity, and publish the ZATCA onboarding link the supplier follows. Removes the party and its stored credentials from Invopop's internal systems. diff --git a/changelog/overview.mdx b/changelog/overview.mdx index 86b05680..875caebc 100644 --- a/changelog/overview.mdx +++ b/changelog/overview.mdx @@ -5,6 +5,14 @@ sidebarTitle: "Overview" mode: "center" --- + + +## New features + +**Saudi Arabia multi-branch registration.** A single VAT number can now hold multiple ZATCA registrations, one per supplier identity (`CRN`, `MOM`, `MLS`, `700`, `SAG`, `OTH`). A business whose branches share a VAT number but hold different commercial registrations can onboard each branch with its own CSID and its own invoice chain, and invoices route to the matching registration by VAT number and identity. See the [registration guide](/guides/sa-zatca-registration#multi-branch-entities). + + + ## New features diff --git a/guides/sa-zatca-registration.mdx b/guides/sa-zatca-registration.mdx index b453db4b..345e0fc1 100644 --- a/guides/sa-zatca-registration.mdx +++ b/guides/sa-zatca-registration.mdx @@ -46,7 +46,7 @@ Registration spans two parts: a workflow you run against the party document, and Sets the state of the silo entry as "Processing". - 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. + Validates the party's tax ID, [supplier identity](#multi-branch-entities), and full address, stakes the claim on that VAT number and identity, then publishes a public onboarding link in the meta section of the party. The supplier follows this link to complete the onboarding wizard. 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. @@ -113,10 +113,10 @@ The link published by **Register Party** provides an onboarding wizard for the s 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. +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. It targets a single registration, the one that matches the party's VAT number and [supplier identity](#multi-branch-entities), so unregistering one branch leaves the other registrations under the same VAT number untouched. - 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. + This action is intended for **testing in sandbox**, for example to re-onboard the same VAT number and identity during development. It is **not** for live environments; unregistering at ZATCA is always done by the tax payer in the FATOORA portal. @@ -131,6 +131,23 @@ Invopop also provides an unregister action that removes the party and its stored +## Multi-branch entities + +A business can run several branches that all share the same VAT number while each branch onboards its own device or system. A single VAT number therefore often needs more than one registration, and Invopop supports this through the GOBL identities field. + +Every party registered with ZATCA is linked to a unique CSID certificate that identifies both its VAT number and its branch. Invopop gives each unique combination of VAT number and supplier identity its own CSID certificate, allowing them to act independently and through their own invoice chain. + +Set the identity on the [`org.Party`](https://docs.gobl.org/draft/org/party) document as an entry in `identities` whose `type` is one of: + +| `type` | Identity | +|---|---| +| `CRN` | Commercial Registration Number | +| `MOM` | Momrah license (Ministry of Municipality, Rural Affairs and Housing) | +| `MLS` | MLSD license (Ministry of Human Resources and Social Development) | +| `700` | 700 number (unified national number) | +| `SAG` | Sagia license (Ministry of Investment, formerly SAGIA) | +| `OTH` | Other identifier | + ## FAQ