RiyalPlus — User Manual
Step-by-step guides for every product in RiyalPlus. The platform prepares Saudi compliance filings from your own documents: the annual Zakat & income tax declaration (Form 10) with financial statements, plus Transfer Pricing, Withholding Tax, VAT returns, RETT, UBO, Excise Tax, the Qawaem financial-statement deposit, and the Verify+ document check. RiyalPlus prepares the filing pack; you submit it through the relevant government portal (ZATCA, or the Ministry of Commerce via the Saudi Business Center).
One principle runs through everything: every number traces back to your uploaded documents. RiyalPlus never invents a figure. Where the regulation requires a judgment — a market valuation, a sugar concentration, a discount rate — you assert the value and the system records your basis for it.
Getting started
Creating your account
Your account is where your filing entities, cases, and points balance live.
- Open the sign-up page and enter your email; confirm it from the verification email.
- Set a password and complete your personal profile (name and language).
- New accounts receive a one-time opening grant of points so you can run your first filings before buying more.
Adding a filing entity
A filing entity is one company you file for — its registration details, ownership, and activities. Every product works against a filing entity.
- Open Filing entities in the sidebar and add an entity.
- Provide the commercial registration (CR) number — RiyalPlus can look the record up in the commercial registry and prefill the details — or upload the articles of association, or enter the details manually.
- Review the name, CR number, VAT number, capital, legal form, and ownership split (Saudi, GCC, non-Saudi percentages), then save.
See also: Glossary "Filing entity", "Ownership structure"
Reviewing details read from your documents
When you provide a registration document, RiyalPlus extracts the key details for you to confirm — it never silently trusts its own reading.
- Open the review panel after the document is read.
- Check the extracted ownership, capital, legal form, and related parties against the document.
- Correct anything that doesn't match, then confirm to save.
Understanding points
RiyalPlus is pay-per-use. There are no subscriptions. Prices are in points; 1 point = SAR 50.
- What's free: creating cases and containers, catalogs and registers, previews and validation screens, the UBO identification, the CbCR scope check.
- When you're charged: at the moment a product does its paid work — uploading a trial balance (Zakat & tax case), creating a TP case, unlocking a WHT year, marking a VAT / Excise / RETT filing as filed, confirming a UBO annual confirmation, or activating an add-on (Verify+, Qawaem).
- Current prices: Zakat & tax case (Form 10 + financial statements) 36 points · Transfer Pricing year 30 · WHT year 10 (+5 for automatic extraction) · VAT period 30 · Excise period 30 · RETT transaction 30 · UBO annual confirmation 30 · Qawaem deposit add-on 15 · Verify+ add-on 10.
- If your balance can't cover a charge, you'll see a top-up prompt (RP-2033). Nothing is charged until you have enough points.
See also: FAQ "What are points?"; User manual "Points and billing"
Settings: language and profile
- Open Settings.
- Switch between Arabic and English, or update your profile and notification preferences at any time.
Zakat & income tax declaration (Form 10)
Creating a case
A case is one declaration — one filing entity, one fiscal period. Creating it is free; the price (36 points) is locked at creation and charged when you upload the trial balance.
- Open Zakat & Tax Declaration and select New case.
- Pick the filing entity (if your account has more than one, you must choose — RiyalPlus never guesses which company a filing belongs to).
- Enter the period start and end dates and confirm the shareholder details.
- Create the case. Fiscal years 2023 and earlier are not supported — they fall under the previous Zakat regulation.
See also: FAQ "What is a case?"
Choosing the filing type
The filing type tells RiyalPlus how to treat opening balances.
- Pick the type: first year of a new entity, first time filing in the app, or sequential (a successor to last year's case in RiyalPlus).
- If you choose sequential, select the prior-year case to link to. The option needs a computed prior-year case.
Uploading your trial balance
The trial balance is the source data for the declaration. This upload is the charge point: the case's locked price is deducted from your points when processing starts. If processing fails on our side, the points are refunded automatically.
- On the upload step, select the trial balance file — Arabic, as an XLSX spreadsheet or a PDF, with account names or codes and debit/credit columns.
- Start the upload. If your workbook has several sheets, pick the one holding the trial balance when prompted.
- Processing runs in the background — you can leave and come back; the case resumes where it was.
See also: Troubleshooting "The trial balance won't upload or ingest"
Reviewing the ingestion checks
After the file is read, RiyalPlus shows the results of its accounting checks.
- If everything passed, continue to mapping.
- Warnings (for example, a small imbalance) can be reviewed and either corrected or accepted with Proceed anyway.
- A failed required check (for example, duplicate account codes) offers Re-upload only — fix the file and upload again.
- Small figures can be corrected inline on the review screen without re-uploading.
Entering opening balances
A first-time-in-app filing needs opening balances before compute.
- Open the opening-balance form when prompted. These are last year's closing balance-sheet figures.
- Enter them; opening assets must equal liabilities plus equity.
- Save and continue.
See also: Troubleshooting "Compute won't run — it asks for opening balances"
Reviewing the account mapping
Mapping matches each trial-balance account to the right declaration line. RiyalPlus proposes it; you review it. Each row shows the account's amount and a debit/credit indicator alongside the suggested line and where the suggestion came from.
- Open the mapping step and review each suggestion.
- Adjust any mapping that isn't right.
- Confirm to continue. Getting the mapping right is what makes the computed figures correct.
See also: FAQ "What does mapping mean?"
The certification step
Before compute, you answer a short set of certification questions about the declaration (they mirror the certification section of the official form). Compute won't run until this step is complete.
Running compute
Compute calculates the Zakat base, tax base, and resulting amounts, then runs the validation controls.
- From the mapped, certified case, select Compute.
- If a required input is missing — ownership percentages that don't total 100%, missing opening balances — fix it and compute again.
Reviewing results, warnings, and approvals
- Open the results. The warnings panel lists anything to look at, in plain language.
- Blockers must be resolved before export — open each to see what it needs, fix the data, recompute.
- Advisory warnings don't block; if you've reviewed one and accept it, override it with a reason, which is recorded in the audit trail.
- Each wizard step can be approved (locked). To edit an approved step, unlock it first; changes to an earlier step mark later steps as needing a re-run.
- When all blockers pass, the filing is submission-ready.
Exporting the declaration and financial statements
- Select Export Form 10 and save the PDF.
- Select the financial-statements export for the full IFRS statement set (statement of financial position, income statement, cash flow, changes in equity, and notes) — included in the case price.
- Submit the declaration through ZATCA's portal. RiyalPlus does not lodge it for you.
Filing next year (sequential case)
- From a computed case, create the next year's filing as a successor.
- Closing balances carry forward automatically as the new opening balances. Creation is free; the charge happens at the new year's trial-balance upload.
Verify+ (document check add-on)
Verify+ cross-checks figures in your supporting documents against the declaration — a quality-assurance layer on a Zakat & tax case. 10 points per case.
- Add Verify+ when creating the case, or activate it later from the case (a one-time points charge).
- Upload the supporting document for a declaration line (an invoice, statement, or contract).
- RiyalPlus reads the amount and compares it with the declared value; matches and mismatches are shown per line.
- Export the verification report PDF when you're done.
See also: FAQ "What is Verify+?"
Qawaem deposit (financial-statement filing add-on)
Companies under the Companies Law must deposit their annual financial statements on the Ministry of Commerce's Qawaem platform (via the Saudi Business Center) — separate from the ZATCA declaration. Late deposit carries a personal fine on each manager or board chairman (SAR 2,000–20,000 by company form and capital, +50% for a repeat year). The deadline is 6 months after the fiscal year-end (4 months for joint-stock companies).
The Qawaem tab rides your Zakat & tax case and uses the statements the case already generated.
- Open the Qawaem deposit tab on the fiscal-year case. Generate the financial statements first if you haven't (the Export step).
- Confirm the company classification: legal form, capital, number of responsible managers, listed status, and whether an external audit applies (attach the auditor's report if it does). Note: being exempt from audit does not exempt you from filing.
- Run Validate — free. You'll see completeness checks, the deposit deadline, and the exact personal-penalty exposure.
- To export the deposit pack and mark the filing done, activate the Qawaem add-on (15 points, once per case).
- Deposit on the Qawaem portal. Direct XBRL file export from RiyalPlus is coming soon — until then, the pack gives you validated statements and figures to deposit manually on the portal.
Transfer Pricing (TP)
The TP workflow prepares the Controlled Transactions Disclosure Form that ZATCA requires from any entity with related-party transactions — from fiscal year 2024 this includes Zakat payers. It is a standalone yearly workflow in the sidebar, available to everyone.
Creating a TP case
One TP case = one filing entity × one fiscal year. Creating the case is the payment (30 points): everything inside — parties, transactions, the CbCR step, generation, and exports — is covered. Re-opening the same entity-year never re-charges.
- Open Transfer Pricing and create a case for the entity and fiscal year.
- Optionally link it to the matching Zakat & tax case.
Building the related-party register
- Add related parties (or run detection to propose them from your ownership data and prior filings).
- Confirm or rebut each proposed party — the relationship conclusion is yours; RiyalPlus records the basis.
Recording controlled transactions
- Add each related-party transaction with its type (the form's transaction categories), amounts, and pricing method.
- Run detection against the case's trial balance to catch transactions you may have missed.
The CbCR notification step
Country-by-Country Reporting applies only to constituent entities of multinational groups whose consolidated revenue exceeds SAR 3.2 billion. The scope check is free and most companies see a clean "Not applicable".
- Answer the two scope questions (multinational-group member? revenue threshold met?).
- If in scope, complete the reporting-entity details; the notification is due within 120 days of year-end.
Generating the disclosure pack
- Run classify and analyze, then Generate.
- Export the disclosure PDF, and the accountant's affidavit form where required.
- File the disclosure inside the annual return on the ZATCA portal; keep the signed affidavit with your records.
Withholding Tax (WHT)
WHT applies when a Saudi resident pays certain amounts (services, royalties, dividends, rent, and similar) to a non-resident without a Saudi permanent establishment. Each month with payments needs a return, remitted within the first 10 days of the following month; late payment costs 1% of the unpaid tax per 30 days.
Unlocking a WHT year
One WHT case = one filing entity × one tax year (10 points, charged at unlock). It covers all of that year's monthly returns. You can add AEP — automatic extraction of payments from uploaded invoices and remittances — for 5 points, at unlock or any time later.
The beneficiary registry
The registry holds each foreign beneficiary's rate-determining facts — relationship to you, permanent-establishment status, treaty country, and tax-residency certificate. It persists across years, so next year starts prefilled.
- Add each non-resident beneficiary once.
- Set the relationship and treaty facts. Treaty relief needs a tax-residency certificate.
Recording payments and filing a month
- Open the month and record each payment: beneficiary, payment type, amount, currency, date. With AEP active, upload the invoice or remittance and RiyalPlus prefills the amount, currency, recipient, and date — the payment type and relationship always stay your decision.
- Compute the month — the correct rate per category (and treaty relief where evidenced) is applied per payment.
- Review and mark the month filed, then submit and pay through the ZATCA portal. A month with no payments can be marked nil.
- A filed month is locked — corrections go through the correct open month, not by editing a filed one.
VAT returns
For VAT-registered entities. RiyalPlus computes the return independently from your trial balance and reconciles it against the draft ZATCA pre-fills on the portal, so every difference is explained before you submit.
Creating the VAT container
One VAT case = one filing entity × one year — free to create. Choose the filing frequency: monthly (required above SAR 40 million of annual taxable supplies) or quarterly. The container opens the year's periods.
Working a period
- Ingest — upload or reuse the period's trial-balance movements.
- Classify — accounts are classified into the return's sales and purchase boxes (standard-rated, zero-rated, exports, exempt, imports, reverse charge). Where a judgment is needed — whether a foreign service is reverse-charge, whether an expense is blocked from deduction (entertainment, restricted vehicles, catering, private use) — you assert it.
- ZATCA draft — optionally paste the portal's pre-filled figures; every delta between your computed return and the draft is flagged with an explanation.
- Compute — output tax minus deductible input tax, with corrections from previous periods (small differences below SAR 5,000 go in the corrections field; larger ones need a corrective return) and any credit carried forward.
- Review — clear blockers; judge and override advisory warnings with a reason.
Filing a period
- Mark filed — this is the charge point (30 points per period). The period locks and the export pack (return figures, citations, reconciliation appendix) becomes available.
- Enter the figures on the ZATCA portal, submit, and pay the SADAD bill.
- A period with no activity still needs a nil return — marking a period nil is also a filing (and also 30 points).
- A filed period is immutable. To fix an error afterwards: small differences via the next period's corrections field; larger ones via a corrective return on the portal.
RETT (Real Estate Transaction Tax)
RETT is 5% of the value of a real-estate disposal — sale, gift, barter, lease-to-own, long usufruct, or transfer of shares in a real-estate company. It is per-transaction: no periods, no nil filings.
Recording a transaction
- Open RETT and start a transaction. Pick the disposal type — it routes the rest of the flow.
- Enter the deed details, the counterparty, and whether the parties are related (a related-party sale below market value is a ZATCA valuation trigger).
- Enter the agreed consideration. Financing cost from licensed financiers is excluded from the base.
- Assert the fair market value (FMV) — yours or an accredited valuer's. The taxable base is the higher of consideration or FMV; RiyalPlus never invents an FMV.
- For a usufruct over 50 years, the base is a present value — you must provide the discount rate and its basis (an accredited valuer or a ZATCA ruling). The regulation specifies no rate, so RiyalPlus will not guess one.
Exemptions
- If you claim an exemption, pick the category and work through its condition checklist. Every condition must be attested — an unmet or uncertain condition blocks the filing.
- Some exemptions carry conditions that survive for years (for example, a 5-year no-share-disposal lock after an in-kind capital contribution). Confirmed exemptions register those conditions into the claw-back monitor.
Filing and the claw-back monitor
- Compute, review, and mark filed (30 points per transaction). Then complete the Property Registration Request on ZATCA's RETT portal and pay on or before notarization (special cases: within 30 days).
- A filed transaction is immutable; corrections or cancellations go through a linked correction/refund request.
- The claw-back monitor (free, for the life of each condition) watches your live exemption conditions with countdowns. If a condition is breached — shares sold inside the lock period, the property changed within the return window — the exemption voids retroactively and RETT falls due within 30 days of the breach. The monitor warns you before and when this bites.
UBO (beneficial-ownership register)
Almost every company under the Companies Law must identify its ultimate beneficial owners — the natural persons who ultimately own or control it — keep a register, update the Ministry of Commerce within 15 days of any change, and confirm the data annually on the anniversary of its commercial registration. Listed joint-stock companies are exempt (with proof). The MoC filing itself is free of charge; RiyalPlus charges for the identification, register, and orchestration work.
Identifying your UBOs
The identification run is free.
- Open UBO for the entity and run the identification.
- RiyalPlus applies the legal criteria in order: 25% or more of capital or voting rights, directly or indirectly (indirect stakes are computed through the ownership chain), then control criteria (power to appoint or remove management, ability to influence decisions), then — if no one qualifies — the manager/board fallback.
- Ownership-based UBOs are derived from your entity data; control-based conclusions and nominee arrangements are yours to assert.
Maintaining the register
- Record each UBO's mandated details (name, nationality, ID, address, the criterion met and its percentage, supporting documents).
- If a shareholder holds shares on someone else's behalf (a nominee), the real person must be disclosed and recorded.
15-day updates and the annual confirmation
- When UBO data changes, RiyalPlus opens an update task with the 15-day countdown; file the update with the reason. Updates are included — they are never charged.
- Ahead of the CR anniversary (you can file up to 30 days early), open the annual confirmation, resolve any register blockers, and confirm — this is the charge point (30 points). The register is snapshotted into the confirmation.
- Export the register pack and submit the confirmation through the Saudi Business Center.
Excise Tax
For producers, importers, and holders of excise goods: tobacco products, energy drinks, e-smoking devices and liquids (all at 100% of the tax base), and sweetened beverages (a per-litre rate by sugar tier). Returns are bi-monthly — six periods a year — due by the end of the month following the period.
Building your product catalog
The catalog is free and is authored once; it drives every period.
- Open Excise Tax and add each product (SKU): its excise category, and for beverages the sugar concentration in grams per 100 ml asserted from the product spec or lab report — RiyalPlus never estimates it, because it alone determines the tier (SAR 0 / 0 / 0.79 / 1.09 per litre).
- For concentrates, powders, and gels, record the dilution so tax is computed on the final ready-to-drink volume.
- For ad-valorem goods, record the retail sales price; the base is the higher of that and the GCC standard price.
Filing a period
- Create the entity's Excise case (free) and open the bi-monthly period.
- Enter the quantities released for consumption per SKU.
- Compute — per-line tax and the period total, with the tier badge per product.
- Review, clear any blockers (for example, a beverage without a sugar spec cannot be tiered), and mark filed (30 points per period). Periods with no activity are marked nil.
- Enter the return on the ZATCA portal and pay via SADAD.
Points and billing
Buying points
- Open Billing › Buy points.
- Choose an amount. Larger top-ups earn bonus points: +5% from SAR 10,000, +10% from SAR 25,000.
- Pay at checkout (15% VAT applies). Points land in your balance immediately after the payment confirms, and a tax invoice is issued for the purchase.
Your ledger and invoices
- Billing shows your balance, every point movement (what was spent or added, and when), and your tax invoices.
- If a trial-balance run fails on our side after a charge, the points are refunded automatically — you'll see the refund in the ledger.
- Refund and credit-note questions are handled by our team directly — contact support.
Team accounts
Members, roles, and seats
- Open Team to invite members by email. Every account includes 2 free member seats on top of the admin; additional permanent seats cost 36 points each (one-time).
- Assign a role per member: Admin (manages members, billing, and settings), Member (works on assigned clients' filings), or Viewer (read-only).
- Assign members to specific filing entities to control who can see and modify each client's work. Spending by members is attributed in the points ledger.
Help and your data
Getting help
- Open Support from the sidebar — a full page with your conversation history. Ask the assistant anything about the product; it answers from these help articles.
- Inside any wizard step, the "Need help with this step?" link in the footer opens Support with that step's context.
- If something needs a person, the conversation is escalated to a ticket and our team follows up by email. You can also write to support@riyalplus.ai.
- Payment and billing matters are always handled by the team, not the assistant.
Exporting or deleting your data
- To get a copy of your data or to delete your account, send a support request.
- On deletion, personal information is removed; anonymised records may be kept for statistics and compliance.

