Skip to main content
POST
/
payroll
/
line
/
{employeeId}
Upload payroll lines
curl --request POST \
  --url https://api.sandbox.flowpayroll.ai/v1/payroll/line/{employeeId} \
  --header 'Content-Type: application/json' \
  --header 'X-Auth-Token: <api-key>' \
  --data '
[
  {
    "date": "<string>",
    "units": 123,
    "payRate": 123,
    "payElementId": "<string>",
    "id": "<string>",
    "clientId": "<string>",
    "poNumber": "PO-2025-001",
    "description": "<string>",
    "unitType": "Amount",
    "chargeRate": 123,
    "chargeUnits": 1,
    "chargeValue": 100,
    "chargeDescription": "<string>",
    "tags": [
      {
        "name": "FullTime",
        "group": "EmploymentType",
        "value": "FullTime"
      }
    ],
    "eligibility": {
      "courtOrders": {
        "cmsDeo": true,
        "dea": true,
        "aeoPriority": false,
        "aeoNonPriority": false,
        "ctaeo": false,
        "ea": false,
        "mcaeo": false
      }
    },
    "paymentDetails": {
      "accountName": "CMS Central Account",
      "accountNumber": "12345678",
      "sortCode": "12-34-56",
      "paymentReference": "CMS-2025-UK01",
      "paymentCategory": "CourtOrders"
    },
    "attachments": [
      {
        "filename": "invoice.pdf",
        "contentType": "application/pdf",
        "fileSize": 102400
      }
    ],
    "attachmentUploadUrls": [
      {
        "attachmentId": "<string>",
        "filename": "<string>",
        "uploadUrl": "<string>",
        "expiresAt": "2023-11-07T05:31:56Z"
      }
    ],
    "invoiceId": "INV-001",
    "billingStatus": "None"
  }
]
'
{
  "message": {
    "text": "<string>",
    "token": "<string>",
    "tokenArguments": [
      {
        "name": "<string>",
        "value": "<string>"
      }
    ]
  },
  "content": {
    "data": {
      "id": "PAYLINE-001",
      "clientId": "CLIENT-001",
      "employeeId": "EMPLOYEE-001",
      "date": "2024-05-20",
      "payrollDate": "2024-07-06",
      "originalValue": 123,
      "canEdit": true,
      "description": "Morning shift",
      "unitType": "Amount",
      "units": 8,
      "payRate": 10.5,
      "chargeRate": 15.5,
      "chargeUnits": 1,
      "chargeDescription": "<string>",
      "payElementId": "PAYELEM-001",
      "eligibility": {
        "courtOrders": {
          "cmsDeo": true,
          "dea": true,
          "aeoPriority": false,
          "aeoNonPriority": false,
          "ctaeo": false,
          "ea": false,
          "mcaeo": false
        }
      },
      "paymentDetails": {
        "accountName": "CMS Central Account",
        "accountNumber": "12345678",
        "sortCode": "12-34-56",
        "paymentReference": "CMS-2025-UK01",
        "paymentCategory": "CourtOrders"
      },
      "lineItemMetadata": {
        "courtOrders": {
          "protectedEarningsAmount": 100,
          "shortfallCarryForward": 0,
          "rateType": "StandardTable",
          "adminFeeApplied": true,
          "tableType": "A",
          "remittanceReference": "REF123",
          "remittanceDeadline": "5 days",
          "jurisdiction": "ENGLAND",
          "aeoCategory": "Priority"
        }
      },
      "isPensionable": true,
      "tags": [
        {
          "name": "FullTime",
          "group": "EmploymentType",
          "value": "FullTime"
        }
      ],
      "attachments": [
        {
          "id": "<string>",
          "lineItemId": "<string>",
          "filename": "<string>",
          "contentType": "<string>",
          "fileSize": 123,
          "uploadedDate": "2023-11-07T05:31:56Z",
          "uploadedBy": "<string>",
          "downloadUrl": "<string>",
          "downloadUrlExpiresAt": "2023-11-07T05:31:56Z"
        }
      ],
      "attachmentUploadUrls": [
        {
          "attachmentId": "<string>",
          "filename": "<string>",
          "uploadUrl": "<string>",
          "expiresAt": "2023-11-07T05:31:56Z"
        }
      ],
      "invoiceId": "INV-001",
      "creditNoteId": "CN-001",
      "billingStatus": "None",
      "poNumber": "PO-12345"
    },
    "metadata": {
      "dateFormat": "yyyy-MM-dd",
      "dateTimeFormat": "yyyy-MM-ddTHH:mm:ss.fffZ",
      "paginationToken": "<string>"
    }
  },
  "validationIssues": [
    {
      "field": "<string>",
      "reason": "<string>",
      "reasonToken": "<string>",
      "reasonTokenArguments": [
        {
          "name": "<string>",
          "value": "<string>"
        }
      ]
    }
  ],
  "messageToken": "<string>"
}

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

Body

application/json
date
string
required
unitName
enum<string>
required
Available options:
Hour,
Day,
Week,
Month,
Year,
Fixed,
Informational,
Percentage
units
number
required
payRate
number
required
payElementId
string
required

The ID of the pay element associated with this payroll line.

id
string

Optional unique identifier for the payroll line

clientId
string
poNumber
string | null

Purchase order number for billing purposes

Example:

"PO-2025-001"

description
string
unitType
enum<string>
default:Amount

The unit type for calculation. Amount uses payRate * units, Percentage uses payRate * (units / 100)

Available options:
Amount,
Percentage
chargeRate
number
chargeUnits
number
Example:

1

chargeValue
number<decimal> | null

The charge value times the charge units

Example:

100

chargeDescription
string | null

Charge description for billing; when not provided and clientId is set, defaults to the pay description.

tags
object[]
eligibility
object

Eligibility flags for this payroll line (court orders, pensions, etc.)

Example:
{
"courtOrders": {
"cmsDeo": true,
"dea": true,
"aeoPriority": false,
"aeoNonPriority": false,
"ctaeo": false,
"ea": false,
"mcaeo": false
}
}
paymentDetails
object

Payment details (BACS information) that can override default employee bank account

attachments
object[] | null

Attachment metadata to include when creating the payroll line item (optional, only used during batch upload)

attachmentUploadUrls
object[]

Pre-signed S3 URLs for uploading attachments (only present when attachments were provided in the request)

invoiceId
string | null

The ID of the invoice associated with the payroll line item

Example:

"INV-001"

billingStatus
enum<string> | null

The billing status of the payroll line item

Available options:
None,
Accrued,
Invoiced
Example:

"None"

Response

Payroll Uploaded

message
object
content
object
validationIssues
object[]
messageToken
string