Payslip template
A payslip with employee number, department, name, pay date and pay period, three blocks for attendance, earnings and deductions, net pay, bank transfer details and year-to-date totals. Each block takes an array, so you can use your own allowances and deductions.
- Company names, people, addresses and amounts in the sample are fictional.
- The sample layout is in Japanese. You can change any text in the template editor.

Use cases
- Bulk payslip issuance from payroll systems
- Distributing PDF payslips through an employee portal
- Bonus statements and payslips for hourly staff
Merge fields
The data fields you send to the API. Fields inside an array are shown as array.field.
| Field | Description |
|---|---|
issued_at | Issue date (YYYY-MM-DD) |
pay_month | Pay month (e.g. 2026年10月) |
employee.number | Employee number |
employee.department | Department |
employee.name | Employee name |
paid_at | Pay date (YYYY-MM-DD) |
period.start | Pay period start (YYYY-MM-DD) |
period.end | Pay period end (YYYY-MM-DD) |
company.name | Company name |
company.address | Company address |
company.department | Department in charge |
company.tel | Phone number |
attendance | Attendance rows (array, up to 13) |
attendance.name | Attendance item |
attendance.value | Days or hours (e.g. 20 日, 12:30) |
work_hours_total | Total working hours |
earnings | Earnings rows (array, up to 13) |
earnings.name | Earnings item |
earnings.amount | Amount |
gross_pay | Gross pay |
deductions | Deduction rows (array, up to 13) |
deductions.name | Deduction item |
deductions.amount | Amount |
total_deductions | Total deductions |
bank.name | Bank name |
bank.branch | Branch |
bank.type | Account type |
bank.number | Account number (masked recommended) |
bank.amount | Amount transferred |
net_pay | Net pay |
ytd.taxable | Year-to-date taxable earnings |
ytd.social_insurance | Year-to-date social insurance |
ytd.income_tax | Year-to-date income tax |
note | Notes |
How to use it
- In the dashboard, choose Create template, select "Start from a template" and pick "Payslip". The layout and sample data are copied into your project.
- Edit the company name, logo and field positions in the template editor to match your own format.
- Send the template name and data to
POST /v1/rendersto issue a PDF.
With a test API key (sk_test_) you can issue documents from the draft. Publish a version before issuing with a production API key. From an AI assistant, specify the same template in the from of the MCP create_template tool.
Create and issue via the API
Create a template by setting from to the template ID (payslip) in POST /v1/templates, then send the template name and data to POST /v1/renders.
curl https://api.docrelay.jp/v1/templates \
-H "Authorization: Bearer $DOCRELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Payslip", "from": "payslip" }'curl https://api.docrelay.jp/v1/renders \
-H "Authorization: Bearer $DOCRELAY_API_KEY" \
-H "Content-Type: application/json" \
-d @payslip.json \
-o payslip.pdf{
"template": "Payslip",
"format": "pdf",
"data": {
"issued_at": "2026-10-21",
"pay_month": "2026年10月",
"employee": {
"number": "E-102345",
"department": "営業本部 第一営業部",
"name": "見本 太郎"
},
"paid_at": "2026-10-23",
"period": {
"start": "2026-09-21",
"end": "2026-10-20"
},
"company": {
"name": "サンプル商事株式会社",
"address": "東京都千代田区見本町1-2-3 サンプルビル5F",
"department": "人事部 給与課",
"tel": "03-0000-0000"
},
"attendance": [
{
"name": "出勤日数",
"value": "20 日"
}
],
"work_hours_total": "172:30",
"earnings": [
{
"name": "基本給",
"amount": 280000
}
],
"gross_pay": 373138,
"deductions": [
{
"name": "健康保険料",
"amount": 18829
}
],
"total_deductions": 81622,
"bank": {
"name": "見本銀行",
"branch": "本店営業部",
"type": "普通",
"number": "****567",
"amount": 291516
},
"net_pay": 291516,
"ytd": {
"taxable": 3452780,
"social_insurance": 586720,
"income_tax": 67890
},
"note": "11 月分より、住民税の特別徴収額が変更になります。年末調整の書類は 11 月 13 日(金)までに人事部へご提出くださ…"
}
}Early access is open
We are preparing for launch. Pre-register and we will notify you when the service becomes available.



