ppaperbrainTemplates
Sign inGet started
← All templates
HR & People

Payslip

Pay statement — earnings and deductions side by side, net pay, and YTD figures. Every number comes from the payroll system.

The contract

Fields your API call provides. Amounts and totals are always computed by the caller — templates only format.

net_paynumberrequired
ytd_netnumberrequired
earnings[].labelstringrequired
earnings[].amountnumberrequired
employee.idstringrequired
employee.namestringrequired
employee.titlestringrequired
employer.namestringrequired
employer.addressstringrequired
pay_datestringrequired
gross_paynumberrequired
ytd_grossnumberrequired
deductions[].labelstringrequired
deductions[].amountnumberrequired
period_endstringrequired
period_startstringrequired
total_deductionsnumberrequired

MCP-ready: forks of this template will expose generate_payslip when the MCP server ships.

Generate it (after you fork & publish)

curl -X POST https://your-paperbrain-host/api/generate/gen_<your-id> \
  -H "Content-Type: application/json" \
  -d '{
    "net_pay": 4806,
    "ytd_net": 52866,
    "earnings": [
      {
        "label": "Base salary",
        "amount": 8250
      },
      {
        "label": "On-call stipend",
        "amount": 250
      }
    ],
    "employee": {
      "id": "EMP-0214",
      "name": "Jordan Reyes",
      "title": "Senior Product Engineer"
    },
    "employer": {
      "name": "Lumen Labs",
      "address": "550 Mission Street, Floor 12, San Francisco, CA 94105"
    },
    "pay_date": "2026-06-01",
    "gross_pay": 8500,
    "ytd_gross": 93500,
    "deductions": [
      {
        "label": "Federal income tax",
        "amount": 1842.5
      },
      {
        "label": "State income tax (CA)",
        "amount": 691.25
      },
      {
        "label": "Social Security & Medicare",
        "amount": 650.25
      },
      {
        "label": "401(k) contribution (6%)",
        "amount": 510
      }
    ],
    "period_end": "2026-05-31",
    "period_start": "2026-05-16",
    "total_deductions": 3694
  }'

gen_<your-id>is your generator's id once you fork and publish. The body shown is this template's sample data — the exact shape the contract validates.