Individual Benefits API
Date | Amount |
---|---|
Version and status | |
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 |
Overview
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 information about an employee’s or director’s benefits for a given tax year, as reported to HMRC by their employer(s) through the PAYE process. For example company cars and fuel, interest-free and low interest loans, private medical and dental insurance.
For more information, see HMRC’s A-Z guide to expenses and benefits
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 and reported benefits in the given tax year.
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 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 is no longer available once we have received and processed the corresponding Self Assessment return.
Versioning
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.
Errors
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.
Testing
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.
Endpoints
/individual-benefits/sa/{utr}/annual-summary/{taxYear}
Get benefits summary
GET
Fetches an individual’s annual benefits summary for the given tax year.
Path parameters
Name | Description |
---|---|
utr
string
required
|
The 10 digit self-assessment UTR for the individual.
For example: |
taxYear
string
required
|
The tax year for the benefits being retrieved. Tax year in the format
For example: |
Request headers
Name | Description |
---|---|
Accept
required
|
Specifies the response format and the version of the API to be used. application/vnd.hmrc.1.1+json
|
Authorization
required
|
An
OAuth 2.0 Bearer Token
with the read:individual-benefits scope.
For example: Bearer bb7fed3fe10dd235a2ccda3d50fb
|
See also fraud prevention.
Responses
HTTP status 200 (OK)
{ "employments": [ { "employerPayeReference": "123/AB456", "companyCarsAndVansBenefit": 44, "fuelForCompanyCarsAndVansBenefit": 99, "privateMedicalDentalInsurance": 64, "vouchersCreditCardsExcessMileageAllowance": 80, "goodsEtcProvidedByEmployer": 125, "accommodationProvidedByEmployer": 375, "otherBenefits": 16, "expensesPaymentsReceived": 415 }, { "employerPayeReference": "456/AB456", "companyCarsAndVansBenefit": 50, "fuelForCompanyCarsAndVansBenefit": 249, "privateMedicalDentalInsurance": 75, "vouchersCreditCardsExcessMileageAllowance": 23, "goodsEtcProvidedByEmployer": 250, "accommodationProvidedByEmployer": 275, "otherBenefits": 87, "expensesPaymentsReceived": 265 } ] }
Name | Description |
---|---|
employments
array
required
|
An unordered list of one or more employments for which the taxpayer reported any benefits for the given tax year. |
employerPayeReference
string
required
|
The employer’s PAYE reference.
For example: |
companyCarsAndVansBenefit
number
optional
|
The total value of company cars and vans.
For example: |
fuelForCompanyCarsAndVansBenefit
number
optional
|
The total value of fuel for company cars and vans.
For example: |
privateMedicalDentalInsurance
number
optional
|
The total value of private medical and dental treatment and insurance.
For example: |
vouchersCreditCardsExcessMileageAllowance
number
optional
|
The value of benefits in the form of vouchers, credit cards and excess mileage allowance.
For example: |
goodsEtcProvidedByEmployer
number
optional
|
The total value of goods and other assets provided by the employer.
For example: |
accommodationProvidedByEmployer
number
optional
|
The total value of accommodation provided by the employer.
For example: |
otherBenefits
number
optional
|
The total value of other benefits, including interest-free loans and loans below the HMRC official rates.
For example: |
expensesPaymentsReceived
number
optional
|
The value of expenses payments received and balancing charges.
For example: |
Error scenarios
Scenario | HTTP status | Code |
---|---|---|
Invalid UTR |
400 (Bad Request) |
SA_UTR_INVALID |
Invalid tax year |
400 (Bad Request) |
TAX_YEAR_INVALID |
User not authorised to access data for given UTR |
401 (Unauthorized) |
UNAUTHORIZED |
Data not available for given UTR and tax year (see the data availability section for more details) |
404 (Not Found) |
NOT_FOUND |
For error scenarios that are common across all APIs, and for error formats, see our reference guide.
Close Section