curl --request GET \
--url https://api.cadanapay.com/v1/payrolls/{payrollId}/payslip-links \
--header 'Authorization: Bearer <token>'{
"payrollId": "7c4f1d36-2b9a-4bca-91e7-2b1f1e6e7c11",
"links": [
{
"personId": "04a8977d-5d99-4b28-8de4-8161401ca3fa",
"personName": "Jane Doe",
"paystubId": "1b2e3f4a-5c6d-7e8f-9012-345678901234",
"url": "https://example-bucket.s3.amazonaws.com/payslips/04a8977d.pdf?X-Amz-Signature=...",
"expiresAt": "2026-05-11T17:00:00Z"
},
{
"personId": "11111111-2222-3333-4444-555555555555",
"personName": "John Smith",
"paystubId": "2c3d4e5f-6a7b-8c9d-0e1f-234567890123",
"url": "https://example-bucket.s3.amazonaws.com/payslips/11111111.pdf?X-Amz-Signature=...",
"expiresAt": "2026-05-11T17:00:00Z"
}
],
"notReady": [
{
"personId": "22222222-3333-4444-5555-666666666666",
"status": "generating"
}
]
}Retrieve presigned download links for a payroll’s payslips. Each link expires after a short window, so fetch and use them promptly.
Pass format=zip to receive a single presigned URL pointing to a bundled archive of all ready payslips instead of per-person links.
Payslips that are still being generated (or failed to generate) are returned under notReady with a status of generating or error. Retry the request after generation completes to receive their links.
curl --request GET \
--url https://api.cadanapay.com/v1/payrolls/{payrollId}/payslip-links \
--header 'Authorization: Bearer <token>'{
"payrollId": "7c4f1d36-2b9a-4bca-91e7-2b1f1e6e7c11",
"links": [
{
"personId": "04a8977d-5d99-4b28-8de4-8161401ca3fa",
"personName": "Jane Doe",
"paystubId": "1b2e3f4a-5c6d-7e8f-9012-345678901234",
"url": "https://example-bucket.s3.amazonaws.com/payslips/04a8977d.pdf?X-Amz-Signature=...",
"expiresAt": "2026-05-11T17:00:00Z"
},
{
"personId": "11111111-2222-3333-4444-555555555555",
"personName": "John Smith",
"paystubId": "2c3d4e5f-6a7b-8c9d-0e1f-234567890123",
"url": "https://example-bucket.s3.amazonaws.com/payslips/11111111.pdf?X-Amz-Signature=...",
"expiresAt": "2026-05-11T17:00:00Z"
}
],
"notReady": [
{
"personId": "22222222-3333-4444-5555-666666666666",
"status": "generating"
}
]
}Documentation Index
Fetch the complete documentation index at: https://docs.cadanapay.com/llms.txt
Use this file to discover all available pages before exploring further.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Required when using a Platform API token. The tenant key identifying which business to operate on.
The unique identifier for the payroll
When set to zip, ready payslips are bundled into a single archive and returned as one presigned URL via zipUrl. Omit for per-person links under links.
zip Presigned download links for the payroll's payslips. Returns per-person links under links by default, or a single bundled archive under zipUrl when format=zip was requested. Payslips still generating (or failed) are listed under notReady.
"8ef9a712-cdae-4110-b1ea-9ba95abbee6e"
Per-person presigned download URLs. Returned when format is omitted. All links share the same expiresAt.
Show child attributes
Presigned URL pointing to a single archive containing all ready payslips. Returned only when format=zip was passed.
"https://example-bucket.s3.amazonaws.com/payslips/zips/7c4f1d36.zip?X-Amz-Signature=..."
ISO-8601 expiry of zipUrl. Returned only when format=zip was passed.
"2026-05-11T17:00:00Z"
Payslips that could not be linked. generating means the PDF has not finished rendering yet; error means generation or link creation failed. Retry the request after generation completes.
Show child attributes