{"name":"PayCreate","resolved":false,"schema":{"properties":{"employee_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employee Id","description":"The internal Lightning Payroll (LP) unique ID for the employee. Use this if `identifier_type=employee_id`.","examples":[1234],"example":1234},"employee_number":{"anyOf":[{"type":"string","maxLength":32,"minLength":0},{"type":"null"}],"title":"Employee Number","description":"The external user-controlled employee number. Required only if `identifier_type=employee_number`. Must be unique across ALL companies.","examples":["EMP001"],"example":"EMP001"},"hours":{"items":{"$ref":"#/components/schemas/PayHours"},"type":"array","title":"Hours","description":"Optional list of pay hour items (may be empty), including description, rate, multiplier, or pay-rate mapping keys (`rate_reference` / `rate_description`), units, overtime status, and value.","examples":[[{"description":"Ordinary Time","is_overtime":false,"rate":"30.00","units":"hours","value":"37.5"},{"description":"Saturday Overtime","is_overtime":true,"multiplier":"1.5","units":"hours","value":"5.0"},{"description":"Ordinary Time","rate_reference":"system:ordinary_time","units":"hours","value":"7.6"}]],"example":[{"description":"Ordinary Time","is_overtime":false,"rate":"30.00","units":"hours","value":"37.5"},{"description":"Saturday Overtime","is_overtime":true,"multiplier":"1.5","units":"hours","value":"5.0"},{"description":"Ordinary Time","rate_reference":"system:ordinary_time","units":"hours","value":"7.6"}]},"leave":{"items":{"$ref":"#/components/schemas/Leave"},"type":"array","title":"Leave","description":"Optional list of leave items (may be empty), including description, leave type, rate/multiplier, hours, date, and optional leave loading amount. `rate` is optional; when omitted the employee's pay_rate_per_hour is used.","examples":[[{"date":"2023-01-01","description":"Annual Leave","hours":"7.6","leave_loading_amount":"3.80","leave_type":"HOLIDAY","multiplier":"1.0"}]],"example":[{"date":"2023-01-01","description":"Annual Leave","hours":"7.6","leave_loading_amount":"3.80","leave_type":"HOLIDAY","multiplier":"1.0"}]},"pay_department":{"anyOf":[{"type":"string","maxLength":32,"minLength":0},{"type":"null"}],"title":"Pay Department","description":"Department/Cost-centre name or code to be applied to all items in this entire pay. ","examples":["Engineering"],"example":"Engineering"},"allowances":{"anyOf":[{"items":{"$ref":"#/components/schemas/PayAllowance-Input"},"type":"array"},{"type":"null"}],"title":"Allowances","description":"A list of allowances to be included in the pay.\n\nUsage rules:\n- IDs are not accepted; providing an `id` will raise a 400 Bad Request because it's a forbidden field. Match allowances by `description` instead.\n- The API will attempt to find an existing allowance for the employee with the same `description`: the employee's own allowances first, then any company allowance attached to the employee.\n  - If a match is found, that allowance will be reused and creation-only required fields can be omitted (e.g. `amount`, `allowance_category`—existing values are reused).\n  - If no match is found, a NEW allowance will be created for this employee. In this case, `description`, `amount` and `allowance_category` (code) are REQUIRED.\n    • `allowance_category` must be one of the codes: AD, CD, KN, LD, MD, OD, QN, RD, TD (labels for reference: Cents per KM, Award Transport, Laundry, Overtime Meals, Domestic & Overseas Travel/Accommodation, Tools, Tasks, Qualifications/Certificates, Other). Only codes are accepted for new allowances.     • `is_taxable` defaults to True if not supplied.\n    • `is_itemised` defaults to False if not supplied.\n    • `is_included_in_super_calculations` defaults to True if not supplied.\n- `amount` is the PER-UNIT rate and `units` is the quantity (default 1). Three laundry allowances at $5.00 each is `amount` 5.00 with `units` 3, giving a 15.00 line total; a flat $15.00 is `amount` 15.00 with `units` omitted.\n- `total_amount` is read-only. It is returned on pay responses and ignored if you send it.","examples":[[{"allowance_category":"TD","amount":"50.00","description":"Tool Allowance"},{"allowance_category":"LD","amount":"5.00","description":"Laundry Allowance","units":"3"},{"allowance_category":"RD","amount":"200.00","description":"Car Allowance","is_included_in_super_calculations":false,"is_itemised":true,"is_taxable":true}]],"example":[{"allowance_category":"TD","amount":"50.00","description":"Tool Allowance"},{"allowance_category":"LD","amount":"5.00","description":"Laundry Allowance","units":"3"},{"allowance_category":"RD","amount":"200.00","description":"Car Allowance","is_included_in_super_calculations":false,"is_itemised":true,"is_taxable":true}]},"deductions":{"anyOf":[{"items":{"$ref":"#/components/schemas/PayDeduction-Input"},"type":"array"},{"type":"null"}],"title":"Deductions","description":"A list of deductions to be included in the pay.\n\nUsage rules:\n- IDs are not accepted; providing an `id` will raise a 400 Bad Request because it's a forbidden field. Match deductions by `description` instead.\n- The API will attempt to find an existing deduction for the employee with the same `description`: the employee's own deductions first, then any company deduction attached to the employee (matched case-insensitively, and skipped when the employee has their own deduction of that name).\n  - If a match is found, that deduction will be reused and creation-only required fields can be omitted (e.g. `amount`, `classification`, existing values are reused).\n  - If no match is found, a NEW deduction will be created for this employee. In this case, `description`, `amount`, and `classification` (code) are REQUIRED.\n    • `classification` must be one of: CHARITY, CHILD_SUPPORT_DEDUCTION, CHILD_SUPPORT_GARNISHEE, NORMAL, UNION_FEES. Only codes are accepted for new deductions.\n    • `is_included_in_super_calculations` is deprecated and has no effect on super for an API deduction; a new deduction stores true if it is not supplied.\n- OMIT this field and the employee's standing deductions are applied for you, exactly as they are when Lightning Payroll creates the pay: every deduction the customer set to auto apply, priced off this pay's gross or net where the deduction is a percentage, and capped by any limit set on it. That is how union fees and child support keep coming out of a pay created here.\n- SEND a list to own this pay's deductions instead, and nothing is copied. Send `[]` for a pay that is to have no deductions at all.","examples":[[{"amount":"25.00","classification":"UNION_FEES","description":"Union Fees"},{"amount":"100.00","classification":"NORMAL","description":"Health Insurance","is_included_in_super_calculations":false}]],"example":[{"amount":"25.00","classification":"UNION_FEES","description":"Union Fees"},{"amount":"100.00","classification":"NORMAL","description":"Health Insurance","is_included_in_super_calculations":false}]},"bonuses":{"anyOf":[{"items":{"$ref":"#/components/schemas/PayBonus-Input"},"type":"array"},{"type":"null"}],"title":"Bonuses","description":"A list of bonuses to be included in the pay.\n\nUsage rules:\n- IDs are not accepted; providing an `id` will raise a 400 Bad Request because it's a forbidden field. Match bonuses by `description` instead.\n- The API will attempt to find an existing bonus for the employee with the same `description`.\n  - If a match is found, that bonus will be reused and creation-only required fields can be omitted (e.g. `amount`, `tax_method`, and any range dates—existing values are reused).\n  - If no match is found, a NEW bonus will be created for this employee. In this case, `description`, `amount`, and `tax_method` are REQUIRED.\n    • `tax_method` must be one of: NORMAL_EARNINGS = As normal earnings; SPREAD_OVER_SPECIFIC_RANGE = Use date range; SPREAD_OVER_FINANCIAL_YEAR = Over this financial year; METHOD_A_WHOLE_YEAR = Method A (Whole Year); METHOD_A_SPECIFIC_RANGE = Method A (Use Date Range); METHOD_B1 = Method B(i)(Use Date Range); METHOD_B2 = Method B(ii)(Whole Year) (send the *code*, docs show the labels). Defaults to 'NORMAL_EARNINGS' if not supplied.\n    • If `tax_method` is a date-range method, `start_date` and `end_date` are REQUIRED.\n    • `is_included_in_super_calculations` defaults to True if not supplied.\n    • `is_directors_fees` defaults to False if not supplied.\n    • `is_return_to_work` defaults to False if not supplied.","examples":[[{"amount":"500.00","description":"Performance Bonus","tax_method":"NORMAL_EARNINGS"},{"amount":"1000.00","description":"Director's Fee","end_date":"2023-01-31","is_directors_fees":true,"is_included_in_super_calculations":false,"is_return_to_work":false,"start_date":"2023-01-01","tax_method":"SPREAD_OVER_SPECIFIC_RANGE"}]],"example":[{"amount":"500.00","description":"Performance Bonus","tax_method":"NORMAL_EARNINGS"},{"amount":"1000.00","description":"Director's Fee","end_date":"2023-01-31","is_directors_fees":true,"is_included_in_super_calculations":false,"is_return_to_work":false,"start_date":"2023-01-01","tax_method":"SPREAD_OVER_SPECIFIC_RANGE"}]},"pay_sacrifices":{"anyOf":[{"items":{"$ref":"#/components/schemas/PaySacrifice-Input"},"type":"array"},{"type":"null"}],"title":"Pay Sacrifices","description":"A list of pay sacrifices to be included in the pay.\n\nUsage rules:\n- IDs are not accepted; providing an `id` will raise a 400 Bad Request because it's a forbidden field. Match pay sacrifices by `description` instead.\n- The API will attempt to find an existing pay sacrifice for the employee with the same `description`.\n  - If a match is found, that pay sacrifice will be reused and creation-only required fields can be omitted (e.g. `amount`—existing values are reused).\n  - If no match is found, a NEW pay sacrifice will be created for this employee. In this case,    `description` and `amount` are REQUIRED.\n    • Australia: `is_included_in_super_calculations` defaults to True if not supplied. A super sacrifice always counts for super guarantee, so it only matters when `is_super` is false.\n    • Australia: `is_super` defaults to True if not supplied.\n- Australia: `employee_fund_id` sends a super sacrifice to one of the employee's other super funds. On a new sacrifice it is saved with the sacrifice, so later pays use it too. On a matched existing sacrifice it applies to this pay only and must be sent again on each pay. Omit it to keep the fund the employee's salary sacrifice already uses.\n- New Zealand: there is no super sacrifice, so for an NZ company `is_super`, `is_included_in_super_calculations` and `employee_fund_id` are ignored and saved as off. Sending them is not an error.\n- OMIT this field and the employee's standing salary sacrifices are applied for you, exactly as they are when Lightning Payroll creates the pay, priced off this pay's gross where the sacrifice is a percentage, and they reduce the taxable gross as usual (and, in Australia, feed RESC).\n- SEND a list to own this pay's salary sacrifices instead, and nothing is copied. Send `[]` for a pay that is to have none.","examples":[[{"description":"Laptop Salary Sacrifice"},{"amount":"300.00","description":"Car Salary Sacrifice","is_included_in_super_calculations":false,"is_super":false}]],"example":[{"description":"Laptop Salary Sacrifice"},{"amount":"300.00","description":"Car Salary Sacrifice","is_included_in_super_calculations":false,"is_super":false}]},"back_payments":{"anyOf":[{"items":{"$ref":"#/components/schemas/BackPayments-Input"},"type":"array"},{"type":"null"}],"title":"Back Payments","description":"A list of back payments to be included in the pay.\n\nUsage rules:\n- IDs are not accepted; providing an `id` will raise a 400 Bad Request because it's a forbidden field. Match back payments by `description` and `amount` instead.\n- The API will attempt to find an existing back payment for the employee with the same `description` and `amount`.\n  - If a match is found, that back payment will be reused.\n  - If no match is found, a NEW back payment will be created for this employee. In this case, `description`, `amount`, and `stp_category` (code, underscored) are REQUIRED.\n    • `stp_category` must be one of: BONUS_COMMISSION_NON_DIRECTOR_S_FEES, DIRECTOR_S_FEES, GROSS, ITEMISED_ALLOWANCESAD, ITEMISED_ALLOWANCESCD, ITEMISED_ALLOWANCESKN, ITEMISED_ALLOWANCESLD, ITEMISED_ALLOWANCESMD, ITEMISED_ALLOWANCESOD, ITEMISED_ALLOWANCESQN, ITEMISED_ALLOWANCESRD, ITEMISED_ALLOWANCESTD, LEAVEA, LEAVEC, LEAVEO, LEAVEP, LEAVEU, LEAVEW, OVERTIME, UNCLASSIFIED. Only codes are accepted for new back payments.\n    • `tax_method`, `start_date`, and `end_date` are optional.","examples":[[{"amount":"200.00","description":"Back Pay Adjustment","end_date":"2023-01-31","start_date":"2023-01-01","stp_category":"GROSS","tax_method":"NORMAL_EARNINGS"}]],"example":[{"amount":"200.00","description":"Back Pay Adjustment","end_date":"2023-01-31","start_date":"2023-01-01","stp_category":"GROSS","tax_method":"NORMAL_EARNINGS"}]},"termination":{"anyOf":[{"$ref":"#/components/schemas/TerminationCreate"},{"type":"null"}],"description":"Include this to make the pay the employee's final pay and end their employment.\n\nLightning Payroll adds the unused leave payouts and their tax on top of whatever else the pay carries, and the employee is terminated when the pay is created, since pays created here are processed straight away. Read the calculated result back from `termination` on the response, or from `GET /api/employees/{employee_id}/termination`.\n\nThe fields differ by country: send the Australian ones for an Australian company and the New Zealand ones for a New Zealand company. Sending the wrong country's field is refused rather than ignored.\n\nUse `POST /api/employees/{employee_id}/terminate` instead when there is nothing else on the final pay.","examples":[{"cessation_type_code":"V","reason":"TERMINATION","termination_date":"2026-09-11"}],"example":{"cessation_type_code":"V","reason":"TERMINATION","termination_date":"2026-09-11"}},"auto_calculate":{"type":"boolean","title":"Auto Calculate","description":"Leave this `true` and Lightning Payroll calculates the tax and super (KiwiSaver in New Zealand) for the pay, and applies the employee's standing deductions and salary sacrifices when you omit those lists.\n\nSet it to `false` to have the pay hold exactly the figures you send, with no automatic monetary recalculation. Leave still accrues as usual. Use this for a pay that was already worked out somewhere else: a single catch-up pay carrying an employee's year-to-date totals when they move to Lightning Payroll part way through the year, or historic pays copied from another payroll system. With it off:\n- `tax` and the other amounts below are taken as sent, and any you leave out are 0.\n- Omitted `deductions` and `pay_sacrifices` mean none; standing ones are not copied onto the pay.\n- The pay's tax and super are locked, so they are never recalculated later.\n- `termination` cannot be sent.\n\nThe amounts below are refused while `auto_calculate` is `true`.","default":true,"examples":[true],"example":true},"stp_reported_externally":{"type":"boolean","title":"Stp Reported Externally","description":"Australia only, with `auto_calculate` set to `false`. Set to `true` only when these historical amounts were already reported to STP in another system. Excludes this pay from unsubmitted STP pays and direct submission; its amounts remain in YTD totals. This records your assertion, not an ATO receipt.","default":false},"tax":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Tax","description":"Only with `auto_calculate` set to `false`. The total tax withheld from the pay: PAYG withholding in Australia, including any study and training support loan amount (`stsl`), or PAYE in New Zealand, which includes the ACC earners' levy."},"stsl":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Stsl","description":"Australia only, with `auto_calculate` set to `false`. The part of `tax` that is a study and training support loan repayment, such as HELP. Cannot be more than `tax`."},"compulsory_super_amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Compulsory Super Amount","description":"Australia only, with `auto_calculate` set to `false`. The super guarantee for the pay."},"resc_super_amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Resc Super Amount","description":"Australia only, with `auto_calculate` set to `false`. Additional employer super above the super guarantee (reportable employer super contributions). Excludes salary sacrifice, which goes in `pay_sacrifices`."},"nz_student_loan":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Nz Student Loan","description":"New Zealand only, with `auto_calculate` set to `false`. The student loan deduction, on top of `tax`."},"kiwisaver_employee_amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Kiwisaver Employee Amount","description":"New Zealand only, with `auto_calculate` set to `false`. The employee's KiwiSaver deduction."},"kiwisaver_employer_amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Kiwisaver Employer Amount","description":"New Zealand only, with `auto_calculate` set to `false`. The employer's KiwiSaver contribution after ESCT."},"kiwisaver_esct_amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Kiwisaver Esct Amount","description":"New Zealand only, with `auto_calculate` set to `false`. The employer superannuation contribution tax (ESCT) on the employer's KiwiSaver contribution."},"kiwisaver_paye_gross_uplift":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"},{"type":"null"}],"title":"Kiwisaver Paye Gross Uplift","description":"New Zealand only, with `auto_calculate` set to `false`. Employer KiwiSaver taxed as salary or wages under PAYE rather than ESCT. Usually 0."}},"type":"object","title":"PayCreate"}}