This version is in beta - expect some breaking changes.

Individual Income API

Dates and amounts
Date Amount
Version and status
Available in Sandbox Yes
Sandbox base URL
Available in Production Yes
Production base URL


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 employment, as reported to HMRC by their employers through the PAYE process
  • income from pensions (other than state pension) and retirement annuities
  • income from other state benefits or grants, such as taxable Incapacity Benefit, contribution-based Employment and Support Allowance and the Self-Employment Income Support Scheme

The primary intended use for this information is to pre-populate an individual's Self Assessment tax return.

Data availability

Data is only available for taxpayers who are registered for Self Assessment.

The majority of data will only be available once PAYE reconciliation has been 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 6 June and runs for around one million individuals per working night. It has usually completed by the end of November. 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 for Self-Employment Income Support Scheme (SEISS) will be available from the beginning of the next tax year following a claim. For example, if SEISS is claimed in June 2021, the data will be available on 6 April 2022. It does not need to wait for reconciliation.

Data is no longer available once we have received and processed the corresponding Self Assessment return.

Data quality

The data from this API is based on information we receive from employers and pension providers.

Note that:

  • 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 267/LS500.


The endpoint in this API is user-restricted. Your users must grant authority for your software to access it by signing in to their HMRC online account.

The API supports individual and agent users. Note that:

  • Individual users can only access their own information.
  • Agent users can only access their own clients’ data.

The following options are supported for agents:

Option 1: Agent services account

If the agent uses an agent services account, they can access their existing 64-8 clients who they have linked to their agent services account (restricted to 2 years’ history)

Option 2: HMRC online services for agents account

If the agent uses an HMRC online services for agents account which is enrolled for Self Assessment for Agents, they will be able to access their existing 64-8 clients (restricted to 2 years’ history).


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.


You can use the sandbox environment to test this API.

It supports stateful behaviour. You can set up test data using the Individual PAYE Test Support API.

Skip to main content



Get annual income summary

Fetches an individual’s annual income summary for the given tax year.


This endpoint is user-restricted and requires an Authorization header containing an OAuth 2.0 Bearer Token with the read:individual-income scope.

Path parameters

Path parameters table
Name Description

The 10 digit self-assessment UTR for the individual.

For example: 2234567890


The tax year for the income being retrieved.

Tax year in the format YYYY-YY

For example: 2016-17

Request headers

Request headers Table
Name Description

Specifies the response format and the version of the API to be used.

For example: application/vnd.hmrc.1.2+json
An OAuth 2.0 Bearer Token with the read:individual-income scope.

For example: Bearer bb7fed3fe10dd235a2ccda3d50fb

See also fraud prevention.


HTTP status 200 (OK)

  "pensionsAnnuitiesAndOtherStateBenefits": {
    "otherPensionsAndRetirementAnnuities": 36.50,
    "incapacityBenefit": 980.45,
    "jobseekersAllowance": 89.99,
    "seissNetPaid": 55.55
  "employments": [
      "employerPayeReference": "123/AB456",
      "payFromEmployment": 22500.00
      "employerPayeReference": "456/AB456",
      "payFromEmployment": 8650.00

Response table
Name Description

Income from pensions, annuities and other state benefits.


The amount of income from pensions (other than State Pension), retirement annuities and taxable trivial payments.

For example: 36.50


The amount of taxable Incapacity Benefit and contribution-based Employment and Support Allowance.

For example: 980.45


The amount of income from Jobseeker’s Allowance.

For example: 89.99


The amount of income from the Self-Employment Income Support Scheme.

For example: 55.55


An unordered list of zero or more employments for which the taxpayer received an income in the given tax year.


The employer’s PAYE reference. A value of 267/LS500 indicates a State Pension lump sum.

For example: 123/AB456


The amount of pay from this employment (or State Pension lump sum), taken from the P45 or P60.

For example: 22500.00

Error scenarios

Error scenarios table
Scenario HTTP status Code

Invalid UTR

400 (Bad Request)


Invalid tax year

400 (Bad Request)


User not authorised to access data for given UTR

401 (Unauthorized)


Data not available for given UTR and tax year (see the data availability section for more details)

404 (Not Found)


For error scenarios that are common across all APIs, and for error formats, see our reference guide.

Close Section

Skip to main content