This version is in beta - expect some breaking changes.
Individual Income API
|Available in Sandbox||Yes|
|Sandbox base URL||https://test-api.service.hmrc.gov.uk|
|Available in Production||Yes|
|Production base URL||https://api.service.hmrc.gov.uk|
This API is one of a number of APIs that provide information that HMRC knows about an individual's tax affairs.
This API in particular provides the following information about an individual's income for a given tax year:
- income from employments, as reported to HMRC by their employer(s) through the PAYE process
- income from pensions (other than state pension) and retirement annuities
- income from other state benefits, such as taxable Incapacity Benefit and/or contribution-based Employment and Support Allowance
The primary intended use for this information is to pre-populate an individual's Self Assessment tax return.
Data is only available for taxpayers who are registered for Self Assessment.
Also, data is only available once PAYE reconciliation has completed. This is the process that determines whether the individual has paid the right amount of tax and, for PAYE-only taxpayers, results in a P800 in the event of overpayment or underpayment.
Reconciliation starts on or around 6th June and runs for around one million individuals per working night. It has usually completed by the end of September. Unfortunately it is not possible to know when reconciliation will be complete for a specific individual.
If we are expecting a P11D, reconciliation will not start for that individual until we have received and processed the P11D. If we receive a P11D unexpectedly, we will re-run the reconciliation.
Data is no longer available once we have received and processed the corresponding Self Assessment return.
The data from this API is based on information we receive from employers and pension providers.
- Pension providers sometimes don't tell us that income has come from a pension. In these cases, the API reports the income source as an employment.
- If the individual received a State Pension lump sum in the given tax year, this API will report it as an employment
with a specific PAYE reference of
When an API changes in a way that is backwards-incompatible, we increase the version number of the API. See our reference guide for more on versioning.
We use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:
- 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action
- 400 to 499 if it failed because of a client error by your application
- 500 to 599 if it failed because of an error on our server
Errors specific to each API are shown in the Endpoints section, under Response. See our reference guide for more on errors.