Skip to main content
GET
/
payslip
/
data
/
{employeeId}
/
{year}
/
{period}
Get payslip data for an employee
curl --request GET \
  --url https://api.sandbox.flowpayroll.ai/v1/payslip/data/{employeeId}/{year}/{period} \
  --header 'X-Auth-Token: <api-key>'
{
  "message": {
    "text": "Payslip Data Retrieved",
    "token": "getPayslipDataRetrieved"
  },
  "content": {
    "data": {
      "employeeDetails": {
        "id": "EMP01JPW80Q2B7Q9RGGRY29VGC8WM",
        "name": {
          "title": "Mr",
          "firstName": "John",
          "lastName": "Doe",
          "initials": "JD"
        },
        "address": {
          "line1": "123 Main Street",
          "line2": "Apartment 4B",
          "city": "London",
          "county": "Greater London",
          "postcode": "SW1A 1AA",
          "countryCode": "GB"
        },
        "birthDate": "1980-01-12",
        "birthGender": "Male",
        "payrollId": "PAY123",
        "employeeCode": "EMP001",
        "hoursWorkedCategory": "Above30Hours",
        "taxCode": {
          "code": "1257L",
          "effectiveDate": "2024-04-06",
          "reason": "Standard tax code",
          "issuedBy": "HMRC",
          "week1Month1": false
        },
        "nationalInsuranceCategory": "A",
        "nationalInsuranceNumber": "AB123456C",
        "passportNumber": "123456789",
        "starterDetails": {
          "startDate": "2024-01-15",
          "starterDeclaration": "ThisIsMyOnlyJob",
          "secondedDetails": {
            "stayStatus": "Stay183DaysOrMore",
            "eEACitizen": true,
            "ePM6": false
          },
          "alreadySentToHmrcFps": false
        },
        "studentDetails": {
          "studentLoanDetails": {
            "loanType": "Plan2",
            "startDate": "2020-09-01",
            "endDate": "2023-06-30"
          },
          "postgraduateLoanDetails": {
            "loanType": "PostgraduateLoan",
            "startDate": "2023-09-01",
            "endDate": "2024-06-30"
          }
        },
        "directorDetails": {
          "directorsNICType": "Annual",
          "appointmentDate": "2024-01-15"
        },
        "leaverDetails": {
          "leavingDate": "2024-12-31",
          "reason": "Retirement",
          "issuedBy": "Employer"
        },
        "workplaceDetails": {
          "workplacePostcode": "SW1A 1AA"
        },
        "bankAccounts": [
          {
            "accountNumber": "12345678",
            "sortCode": "123456",
            "accountHolderName": "John Doe",
            "isPrimaryPayrollAccount": true,
            "allocationPercentage": 100
          }
        ]
      },
      "employerDetails": {
        "id": "LOAD_TEST",
        "organisationInformation": {
          "organisationId": "ORG123456789",
          "name": {
            "legalName": "Acme Corporation Ltd",
            "tradingName": "Acme Corp"
          },
          "organisationType": "LimitedCompany",
          "companyRegistrationNumber": "12345678",
          "businessType": "LimitedCompany",
          "registredOfficeAddress": {
            "line1": "456 Business Park",
            "line2": "Suite 100",
            "city": "Manchester",
            "county": "Greater Manchester",
            "postcode": "M1 1AA",
            "countryCode": "GB"
          },
          "correspondenceAddress": {
            "line1": "456 Business Park",
            "line2": "Suite 100",
            "city": "Manchester",
            "county": "Greater Manchester",
            "postcode": "M1 1AA",
            "countryCode": "GB"
          },
          "companyContactDetails": {
            "name": "HR Department",
            "email": "hr@acme.com",
            "phone": "0161 123 4567"
          },
          "primaryContactDetails": {
            "name": "John Smith",
            "email": "john.smith@acme.com",
            "phone": "0161 123 4568"
          },
          "createdBy": "System",
          "createdDate": "2024-01-01T00:00:00.000Z",
          "updatedBy": "System",
          "updatedDate": "2024-01-01T00:00:00.000Z"
        },
        "taxReferenceNumbers": {
          "employerPayeReference": {
            "officeNumber": "123",
            "referenceNumber": "AB12345"
          },
          "accountsOfficeReference": "123PX00123456",
          "selfAssessmentUniqueTaxpayerReference": "1234567890",
          "corporationTaxReferenceUniqueTaxpayerReference": "1234567890"
        }
      },
      "year": 2024,
      "period": 2,
      "payrollConfigId": "01JNR9P81W74HYCN35X1EEFDZE",
      "frequency": "Monthly",
      "summaryItems": [
        {
          "id": "PAYLINE-01JPW80Q2B5B76SQ2K56BZ3DHA",
          "description": "Regular Hours",
          "amount": 306,
          "type": "Employee",
          "category": "Earnings",
          "payElementId": "base_salary",
          "date": "2024-02-28"
        },
        {
          "id": "PAYLINE-01JPW80Q2B5B76SQ2K56BZ3DHA2",
          "description": "Basic Tax",
          "amount": -45.2,
          "type": "Employee",
          "category": "Deductions",
          "payElementId": "tax",
          "date": "2024-02-28"
        }
      ],
      "forPeriod": {
        "gross": 306,
        "grossTaxable": 306,
        "grossNi": 306,
        "tax": 45.2,
        "ni": 25.3,
        "employerNi": 35.4,
        "studentLoan": 0,
        "postgraduateLoan": 0,
        "net": 235.5,
        "niBand": {
          "A": {
            "employeeNi": 290.1,
            "employerNi": 310.25,
            "totalNi": 600.35,
            "grossForEmployeeNi": 3500,
            "grossForEmployerNi": 3500,
            "bandResults": {
              "ZeroToLel": {
                "grossInBand": 2000,
                "employeeNiForBand": 180,
                "employerNiForBand": 220
              },
              "PtToFust": {
                "grossInBand": 500,
                "employeeNiForBand": 110.1,
                "employerNiForBand": 90.25
              }
            }
          }
        },
        "statutory": {
          "SSP": 0,
          "SMP": 0
        }
      },
      "yearToDate": {
        "gross": 612,
        "grossTaxable": 612,
        "grossNi": 612,
        "tax": 90.4,
        "ni": 50.6,
        "employerNi": 70.8,
        "studentLoan": 0,
        "postgraduateLoan": 0,
        "net": 471,
        "niBand": {
          "A": {
            "employeeNi": 290.1,
            "employerNi": 310.25,
            "totalNi": 600.35,
            "grossForEmployeeNi": 3500,
            "grossForEmployerNi": 3500,
            "bandResults": {
              "ZeroToLel": {
                "grossInBand": 2000,
                "employeeNiForBand": 180,
                "employerNiForBand": 220
              },
              "PtToFust": {
                "grossInBand": 500,
                "employeeNiForBand": 110.1,
                "employerNiForBand": 90.25
              }
            }
          }
        },
        "statutory": {
          "SSP": 0,
          "SMP": 0
        }
      },
      "createdDate": "2025-03-21T14:17:19.076Z",
      "createdBy": "System",
      "updatedDate": "2025-03-21T14:17:19.076Z",
      "updatedBy": "System",
      "status": "Final",
      "paymentDate": null,
      "payPeriodStartDate": "2024-02-01",
      "payPeriodEndDate": "2024-02-29",
      "lateReason": null
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.flowpayroll.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-Auth-Token
string
header
required

Access token obtained from OAuth2 client credentials flow

Path Parameters

employeeId
string
required

ID of the employee

year
integer
required

Year of the payslip

period
integer
required

Pay period number within the year

Query Parameters

frequency
enum<string>

Optional payment frequency override. When provided, overrides the frequency from the employee's payroll config.

Available options:
Annual,
Monthly,
FourWeekly,
Fortnightly,
Weekly,
Daily
forceGenerate
boolean

Optional flag to force the generation of a payslip. If true, the payslip will be generated even if it already exists.

Response

Payslip data retrieved successfully

message
object
content
object
validationIssues
object[]
messageToken
string