{"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`.\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`.\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` defaults to True if 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    • `is_included_in_super_calculations` defaults to True if not supplied.\n    • `is_super` defaults to True if not supplied.\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 and feed RESC as usual.\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":true}]],"example":[{"description":"Laptop Salary Sacrifice"},{"amount":"300.00","description":"Car Salary Sacrifice","is_included_in_super_calculations":false,"is_super":true}]},"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"}}},"type":"object","title":"PayCreate"}}