Bindler Uae Corporate Tax API
The Uae Corporate Tax API from Bindler — 1 operation(s) for uae corporate tax.
The Uae Corporate Tax API from Bindler — 1 operation(s) for uae corporate tax.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/bindler-co:bindler-co-uae-corporate-tax-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Bindler Uae Corporate Tax API
version: 1.0.0
description: 'Three regulation calculators as JSON endpoints: EU AI Act classification (Regulation (EU) 2024/1689), CBAM certificate cost 2026 to 2034 (Regulation (EU) 2023/956) and the UAE Corporate Tax computation (Federal Decree-Law No. 47 of 2022). Same code as the free browser tools at bindler.co, generated from them at every build. Free tier: 25 calls a day per IP, no account. Unlimited: $19 a month key from Gumroad. Facts only, the instrument cited in every response; not legal or tax advice. Docs: https://bindler.co/api/'
contact:
name: Bindler
url: https://bindler.co/api/
email: bindler540@gmail.com
servers:
- url: https://bindler.co/api/v1
security:
- ApiKey: []
- ApiKeyQuery: []
- {}
tags:
- name: Uae Corporate Tax
paths:
/uae-corporate-tax:
get:
summary: UAE Corporate Tax computation for one Tax Period
operationId: uaeCorporateTax
parameters:
- name: rev
in: query
description: Revenue for the Tax Period in AED, gross income and not profit (Article 21 and Ministerial Decision 73 of 2023 Article 2(4)); tested against the AED 3,000,000 Small Business Relief threshold.
schema:
type: number
- name: acc
in: query
description: 'Accounting Income in AED: the net profit or loss before tax that starts the computation (Article 20(2)).'
schema:
type: number
- name: ie
in: query
description: Interest expenditure for the period in AED (Article 29). Feeds Net Interest Expenditure and the EBITDA of the interest limitation (Article 30(1)).
schema:
type: number
- name: ii
in: query
description: Interest income for the period in AED, netted against interest expenditure in Net Interest Expenditure and in EBITDA (Article 30(1) and 30(2)).
schema:
type: number
- name: da
in: query
description: Depreciation and amortisation charged in the period in AED, added back in the EBITDA used for the interest limitation (Article 30(1)).
schema:
type: number
- name: div
in: query
description: Dividends and profit distributions from UAE resident juridical persons in AED, exempt without conditions (Article 22(1)).
schema:
type: number
- name: part
in: query
description: 'Participation Exemption income in AED: dividends and gains from a Participating Interest, exempt where the conditions of Article 23 are met. Deducted from Accounting Income and from the EBITDA used for the interest limitation (Article 30(1)).'
schema:
type: number
- name: oex
in: query
description: Other exempt income in AED under Articles 22 and 24, such as income of a Foreign Permanent Establishment where that exemption applies (Article 24). Deducted from Accounting Income and from the EBITDA used for the interest limitation.
schema:
type: number
- name: ent
in: query
description: Entertainment, amusement or recreation expenditure in AED; 50% is added back as non-deductible (Article 32(1)).
schema:
type: number
- name: fines
in: query
description: Fines and penalties other than compensation for damages in AED, added back in full (Article 33(2)).
schema:
type: number
- name: don
in: query
description: Donations, grants or gifts to entities that are not Qualifying Public Benefit Entities in AED, added back in full (Article 33(1)).
schema:
type: number
- name: dvo
in: query
description: Dividends or other profit distributions to an owner that were charged to income in AED, added back in full as non-deductible (Article 33(4)).
schema:
type: number
- name: ctx
in: query
description: Corporate Tax expense booked in the accounts in AED, added back in full because the tax itself is not a deductible expenditure (Article 33(6)).
schema:
type: number
- name: vat
in: query
description: Recoverable input VAT charged to expense in AED, added back in full as non-deductible (Article 33(7)).
schema:
type: number
- name: ftx
in: query
description: Foreign income tax charged to expense in AED, added back in full as non-deductible (Article 33(8)); relief for foreign tax comes through the Foreign Tax Credit line instead (Article 47).
schema:
type: number
- name: nb
in: query
description: Expenditure not incurred for the purposes of the Business in AED, added back as non-deductible (Article 28(2)(a)).
schema:
type: number
- name: exx
in: query
description: Expenditure incurred in deriving Exempt Income in AED, added back as non-deductible together with the expenditure not incurred for the purposes of the Business (Article 28(2)(b)).
schema:
type: number
- name: loss
in: query
description: Tax Losses carried forward from earlier Tax Periods in AED. Relief is capped at 75% of Taxable Income before relief (Article 37(2)).
schema:
type: number
- name: icf
in: query
description: Disallowed Net Interest Expenditure brought forward from earlier periods in AED, deductible within the same 30% of EBITDA cap for ten periods (Article 30(4)).
schema:
type: number
- name: ftc
in: query
description: Foreign Tax Credit available for the period in AED (Article 47), deducted from the Corporate Tax before credit and capped at it, so it cannot create a refund or a carry-forward (Article 47(2) and 47(3)).
schema:
type: number
- name: qi
in: query
description: 'Qualifying Income of a Qualifying Free Zone Person in AED (Cabinet Decision No. 100 of 2023). Used only where the QFZP tests pass: 0% on this figure and 9% on Taxable Income above it (Article 3(2)).'
schema:
type: number
- name: nqr
in: query
description: 'Non-qualifying Revenue in AED, tested for the Free Zone de minimis rule: it must not exceed the lower of 5% of Revenue and AED 5,000,000, or Qualifying Free Zone Person status fails and the standard rates apply to everything (Ministerial Decision No. 265 of 2023).'
schema:
type: number
- name: resident
in: query
description: Whether the taxpayer is a Resident Person (Article 11). Small Business Relief is available to Resident Persons only (Ministerial Decision 73 of 2023 Article 2). Default Yes.
schema:
type: string
enum:
- 'Yes'
- 'No'
- name: fz
in: query
description: Whether the taxpayer is a Free Zone Person (Article 18). Default No.
schema:
type: string
enum:
- 'Yes'
- 'No'
- name: qf
in: query
description: 'Whether every Qualifying Free Zone Person condition is met: substance, audited accounts, transfer pricing and no election out (Article 18(1)). With the de minimis test passed, the QFZP rates in Article 3(2) apply. Default No.'
schema:
type: string
enum:
- 'Yes'
- 'No'
- name: mne
in: query
description: Whether the company is a constituent of a multinational group with consolidated revenue above AED 3.15bn, which is excluded from Small Business Relief (Ministerial Decision 73 of 2023 Article 3(1)). Default No.
schema:
type: string
enum:
- 'Yes'
- 'No'
- name: prevOver
in: query
description: Whether Revenue exceeded AED 3,000,000 in any earlier Tax Period, after which Small Business Relief is lost for good (Ministerial Decision 73 of 2023 Article 2(3)). Default No.
schema:
type: string
enum:
- 'Yes'
- 'No'
- name: elect
in: query
description: Whether Small Business Relief is elected for this Tax Period, which makes Taxable Income nil and stops Tax Losses and disallowed interest accruing (Article 21; Ministerial Decision 73 of 2023 Articles 2 and 4). The election is per period. Default No.
schema:
type: string
enum:
- 'Yes'
- 'No'
- name: bank
in: query
description: Whether the taxpayer is a bank, an insurance provider or a natural person, for whom the interest limitation does not apply (Article 30(6)). Default No.
schema:
type: string
enum:
- 'Yes'
- 'No'
responses:
'200':
description: Taxable Income, Corporate Tax payable, the relief and QFZP tests, the carry-forwards, every computation step, basis and docs.
content:
application/json:
schema:
type: object
description: The computation result. Every call returns all fourteen keys.
properties:
input:
type: object
description: 'The normalised inputs used, echoed back: the seven Yes/No flags as Yes or No and the twenty-two amounts as numbers.'
properties: {}
additionalProperties: true
currency:
type: string
description: The currency of every amount, always AED.
enum:
- AED
eligible_small_business_relief:
type: boolean
description: 'Whether the Small Business Relief conditions are met: resident, Revenue at or below AED 3,000,000, no earlier period above it, not an MNE group member and not a QFZP.'
relief_applied:
type: boolean
description: Whether Small Business Relief was actually applied, that is eligible and elected, which sets Taxable Income to nil.
qfzp:
type: boolean
description: 'Whether the person is treated as a Qualifying Free Zone Person: Free Zone Person, all conditions met and the de minimis test passed.'
de_minimis_passed:
type: boolean
description: Whether non-qualifying Revenue is within the de minimis threshold, the lower of 5 percent of Revenue and AED 5,000,000.
taxable_income:
type: number
description: Taxable Income in AED after exempt income, non-deductible expenditure, the interest limitation and Tax Loss relief, floored at zero.
corporate_tax_payable:
type: number
description: Corporate Tax payable in AED after the 0 percent band, the 9 percent rate and the Foreign Tax Credit, floored at zero.
effective_rate_on_accounting_income:
type: number
description: Tax payable divided by Accounting Income, as a decimal fraction; zero when Accounting Income is not positive.
losses_carried_forward:
type: number
description: Tax Losses carried to later periods in AED, after the relief used this period and any loss of the period itself.
disallowed_interest_carried_forward:
type: number
description: Net Interest Expenditure carried forward in AED under Article 30(2), after this period's disallowance and any brought-forward amount used.
steps:
type: array
description: The computation in the order Article 20(2) sets, one entry per line, each with the article behind it.
items:
type: object
description: One line of the computation.
properties:
line:
type: string
description: The label of the computation line, such as Accounting Income or Corporate Tax Payable.
aed:
type: number
description: The amount for that line in AED, negative where the line is a deduction.
basis:
type: string
description: The article or Decision the line rests on, such as Article 30(1) or Cabinet Decision 116 of 2022.
basis:
type: string
description: The law and Decisions the computation rests on, with the note that it is not tax advice.
docs:
type: string
description: Link to the documentation section for this endpoint, https://bindler.co/api/#uae-corporate-tax
'400':
description: 'Bad request: the POST body was not valid JSON. Query parameter calls never reach this case.'
content:
application/json:
schema:
type: object
description: Error body returned for an unusable request.
properties:
error:
type: string
description: Always the text send JSON or query parameters.
enum:
- send JSON or query parameters
'401':
description: 'Missing or invalid key: a value shaped like a Gumroad licence key was sent in x-api-key or ?key= and Gumroad did not verify it (refunded, charged back or cancelled purchases count as invalid).'
content:
application/json:
schema:
type: object
description: Error body returned when the presented licence key does not verify.
properties:
error:
type: string
description: Always the text invalid key.
enum:
- invalid key
docs:
type: string
description: Link to the API documentation page, https://bindler.co/api/
'429':
description: 'Free tier exhausted: more than 25 active minutes of calls from this IP in the current UTC day, and no verified key was sent. Send a key to remove the limit.'
headers:
x-ratelimit-limit:
description: The free tier ceiling, the string 25.
schema:
type: string
x-ratelimit-remaining:
description: Remaining free calls, the string 0 on this response.
schema:
type: string
content:
application/json:
schema:
type: object
description: Error body returned when the free per-IP allowance is spent.
properties:
error:
type: string
description: Explains the free tier ceiling and how to send a key.
docs:
type: string
description: Link to the API documentation page, https://bindler.co/api/
tags:
- Uae Corporate Tax
post:
summary: UAE Corporate Tax computation for one Tax Period, JSON body
operationId: uaeCorporateTaxPost
description: The same computation as GET, with the same fields sent in a JSON body. Omitted fields default to No, except resident which defaults to Yes, and to zero for amounts.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
rev:
type: number
description: Revenue for the Tax Period in AED, gross income and not profit (Article 21 and Ministerial Decision 73 of 2023 Article 2(4)); tested against the AED 3,000,000 Small Business Relief threshold.
acc:
type: number
description: 'Accounting Income in AED: the net profit or loss before tax that starts the computation (Article 20(2)).'
ie:
type: number
description: Interest expenditure for the period in AED (Article 29). Feeds Net Interest Expenditure and the EBITDA of the interest limitation (Article 30(1)).
ii:
type: number
description: Interest income for the period in AED, netted against interest expenditure in Net Interest Expenditure and in EBITDA (Article 30(1) and 30(2)).
da:
type: number
description: Depreciation and amortisation charged in the period in AED, added back in the EBITDA used for the interest limitation (Article 30(1)).
div:
type: number
description: Dividends and profit distributions from UAE resident juridical persons in AED, exempt without conditions (Article 22(1)).
part:
type: number
description: 'Participation Exemption income in AED: dividends and gains from a Participating Interest, exempt where the conditions of Article 23 are met. Deducted from Accounting Income and from the EBITDA used for the interest limitation (Article 30(1)).'
oex:
type: number
description: Other exempt income in AED under Articles 22 and 24, such as income of a Foreign Permanent Establishment where that exemption applies (Article 24). Deducted from Accounting Income and from the EBITDA used for the interest limitation.
ent:
type: number
description: Entertainment, amusement or recreation expenditure in AED; 50% is added back as non-deductible (Article 32(1)).
fines:
type: number
description: Fines and penalties other than compensation for damages in AED, added back in full (Article 33(2)).
don:
type: number
description: Donations, grants or gifts to entities that are not Qualifying Public Benefit Entities in AED, added back in full (Article 33(1)).
dvo:
type: number
description: Dividends or other profit distributions to an owner that were charged to income in AED, added back in full as non-deductible (Article 33(4)).
ctx:
type: number
description: Corporate Tax expense booked in the accounts in AED, added back in full because the tax itself is not a deductible expenditure (Article 33(6)).
vat:
type: number
description: Recoverable input VAT charged to expense in AED, added back in full as non-deductible (Article 33(7)).
ftx:
type: number
description: Foreign income tax charged to expense in AED, added back in full as non-deductible (Article 33(8)); relief for foreign tax comes through the Foreign Tax Credit line instead (Article 47).
nb:
type: number
description: Expenditure not incurred for the purposes of the Business in AED, added back as non-deductible (Article 28(2)(a)).
exx:
type: number
description: Expenditure incurred in deriving Exempt Income in AED, added back as non-deductible together with the expenditure not incurred for the purposes of the Business (Article 28(2)(b)).
loss:
type: number
description: Tax Losses carried forward from earlier Tax Periods in AED. Relief is capped at 75% of Taxable Income before relief (Article 37(2)).
icf:
type: number
description: Disallowed Net Interest Expenditure brought forward from earlier periods in AED, deductible within the same 30% of EBITDA cap for ten periods (Article 30(4)).
ftc:
type: number
description: Foreign Tax Credit available for the period in AED (Article 47), deducted from the Corporate Tax before credit and capped at it, so it cannot create a refund or a carry-forward (Article 47(2) and 47(3)).
qi:
type: number
description: 'Qualifying Income of a Qualifying Free Zone Person in AED (Cabinet Decision No. 100 of 2023). Used only where the QFZP tests pass: 0% on this figure and 9% on Taxable Income above it (Article 3(2)).'
nqr:
type: number
description: 'Non-qualifying Revenue in AED, tested for the Free Zone de minimis rule: it must not exceed the lower of 5% of Revenue and AED 5,000,000, or Qualifying Free Zone Person status fails and the standard rates apply to everything (Ministerial Decision No. 265 of 2023).'
resident:
type: string
enum:
- 'Yes'
- 'No'
description: Whether the taxpayer is a Resident Person (Article 11). Small Business Relief is available to Resident Persons only (Ministerial Decision 73 of 2023 Article 2). Default Yes.
fz:
type: string
enum:
- 'Yes'
- 'No'
description: Whether the taxpayer is a Free Zone Person (Article 18). Default No.
qf:
type: string
enum:
- 'Yes'
- 'No'
description: 'Whether every Qualifying Free Zone Person condition is met: substance, audited accounts, transfer pricing and no election out (Article 18(1)). With the de minimis test passed, the QFZP rates in Article 3(2) apply. Default No.'
mne:
type: string
enum:
- 'Yes'
- 'No'
description: Whether the company is a constituent of a multinational group with consolidated revenue above AED 3.15bn, which is excluded from Small Business Relief (Ministerial Decision 73 of 2023 Article 3(1)). Default No.
prevOver:
type: string
enum:
- 'Yes'
- 'No'
description: Whether Revenue exceeded AED 3,000,000 in any earlier Tax Period, after which Small Business Relief is lost for good (Ministerial Decision 73 of 2023 Article 2(3)). Default No.
elect:
type: string
enum:
- 'Yes'
- 'No'
description: Whether Small Business Relief is elected for this Tax Period, which makes Taxable Income nil and stops Tax Losses and disallowed interest accruing (Article 21; Ministerial Decision 73 of 2023 Articles 2 and 4). The election is per period. Default No.
bank:
type: string
enum:
- 'Yes'
- 'No'
description: Whether the taxpayer is a bank, an insurance provider or a natural person, for whom the interest limitation does not apply (Article 30(6)). Default No.
example:
rev: 2400000
acc: 520000
ie: 150000
ii: 10000
da: 60000
div: 30000
ent: 40000
fines: 8000
don: 5000
nb: 6000
loss: 120000
elect: 'No'
responses:
'200':
description: Taxable Income, Corporate Tax payable, the relief and QFZP tests, the carry-forwards, every computation step, basis and docs.
content:
application/json:
schema:
type: object
description: The computation result. Every call returns all fourteen keys.
properties:
input:
type: object
description: 'The normalised inputs used, echoed back: the seven Yes/No flags as Yes or No and the twenty-two amounts as numbers.'
properties: {}
additionalProperties: true
currency:
type: string
description: The currency of every amount, always AED.
enum:
- AED
eligible_small_business_relief:
type: boolean
description: 'Whether the Small Business Relief conditions are met: resident, Revenue at or below AED 3,000,000, no earlier period above it, not an MNE group member and not a QFZP.'
relief_applied:
type: boolean
description: Whether Small Business Relief was actually applied, that is eligible and elected, which sets Taxable Income to nil.
qfzp:
type: boolean
description: 'Whether the person is treated as a Qualifying Free Zone Person: Free Zone Person, all conditions met and the de minimis test passed.'
de_minimis_passed:
type: boolean
description: Whether non-qualifying Revenue is within the de minimis threshold, the lower of 5 percent of Revenue and AED 5,000,000.
taxable_income:
type: number
description: Taxable Income in AED after exempt income, non-deductible expenditure, the interest limitation and Tax Loss relief, floored at zero.
corporate_tax_payable:
type: number
description: Corporate Tax payable in AED after the 0 percent band, the 9 percent rate and the Foreign Tax Credit, floored at zero.
effective_rate_on_accounting_income:
type: number
description: Tax payable divided by Accounting Income, as a decimal fraction; zero when Accounting Income is not positive.
losses_carried_forward:
type: number
description: Tax Losses carried to later periods in AED, after the relief used this period and any loss of the period itself.
disallowed_interest_carried_forward:
type: number
description: Net Interest Expenditure carried forward in AED under Article 30(2), after this period's disallowance and any brought-forward amount used.
steps:
type: array
description: The computation in the order Article 20(2) sets, one entry per line, each with the article behind it.
items:
type: object
description: One line of the computation.
properties:
line:
type: string
description: The label of the computation line, such as Accounting Income or Corporate Tax Payable.
aed:
type: number
description: The amount for that line in AED, negative where the line is a deduction.
basis:
type: string
description: The article or Decision the line rests on, such as Article 30(1) or Cabinet Decision 116 of 2022.
basis:
type: string
description: The law and Decisions the computation rests on, with the note that it is not tax advice.
docs:
type: string
description: Link to the documentation section for this endpoint, https://bindler.co/api/#uae-corporate-tax
'400':
description: 'Bad request: the POST body was not valid JSON. Query parameter calls never reach this case.'
content:
application/json:
schema:
type: object
description: Error body returned for an unusable request.
properties:
error:
type: string
description: Always the text send JSON or query parameters.
enum:
- send JSON or query parameters
'401':
description: 'Missing or invalid key: a value shaped like a Gumroad licence key was sent in x-api-key or ?key= and Gumroad did not verify it (refunded, charged back or cancelled purchases count as invalid).'
content:
application/json:
schema:
type: object
description: Error body returned when the presented licence key does not verify.
properties:
error:
type: string
description: Always the text invalid key.
enum:
- invalid key
docs:
type: string
description: Link to the API documentation page, https://bindler.co/api/
'429':
description: 'Free tier exhausted: more than 25 active minutes of calls from this IP in the current UTC day, and no verified key was sent. Send a key to remove the limit.'
headers:
x-ratelimit-limit:
description: The free tier ceiling, the string 25.
schema:
type: string
x-ratelimit-remaining:
description: Remaining free calls, the string 0 on this response.
schema:
type: string
content:
application/json:
schema:
type: object
description: Error body returned when the free per-IP allowance is spent.
properties:
error:
type: string
description: Explains the free tier ceiling and how to send a key.
docs:
type: string
description: Link to the API documentation page, https://bindler.co/api/
tags:
- Uae Corporate Tax
options:
summary: CORS preflight for the UAE Corporate Tax endpoint
operationId: uaeCorporateTaxOptions
description: Answers the browser preflight with the allowed origin, methods and headers, and no body.
security: []
responses:
'204':
description: CORS preflight answered with no body. The endpoint replies to OPTIONS before any key check or rate limiting.
headers:
access-control-allow-origin:
description: Always the wildcard star, any origin may call.
schema:
type: string
access-control-allow-methods:
description: The methods allowed, the string GET, POST, OPTIONS.
schema:
type: string
access-control-allow-headers:
description: The headers allowed, content-type and x-api-key.
schema:
type: string
tags:
- Uae Corporate Tax
components:
securitySchemes:
ApiKey:
type: apiKey
in: header
name: x-api-key
description: Gumroad licence key for the product bindler-api, sent in the x-api-key header. Keys that do not match the four-group licence pattern are ignored and the call falls through to the free tier.
ApiKeyQuery:
type: apiKey
in: query
name: key
description: The same Gumroad licence key passed as a query parameter instead of the header, accepted by every endpoint.