Checked calculators for money, tax, crypto, engineering and compliance, each with formula and source
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Work out the GDPR / UK GDPR Article 33 deadline for notifying a personal data breach: 72 elapsed hours from becoming aware, given as local time in the person's time zone (IANA zone with daylight saving, or a fixed UTC offset) and in UTC. Returns the deadline, which authority to notify (lead authority, every EU authority where affected people live, or the UK Information Commission), the steps for a controller or processor with their article references, official sources, last-checked date and page link. Uses GlanceDesk Jurisdiction's tested deadline module.
controller = decides why and how the data is used; processor = handles the data for a client.
When the organisation became aware of the personal data breach: local date and time YYYY-MM-DDTHH:MM in time_zone (or utc_offset).
Which apply (any combination): eu_main = EU GDPR, main establishment in the EU; eu_none = EU GDPR, no establishment in the EU (serves EU users from outside); uk = UK GDPR, affected people in the UK. Empty or left out = all three. Decides which authority is notified.
IANA time zone of the person, e.g. "Europe/London", "Asia/Karachi", "America/Los_Angeles". Daylight saving time is applied. Give this or utc_offset; with neither, times are UTC.
Fixed offset from UTC instead of time_zone, e.g. "+05:00" or "-04:00" (no daylight-saving changes). Default "+00:00" (UTC).
Work out the GDPR / UK GDPR Article 33 deadline for notifying a personal data breach: 72 elapsed hours from becoming aware, given as local time in the person's time zone (IANA zone with daylight saving, or a fixed UTC offset) and in UTC. Returns the deadline, which authority to notify (lead authority, every EU authority where affected people live, or the UK Information Commission), the steps for a controller or processor with their article references, official sources, last-checked date and page link. Uses GlanceDesk Jurisdiction's tested deadline module.
| Argument | Type | Description |
|---|---|---|
| role* | string | controller = decides why and how the data is used; processor = handles the data for a client. |
| aware* | string | When the organisation became aware of the personal data breach: local date and time YYYY-MM-DDTHH:MM in time_zone (or utc_offset). |
| scope | array | Which apply (any combination): eu_main = EU GDPR, main establishment in the EU; eu_none = EU GDPR, no establishment in the EU (serves EU users from outside); uk = UK GDPR, affected people in the UK. Empty or left out = all three. Decides which authority is notified. |
| time_zone | string | IANA time zone of the person, e.g. "Europe/London", "Asia/Karachi", "America/Los_Angeles". Daylight saving time is applied. Give this or utc_offset; with neither, times are UTC. |
| utc_offset | string | Fixed offset from UTC instead of time_zone, e.g. "+05:00" or "-04:00" (no daylight-saving changes). Default "+00:00" (UTC). |
{
"type": "object",
"required": [
"aware",
"role"
],
"properties": {
"role": {
"enum": [
"controller",
"processor"
],
"type": "string",
"description": "controller = decides why and how the data is used; processor = handles the data for a client."
},
"aware": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
"description": "When the organisation became aware of the personal data breach: local date and time YYYY-MM-DDTHH:MM in time_zone (or utc_offset)."
},
"scope": {
"type": "array",
"items": {
"enum": [
"eu_main",
"eu_none",
"uk"
],
"type": "string"
},
"description": "Which apply (any combination): eu_main = EU GDPR, main establishment in the EU; eu_none = EU GDPR, no establishment in the EU (serves EU users from outside); uk = UK GDPR, affected people in the UK. Empty or left out = all three. Decides which authority is notified.",
"uniqueItems": true
},
"time_zone": {
"type": "string",
"maxLength": 64,
"description": "IANA time zone of the person, e.g. \"Europe/London\", \"Asia/Karachi\", \"America/Los_Angeles\". Daylight saving time is applied. Give this or utc_offset; with neither, times are UTC."
},
"utc_offset": {
"type": "string",
"pattern": "^[+-]\\d{2}:\\d{2}$",
"description": "Fixed offset from UTC instead of time_zone, e.g. \"+05:00\" or \"-04:00\" (no daylight-saving changes). Default \"+00:00\" (UTC)."
}
},
"additionalProperties": false
}Work out a business tax filing deadline and estimate the late penalty: Pakistan income tax return (Income Tax Ordinance s.118 with official FBR extensions; s.182 penalty) and quarterly withholding statements (s.165), UAE Corporate Tax return and payment (9 months after the tax period; registration deadline under FTA Decision 3/2024; Cabinet Decision 75/2023 penalties), UAE VAT return and payment (28th day after the tax period; Cabinet Decision 40/2017 as amended by Cabinet Decision 129/2025), Saudi VAT tax period and due date (Implementing Regulations Arts. 58, 59, 62, 74; VAT Law penalties). Every line cites its legal reference and official source; unconfirmed facts are marked "Being verified" and not used. Uses GlanceDesk Jurisdiction's tested filing module.
| Argument | Type | Description |
|---|---|---|
| paid | string | Optional: date the tax was or will be paid (uae_corporate_tax, uae_vat with unpaid_tax; saudi_vat with vat_due). Date as YYYY-MM-DD. |
| year | integer | pk_withholding_statement: calendar year the quarter ends in, e.g. 2026. |
| filed | string | Optional: date the return or statement was or will be filed (estimates the late-filing penalty). Date as YYYY-MM-DD. |
| filing* | string | Which deadline: pk_income_tax_return = Pakistan income tax return (Income Tax Ordinance s.118, penalty s.182); pk_withholding_statement = Pakistan quarterly withholding statement (s.165); uae_corporate_tax = UAE Corporate Tax return and payment (Federal Decree-Law 47/2022) with optional registration deadline; uae_vat = UAE VAT return and payment (VAT Executive Regulation Art. 64); saudi_vat = Saudi VAT tax period, return and payment (VAT Implementing Regulations Arts. 58, 59, 62). |
Work out the deadline to answer a data subject or consumer request: EU GDPR and UK GDPR Article 12(3) (one month, extendable by two further months; UK Data (Use and Access) Act 2025 changes), or California CCPA/CPRA (confirm within 10 business days, respond within 45 days with one 45-day extension; opt-out or limit requests within 15 business days). Returns each date with its legal reference, the steps, official sources, last-checked date and page link. Uses GlanceDesk Jurisdiction's tested deadline module.
| Argument | Type | Description |
|---|---|---|
| law* | string | eu = EU GDPR, uk = UK GDPR, ccpa = California CCPA/CPRA. |
| received* | string | Local date the request was received, YYYY-MM-DD. |
| time_zone | string | IANA time zone of the person, e.g. "Europe/London", "Asia/Karachi", "America/Los_Angeles". Daylight saving time is applied. Give this or utc_offset; with neither, times are UTC. |
| utc_offset | string | Fixed offset from UTC instead of time_zone, e.g. "+05:00" or "-04:00" (no daylight-saving changes). Default "+00:00" (UTC). |
| request_type | string | CCPA only (required for ccpa): know = know/access, delete or correct; optout = opt out of sale/sharing, or limit use of sensitive data. Not used for eu or uk. |
Check whether e-invoicing applies to a business and its deadline: Saudi ZATCA Phase 1 and Phase 2 waves, UAE e-invoicing phases (Ministerial Decisions 243 and 244 of 2025), Pakistan FBR electronic invoicing (S.R.O. 1852(I)/2025). Every line cites its legal reference and official source; unconfirmed facts are marked "Being verified" and not used.
| Argument | Type | Description |
|---|---|---|
| country* | string | sa = Saudi Arabia (ZATCA), ae = United Arab Emirates (MoF/FTA), pk = Pakistan (FBR). |
| revenue | number | UAE: gross revenue in the most recent accounting period (AED). |
| resident | boolean | Saudi Arabia: is the business resident in Saudi Arabia? |
| turnover | number | Pakistan: turnover declared in sales tax returns for the last twelve months (PKR). |
| customers | array | Who you invoice: b2b = businesses, b2g = government, b2c = consumers. |
| entity_type | string | UAE: business, or gov = government entity. |
| business_type | string | Pakistan: public = public listed company, company = other company, individual = individual or association of persons. |
Get everything about one GlanceDesk tool before running it: its inputs (types, units, options, min/max) as JSON Schema, outputs, formula or legal rule, official sources with URLs, last-checked date, disclaimer, page URL and a worked example computed by the tool itself.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Slug from search_tools, e.g. "uae-gratuity-calculator". |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Slug from search_tools, e.g. \"uae-gratuity-calculator\"."
}
},
"additionalProperties": false
}Work out what a private-sector worker is owed when a job ends in Saudi Arabia, the UAE or Qatar: end-of-service award or gratuity, unpaid wages, unused leave and overtime, each line with its labour-law article, plus a claim summary. Uses GlanceDesk Jurisdiction's tested engine.
| Argument | Type | Description |
|---|---|---|
| country* | string | sa = Saudi Arabia (Labor Law, Royal Decree M/51), ae = United Arab Emirates (Federal Decree-Law 33 of 2021, private sector), qa = Qatar (Labour Law, Law No. 14 of 2004). |
| last_day* | string | Last day of work, YYYY-MM-DD. Both days count as service. |
| first_day* | string | First day of work, YYYY-MM-DD. |
| how_it_ended* | string | employer = the employer ended the contract (not for misconduct); expired = fixed-term contract ended, not renewed; resign = the worker resigned; breach = the worker left because the employer broke the contract or law (Saudi Art. 81, UAE Art. 45); exception = Saudi only: force majeure, or a female worker leaving within 6 months of marriage or 3 months of giving birth; misconduct = dismissed without notice for a reason the law lists (Saudi Art. 80, UAE Art. 44, Qatar Art. 61). |
| overtime_hours | number | Optional. Unpaid overtime hours. |
Run one GlanceDesk Calculators, GlanceDesk Crypto or GlanceDesk Compute calculator with the person's values and get the tested answer with units, a one-sentence explanation, the formula, official sources, last-checked date, page URL and disclaimer. Invalid or missing values return the calculator's own error message; nothing is guessed or filled in.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Calculator slug (see search_tools / get_tool). |
| inputs* | object | Field id to value, as listed by get_tool. Numbers may be given as numbers or as text like "10,000"; dates as YYYY-MM-DD; options by their value. |
{
"type": "object",
"required": [
"slug",
"inputs"
],
"properties": {
"slug": {
"enum": [
"ac-size-calculator",
"age-calculator",
"apy-calculator",
"area-converter",
"binance-margin-level-calculator",
"bitcoin-block-reward-calculator",
"bitcoin-difficulty-adjustment-calculator",
"bitcoin-mining-profitability-calculator",
"bitcoin-transaction-fee-calculator",
"bitcoin-utxo-consolidation-calculator",
"bmi-calculator",
"break-even-calculator",
"brick-calculator",
"bybit-liquidation-price-calculator",
"coin-margined-futures-calculator",
"compound-interest-calculator",
"concrete-mix-calculator",
"copy-trading-profit-share-calculator",
"cross-margin-liquidation-calculator",
"crypto-address-checker",
"crypto-arbitrage-spread-calculator",
"crypto-break-even-calculator",
"crypto-cost-basis-calculator",
"crypto-dca-calculator",
"crypto-liquidation-price-calculator",
"crypto-percentage-change-calculator",
"crypto-pnl-calculator",
"crypto-portfolio-rebalance-calculator",
"crypto-position-size-calculator",
"crypto-roi-cagr-calculator",
"currency-converter",
"data-storage-converter",
"date-difference-calculator",
"defi-health-factor-calculator",
"discount-calculator",
"drawdown-recovery-calculator",
"dual-investment-calculator",
"electricity-cost-calculator",
"eth-gas-fee-calculator",
"ethereum-unit-converter",
"exchange-liquidation-price-calculator",
"fitrana-fidya-calculator",
"fuel-cost-calculator",
"fuel-economy-converter",
"funding-fee-calculator",
"futures-average-entry-price-calculator",
"futures-basis-calculator",
"gold-value-calculator",
"gpa-calculator",
"grid-trading-calculator",
"hyperliquid-liquidation-price-calculator",
"impermanent-loss-calculator",
"investment-growth-calculator",
"kva-kw-amps-calculator",
"length-converter",
"leverage-margin-calculator",
"loan-amortization-schedule",
"loan-emi-calculator",
"margin-tier-calculator",
"market-cap-price-calculator",
"marla-kanal-converter",
"mortgage-calculator",
"options-payoff-calculator",
"p2p-usdt-premium-calculator",
"pakistan-electricity-bill-calculator",
"pakistan-federal-pay-calculator",
"pakistan-freelancer-tax",
"pakistan-net-to-gross-salary",
"pakistan-property-tax-calculator",
"pakistan-salary-tax-calculator",
"pendle-fixed-yield-calculator",
"percentage-calculator",
"power-converter",
"pressure-converter",
"profit-margin-calculator",
"rebar-weight-calculator",
"remittance-true-cost-checker",
"risk-reward-calculator",
"satoshi-converter",
"saudi-end-of-service-calculator",
"simple-interest-calculator",
"solana-transaction-fee-calculator",
"solana-unit-converter",
"speed-converter",
"spot-crypto-profit-calculator",
"spot-take-profit-ladder-calculator",
"staking-rewards-calculator",
"target-price-calculator",
"temperature-converter",
"tip-calculator",
"token-vesting-calculator",
"trading-fee-calculator",
"tron-usdt-transfer-fee-calculator",
"uae-gratuity-calculator",
"uniswap-v3-liquidity-calculator",
"vat-calculator",
"volume-converter",
"weight-converter",
"zakat-calculator"
],
"type": "string",
"description": "Calculator slug (see search_tools / get_tool)."
},
"inputs": {
"type": "object",
"description": "Field id to value, as listed by get_tool. Numbers may be given as numbers or as text like \"10,000\"; dates as YYYY-MM-DD; options by their value.",
"additionalProperties": {
"type": [
"number",
"string"
]
}
}
},
"additionalProperties": false
}Find GlanceDesk calculators and compliance checks by topic, for example "UAE gratuity", "Pakistan salary tax", "loan EMI", "e-invoicing Saudi", "crypto liquidation price", "concrete mix cement bags". Returns each tool's slug, title, one-line description, page URL and which tool runs it.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Most results to return (default 10). |
| query | string | Words describing what the person wants to work out. Empty lists every tool. |
| product | string | calculators = GlanceDesk Calculators (money, tax, loans, conversions); jurisdiction = GlanceDesk Jurisdiction (compliance, labour law); crypto = GlanceDesk Crypto (futures, spot, staking, fees, crypto units; user-typed prices, not investment advice); compute = GlanceDesk Compute (engineering estimates for civil, electrical, mechanical and HVAC work; not a design check). Default any. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Most results to return (default 10)."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Words describing what the person wants to work out. Empty lists every tool."
},
"product": {
"enum": [
"any",
"calculators",
"jurisdiction",
"crypto",
"compute"
],
"type": "string",
"description": "calculators = GlanceDesk Calculators (money, tax, loans, conversions); jurisdiction = GlanceDesk Jurisdiction (compliance, labour law); crypto = GlanceDesk Crypto (futures, spot, staking, fees, crypto units; user-typed prices, not investment advice); compute = GlanceDesk Compute (engineering estimates for civil, electrical, mechanical and HVAC work; not a design check). Default any."
}
},
"additionalProperties": false
}| vat_due | number | saudi_vat, with filed or paid: VAT due for the period in SAR (to estimate the fines). |
| period_end | string | uae_corporate_tax, uae_vat, saudi_vat: last day of the tax period (Saudi: a month end). Date as YYYY-MM-DD. |
| unpaid_tax | number | uae_corporate_tax, uae_vat, with paid: tax paid late, in AED. |
| tax_payable | number | pk_income_tax_return: tax payable for the year in PKR (the higher of assessed tax and the last duly filed year's tax). Needed with filed to estimate the late-filing penalty. |
| incorporated | string | uae_corporate_tax, optional: date the business was set up (checks the FTA Decision 7/2024 postponement for first tax periods ending on or before 29 February 2024). Date as YYYY-MM-DD. |
| tax_year_end | string | pk_income_tax_return: last day of the tax year (normal tax year ends 30 June, e.g. 2026-06-30 = tax year 2026; special tax years end on another month end). Date as YYYY-MM-DD. |
| taxpayer_type | string | pk_income_tax_return: company; salaried = individual with 75% or more of income from salary; other = other individual or association of persons (AOP). |
| monthly_approved | boolean | saudi_vat: true if ZATCA approved or directed a monthly tax period although supplies are not over SAR 40,000,000. |
| quarter_end_month | integer | pk_withholding_statement: month the quarter ends (3 = March, 6 = June, 9 = September, 12 = December). |
| registration_type | string | uae_corporate_tax, optional (gives the registration deadline, FTA Decision 3/2024): res_new = resident company set up on or after 1 March 2024; res_old = resident company set up before 1 March 2024 (registration_start = issue date of its earliest licence); res_foreign = foreign company managed and controlled in the UAE (registration_start = end of its financial year); nr_pe = non-resident with a permanent establishment (registration_start = date the PE came into existence); nr_nexus = non-resident with a nexus (date the nexus was established); np_res = resident individual doing business with turnover over AED 1 million (a date in the calendar year the threshold was passed); np_nr = non-resident individual (date the conditions were met). |
| registration_start | string | uae_corporate_tax, with registration_type: the date that starts the registration period (see registration_type). Date as YYYY-MM-DD. |
| taxable_supplies_12m | number | saudi_vat: value of taxable supplies in the last 12 months in SAR (over SAR 40,000,000 = monthly tax period). |
| repeat_within_24_months | boolean | uae_vat, with filed: true if a late return was already penalised in the previous 24 months. |
| withheld_tax_paid_on_time | string | pk_withholding_statement, with filed: yes = the tax withheld or collected was paid by its due date; no = it was not; nil = no tax was required to be withheld or collected. |
{
"type": "object",
"required": [
"filing"
],
"properties": {
"paid": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional: date the tax was or will be paid (uae_corporate_tax, uae_vat with unpaid_tax; saudi_vat with vat_due). Date as YYYY-MM-DD."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 2021,
"description": "pk_withholding_statement: calendar year the quarter ends in, e.g. 2026."
},
"filed": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional: date the return or statement was or will be filed (estimates the late-filing penalty). Date as YYYY-MM-DD."
},
"filing": {
"enum": [
"pk_income_tax_return",
"pk_withholding_statement",
"uae_corporate_tax",
"uae_vat",
"saudi_vat"
],
"type": "string",
"description": "Which deadline: pk_income_tax_return = Pakistan income tax return (Income Tax Ordinance s.118, penalty s.182); pk_withholding_statement = Pakistan quarterly withholding statement (s.165); uae_corporate_tax = UAE Corporate Tax return and payment (Federal Decree-Law 47/2022) with optional registration deadline; uae_vat = UAE VAT return and payment (VAT Executive Regulation Art. 64); saudi_vat = Saudi VAT tax period, return and payment (VAT Implementing Regulations Arts. 58, 59, 62)."
},
"vat_due": {
"type": "number",
"minimum": 0,
"description": "saudi_vat, with filed or paid: VAT due for the period in SAR (to estimate the fines)."
},
"period_end": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "uae_corporate_tax, uae_vat, saudi_vat: last day of the tax period (Saudi: a month end). Date as YYYY-MM-DD."
},
"unpaid_tax": {
"type": "number",
"minimum": 0,
"description": "uae_corporate_tax, uae_vat, with paid: tax paid late, in AED."
},
"tax_payable": {
"type": "number",
"minimum": 0,
"description": "pk_income_tax_return: tax payable for the year in PKR (the higher of assessed tax and the last duly filed year's tax). Needed with filed to estimate the late-filing penalty."
},
"incorporated": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "uae_corporate_tax, optional: date the business was set up (checks the FTA Decision 7/2024 postponement for first tax periods ending on or before 29 February 2024). Date as YYYY-MM-DD."
},
"tax_year_end": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "pk_income_tax_return: last day of the tax year (normal tax year ends 30 June, e.g. 2026-06-30 = tax year 2026; special tax years end on another month end). Date as YYYY-MM-DD."
},
"taxpayer_type": {
"enum": [
"company",
"salaried",
"other"
],
"type": "string",
"description": "pk_income_tax_return: company; salaried = individual with 75% or more of income from salary; other = other individual or association of persons (AOP)."
},
"monthly_approved": {
"type": "boolean",
"description": "saudi_vat: true if ZATCA approved or directed a monthly tax period although supplies are not over SAR 40,000,000."
},
"quarter_end_month": {
"enum": [
3,
6,
9,
12
],
"type": "integer",
"description": "pk_withholding_statement: month the quarter ends (3 = March, 6 = June, 9 = September, 12 = December)."
},
"registration_type": {
"enum": [
"res_new",
"res_old",
"res_foreign",
"nr_pe",
"nr_nexus",
"np_res",
"np_nr"
],
"type": "string",
"description": "uae_corporate_tax, optional (gives the registration deadline, FTA Decision 3/2024): res_new = resident company set up on or after 1 March 2024; res_old = resident company set up before 1 March 2024 (registration_start = issue date of its earliest licence); res_foreign = foreign company managed and controlled in the UAE (registration_start = end of its financial year); nr_pe = non-resident with a permanent establishment (registration_start = date the PE came into existence); nr_nexus = non-resident with a nexus (date the nexus was established); np_res = resident individual doing business with turnover over AED 1 million (a date in the calendar year the threshold was passed); np_nr = non-resident individual (date the conditions were met)."
},
"registration_start": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "uae_corporate_tax, with registration_type: the date that starts the registration period (see registration_type). Date as YYYY-MM-DD."
},
"taxable_supplies_12m": {
"type": "number",
"minimum": 0,
"description": "saudi_vat: value of taxable supplies in the last 12 months in SAR (over SAR 40,000,000 = monthly tax period)."
},
"repeat_within_24_months": {
"type": "boolean",
"description": "uae_vat, with filed: true if a late return was already penalised in the previous 24 months."
},
"withheld_tax_paid_on_time": {
"enum": [
"yes",
"no",
"nil"
],
"type": "string",
"description": "pk_withholding_statement, with filed: yes = the tax withheld or collected was paid by its due date; no = it was not; nil = no tax was required to be withheld or collected."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"law",
"received"
],
"properties": {
"law": {
"enum": [
"eu",
"uk",
"ccpa"
],
"type": "string",
"description": "eu = EU GDPR, uk = UK GDPR, ccpa = California CCPA/CPRA."
},
"received": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local date the request was received, YYYY-MM-DD."
},
"time_zone": {
"type": "string",
"maxLength": 64,
"description": "IANA time zone of the person, e.g. \"Europe/London\", \"Asia/Karachi\", \"America/Los_Angeles\". Daylight saving time is applied. Give this or utc_offset; with neither, times are UTC."
},
"utc_offset": {
"type": "string",
"pattern": "^[+-]\\d{2}:\\d{2}$",
"description": "Fixed offset from UTC instead of time_zone, e.g. \"+05:00\" or \"-04:00\" (no daylight-saving changes). Default \"+00:00\" (UTC)."
},
"request_type": {
"enum": [
"know",
"optout"
],
"type": "string",
"description": "CCPA only (required for ccpa): know = know/access, delete or correct; optout = opt out of sale/sharing, or limit use of sensitive data. Not used for eu or uk."
}
},
"additionalProperties": false
}| imports_goods | boolean | Pakistan: does the business import goods? |
| vat_registered | boolean | Saudi Arabia or UAE: is the business registered for VAT there? |
| revenue_by_year | object | Saudi Arabia: revenue subject to VAT (SAR) for each year the ZATCA waves use: 2022, 2023, 2024, 2025. Leave a year out if not trading. |
| sales_tax_registered | boolean | Pakistan: registered for sales tax with the FBR? |
| conducts_business_in_uae | boolean | UAE: does the person conduct business in the UAE? |
{
"type": "object",
"required": [
"country"
],
"properties": {
"country": {
"enum": [
"sa",
"ae",
"pk"
],
"type": "string",
"description": "sa = Saudi Arabia (ZATCA), ae = United Arab Emirates (MoF/FTA), pk = Pakistan (FBR)."
},
"revenue": {
"type": "number",
"minimum": 0,
"description": "UAE: gross revenue in the most recent accounting period (AED)."
},
"resident": {
"type": "boolean",
"description": "Saudi Arabia: is the business resident in Saudi Arabia?"
},
"turnover": {
"type": "number",
"minimum": 0,
"description": "Pakistan: turnover declared in sales tax returns for the last twelve months (PKR)."
},
"customers": {
"type": "array",
"items": {
"enum": [
"b2b",
"b2g",
"b2c"
],
"type": "string"
},
"description": "Who you invoice: b2b = businesses, b2g = government, b2c = consumers.",
"uniqueItems": true
},
"entity_type": {
"enum": [
"business",
"gov"
],
"type": "string",
"description": "UAE: business, or gov = government entity."
},
"business_type": {
"enum": [
"public",
"company",
"individual"
],
"type": "string",
"description": "Pakistan: public = public listed company, company = other company, individual = individual or association of persons."
},
"imports_goods": {
"type": "boolean",
"description": "Pakistan: does the business import goods?"
},
"vat_registered": {
"type": "boolean",
"description": "Saudi Arabia or UAE: is the business registered for VAT there?"
},
"revenue_by_year": {
"type": "object",
"properties": {
"2022": {
"type": "number",
"minimum": 0
},
"2023": {
"type": "number",
"minimum": 0
},
"2024": {
"type": "number",
"minimum": 0
},
"2025": {
"type": "number",
"minimum": 0
}
},
"description": "Saudi Arabia: revenue subject to VAT (SAR) for each year the ZATCA waves use: 2022, 2023, 2024, 2025. Leave a year out if not trading.",
"additionalProperties": false
},
"sales_tax_registered": {
"type": "boolean",
"description": "Pakistan: registered for sales tax with the FBR?"
},
"conducts_business_in_uae": {
"type": "boolean",
"description": "UAE: does the person conduct business in the UAE?"
}
},
"additionalProperties": false
}| unused_leave_days |
| number |
| Optional. Unused annual leave days earned, including this year's share. |
| basic_monthly_wage* | number | Last basic monthly wage, without allowances (SAR, AED or QAR). The UAE and Qatar gratuity and leave pay use this. |
| total_monthly_wage* | number | Last total monthly wage: basic plus contractual allowances. The Saudi award and leave pay use this. Must be at least the basic wage. |
| unpaid_wage_months | number | Optional. Months of wages not paid (decimals for part months). |
| unpaid_absence_days | integer | UAE only, optional: days of unpaid absence (not counted as service). |
| night_overtime_hours | number | UAE or Qatar, optional: how many of the overtime hours were at night (UAE 10 pm to 4 am, Qatar 9 pm to 3 am; not for shift workers). |
| normal_hours_per_day | number | Needed only with overtime: normal working hours per day in the contract. |
{
"type": "object",
"required": [
"country",
"first_day",
"last_day",
"basic_monthly_wage",
"total_monthly_wage",
"how_it_ended"
],
"properties": {
"country": {
"enum": [
"sa",
"ae",
"qa"
],
"type": "string",
"description": "sa = Saudi Arabia (Labor Law, Royal Decree M/51), ae = United Arab Emirates (Federal Decree-Law 33 of 2021, private sector), qa = Qatar (Labour Law, Law No. 14 of 2004)."
},
"last_day": {
"type": "string",
"format": "date",
"description": "Last day of work, YYYY-MM-DD. Both days count as service."
},
"first_day": {
"type": "string",
"format": "date",
"description": "First day of work, YYYY-MM-DD."
},
"how_it_ended": {
"enum": [
"employer",
"expired",
"resign",
"breach",
"exception",
"misconduct"
],
"type": "string",
"description": "employer = the employer ended the contract (not for misconduct); expired = fixed-term contract ended, not renewed; resign = the worker resigned; breach = the worker left because the employer broke the contract or law (Saudi Art. 81, UAE Art. 45); exception = Saudi only: force majeure, or a female worker leaving within 6 months of marriage or 3 months of giving birth; misconduct = dismissed without notice for a reason the law lists (Saudi Art. 80, UAE Art. 44, Qatar Art. 61)."
},
"overtime_hours": {
"type": "number",
"minimum": 0,
"description": "Optional. Unpaid overtime hours."
},
"unused_leave_days": {
"type": "number",
"minimum": 0,
"description": "Optional. Unused annual leave days earned, including this year's share."
},
"basic_monthly_wage": {
"type": "number",
"description": "Last basic monthly wage, without allowances (SAR, AED or QAR). The UAE and Qatar gratuity and leave pay use this.",
"exclusiveMinimum": 0
},
"total_monthly_wage": {
"type": "number",
"description": "Last total monthly wage: basic plus contractual allowances. The Saudi award and leave pay use this. Must be at least the basic wage.",
"exclusiveMinimum": 0
},
"unpaid_wage_months": {
"type": "number",
"minimum": 0,
"description": "Optional. Months of wages not paid (decimals for part months)."
},
"unpaid_absence_days": {
"type": "integer",
"minimum": 0,
"description": "UAE only, optional: days of unpaid absence (not counted as service)."
},
"night_overtime_hours": {
"type": "number",
"minimum": 0,
"description": "UAE or Qatar, optional: how many of the overtime hours were at night (UAE 10 pm to 4 am, Qatar 9 pm to 3 am; not for shift workers)."
},
"normal_hours_per_day": {
"type": "number",
"maximum": 24,
"description": "Needed only with overtime: normal working hours per day in the contract.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}