---
title: "Download an approved payslip"
method: GET
path: "/payroll/payslip/pdf"
tags: ["Payroll"]
---

# Download an approved payslip

`GET /payroll/payslip/pdf`

## Request

- Base URL: `https://api.app.lastaccountingcompany.com/portal`
- URL: `https://api.app.lastaccountingcompany.com/portal/payroll/payslip/pdf`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lastaccountingcompany/apis/lac-customer-api/docs/payroll/payslip/pdf/get.ts> (a function with typed inputs; its response is checked against the schema)

NOT available to API keys — requires an interactive admin/approver session. Returns a PDF only after the payroll run is approved and its payroll voucher is posted.

## Query parameters

- `customer_id` string
- `period` string
- `run_id` string
- `employee_id` string, required

## Response `200`

Payslip PDF.

## Other responses

- `401`: Missing or invalid bearer token.
- `403`: Insufficient scope or role — e.g. a read-scoped key on a mutating method, or an API key on an admin/approver-only endpoint.
- `409`: Payroll is not approved and posted yet.

---

[API](https://skmtc.dev/lastaccountingcompany/apis/lac-customer-api.md) - [All operations](https://skmtc.dev/lastaccountingcompany/apis/lac-customer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/lastaccountingcompany/apis/lac-customer-api/revisions/52e277b4f031?raw)
