{"name":"PayCreate","resolved":true,"schema":{"properties":{"employee_id":{"type":"integer","title":"Employee Id","description":"The internal Lightning Payroll (LP) unique ID for the employee. Use this if `identifier_type=employee_id`.","example":1234},"employee_number":{"type":"string","maxLength":32,"minLength":0,"title":"Employee Number","description":"The external user-controlled employee number. Required only if `identifier_type=employee_number`. Must be unique across ALL companies.","example":"EMP001"},"hours":{"items":{"properties":{"description":{"type":"string","maxLength":60,"minLength":1,"title":"Description","description":"A brief description of the pay hours.","example":"Regular Hours, KMs, Overtime, Saturday, etc."},"rate":{"type":"number","title":"Rate","description":"The dollar amount per unit for the pay hours row, such as hourly rate, per kilometre rate, etc. Provide either `rate` or `multiplier`.","example":"30.00"},"multiplier":{"type":"number","title":"Multiplier","description":"Alternative to `rate`. Multiplies the employee's pay_rate_per_hour (e.g., 1.5 for time-and-a-half, 2.0 for double time).","example":"1.5"},"rate_reference":{"type":"string","title":"Rate Reference","description":"Optional stable pay-rate reference from `GET /api/employees/{employee_id}/pay-rates` (for example `system:ordinary_time`, `employee:42`, `company:73`). Use as an alternative to sending a raw `rate`.","example":"company:73"},"rate_description":{"type":"string","maxLength":60,"minLength":0,"title":"Rate Description","description":"Optional pay-rate description to resolve a rate by description for this employee. Use when you do not send `rate`. If multiple rates share the same description, the API will return a validation error and require `rate_reference`.","example":"Ordinary Time"},"units":{"type":"string","maxLength":32,"minLength":0,"title":"Units","description":"The type of units for the pay hours row, such as hours, kilometres, buckets, etc.","example":"hours"},"is_overtime":{"type":"boolean","title":"Is Overtime","description":"Indicates whether the hours are overtime hours, which affects super guarantee calculations.","default":false,"example":false},"value":{"type":"number","title":"Value","description":"The number of units for the pay hours row, such as hours worked, kilometres driven, etc.","example":"37.5"}},"type":"object","required":["description","units","value"],"title":"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.","example":[{"description":"Ordinary Time","rate":"30.00","units":"hours","is_overtime":false,"value":"37.5"},{"description":"Saturday Overtime","multiplier":"1.5","units":"hours","is_overtime":true,"value":"5.0"},{"description":"Ordinary Time","rate_reference":"system:ordinary_time","units":"hours","value":"7.6"}]},"leave":{"items":{"properties":{"description":{"type":"string","maxLength":60,"minLength":1,"title":"Description","description":"A brief description of the leave.","example":"Annual Leave"},"leave_type":{"type":"string","title":"Leave Type","description":"A short identifier for the type of leave. Provide the code with underscores (e.g., ALT_HOLIDAY, ANCILLARY, ANNUAL_HOLIDAYS, COMPASSIONATE, EMPLOYER_FUNDED_PAID_PARENTAL, HOLIDAY, LONG_SERVICE, NZ_BEREAVEMENT, NZ_DEFENCE_FORCE, NZ_EMPLOYMENT_RELATIONS_EDUCATION, NZ_FAMILY_VIOLENCE, NZ_JURY_SERVICE, NZ_TIME_OFF_TO_VOTE, OTHER, PAID_PARENTAL, PAID_PUBLIC_HOLIDAY, SICK, UNPAID, WORKERS_COMP).","example":"HOLIDAY"},"rate":{"type":"number","title":"Rate","description":"The dollar amount per unit for this leave (e.g., hourly rate). Optional if using `multiplier` or to default to the employee's pay_rate_per_hour.","example":"38.00"},"multiplier":{"type":"number","title":"Multiplier","description":"Alternative to `rate`. Multiplies the employee's pay_rate_per_hour (e.g., 1.0 for base rate, 1.5 for time-and-a-half).","example":"1.0"},"date":{"type":"string","title":"Date","description":"The date of the leave.","example":"2023-01-01"},"hours":{"type":"number","title":"Hours","description":"The number of hours leave taken.","example":"7.6"},"leave_loading_amount":{"type":"number","title":"Leave Loading Amount","description":"The dollar amount of leave loading, if applicable.","example":"3.80"}},"additionalProperties":false,"type":"object","required":["description","leave_type","date","hours"],"title":"Leave"},"type":"array","title":"Leave","description":"Optional list of leave items (may be empty), including description, leave type, rate/multiplier, value, date, and optional leave loading amount. `rate` is optional; when omitted the employee's pay_rate_per_hour is used.","example":[{"description":"Annual Leave","leave_type":"HOLIDAY","multiplier":"1.0","value":"7.6","leave_loading_amount":"3.80"}]},"pay_department":{"type":"string","maxLength":32,"minLength":0,"title":"Pay Department","description":"Department/Cost-centre name or code to be applied to all items in this entire pay. ","example":"Engineering"},"allowances":{"items":{"properties":{"description":{"type":"string","maxLength":60,"minLength":1,"title":"Description","description":"A brief description of the allowance.\nRequired when creating or matching an allowance.","example":"Tool Allowance"},"amount":{"type":"number","title":"Amount","description":"The dollar amount for the allowance.\nRequired when creating a new allowance (or if no allowance matches the description). May be omitted when reusing an existing allowance matched by description.","example":"50.00"},"allowance_category":{"type":"string","title":"Allowance Category","description":"Required allowance category code (e.g. 'TD' for Tools). Only codes are accepted. Codes are required when creating a new allowance; you may omit this when reusing an existing allowance that already has a code. 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)","example":"TD"},"is_taxable":{"type":"boolean","title":"Is Taxable","description":"Whether the allowance is taxable.\n- Defaults to True when creating a new employee allowance.\n","example":true},"is_itemised":{"type":"boolean","title":"Is Itemised","description":"Whether the allowance is itemised on the pay.\n- Defaults to False when creating a new employee allowance.\n","example":false},"is_included_in_super_calculations":{"type":"boolean","title":"Is Included In Super Calculations","description":"Whether this allowance is included in superannuation calculations.\n- Defaults to True when creating a new employee allowance.\n","example":true}},"additionalProperties":false,"type":"object","required":["description"],"title":"PayAllowance"},"type":"array","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.","example":[{"description":"Tool Allowance","amount":"50.00","allowance_category":"TD"},{"description":"Car Allowance","amount":"200.00","is_taxable":true,"is_itemised":true,"is_included_in_super_calculations":false,"allowance_category":"RD"}]},"deductions":{"items":{"properties":{"description":{"type":"string","maxLength":60,"minLength":1,"title":"Description","description":"A brief description of the deduction.\nRequired when creating or matching a deduction.","example":"Union Fees"},"amount":{"type":"number","title":"Amount","description":"The dollar amount for the deduction.\nRequired when creating a new deduction (or if no deduction matches the description). May be omitted when reusing an existing deduction matched by description.","example":"25.00"},"classification":{"type":"string","title":"Classification","description":"Deduction classification code (use underscores). Codes are required when creating a new deduction; you may omit when reusing an existing deduction. Codes: CHARITY, CHILD_SUPPORT_DEDUCTION, CHILD_SUPPORT_GARNISHEE, NORMAL, UNION_FEES.","example":"UNION_FEES"},"is_included_in_super_calculations":{"type":"boolean","title":"Is Included In Super Calculations","description":"Whether this deduction affects superannuation calculations.\n- Defaults to True when creating a new deduction.\n","example":false}},"additionalProperties":false,"type":"object","required":["description"],"title":"PayDeduction"},"type":"array","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.","example":[{"description":"Union Fees","amount":"25.00","classification":"UNION_FEES"},{"description":"Health Insurance","amount":"100.00","classification":"NORMAL","is_included_in_super_calculations":false}]},"bonuses":{"items":{"properties":{"amount":{"type":"number","title":"Amount","description":"The dollar amount for the bonus.\nRequired when creating a new bonus (or if no bonus matches the description). May be omitted when reusing an existing bonus matched by description.","example":"100.00"},"description":{"type":"string","maxLength":60,"minLength":1,"title":"Description","description":"A brief description of the bonus.\nRequired when creating or matching a bonus.","example":"Performance Bonus"},"start_date":{"type":"string","format":"date","title":"Start Date","description":"The start date for the bonus period. Required when tax_method uses a specific date range.","example":"2023-01-01"},"end_date":{"type":"string","format":"date","title":"End Date","description":"The end date for the bonus period. Required when tax_method uses a specific date range.","example":"2023-01-31"},"is_included_in_super_calculations":{"type":"boolean","title":"Is Included In Super Calculations","description":"Whether this bonus is included in superannuation calculations.\n- Defaults to True when creating a new employee bonus.\n","example":true},"is_directors_fees":{"type":"boolean","title":"Is Directors Fees","description":"Indicates if the bonus is for director's fees.","example":false},"is_return_to_work":{"type":"boolean","title":"Is Return To Work","description":"Indicates if the bonus is a return to work bonus.","example":false},"tax_method":{"type":"string","title":"Tax Method","description":"The tax calculation method for the bonus. Provide the *code* (e.g. 'NORMAL_EARNINGS'); docs display the readable labels. Allowed codes with labels: 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).","example":"NORMAL_EARNINGS"}},"additionalProperties":false,"type":"object","required":["description"],"title":"PayBonus"},"type":"array","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.","example":[{"description":"Performance Bonus","amount":"500.00","tax_method":"NORMAL_EARNINGS"},{"description":"Director's Fee","amount":"1000.00","tax_method":"SPREAD_OVER_SPECIFIC_RANGE","start_date":"2023-01-01","end_date":"2023-01-31","is_included_in_super_calculations":false,"is_directors_fees":true,"is_return_to_work":false}]},"pay_sacrifices":{"items":{"properties":{"amount":{"type":"number","title":"Amount","description":"The dollar amount for the pay sacrifice.\nRequired when creating a new pay sacrifice (or if no pay sacrifice matches the description). May be omitted when reusing an existing pay sacrifice matched by description.","example":"150.00"},"description":{"type":"string","maxLength":60,"minLength":0,"title":"Description","description":"A brief description of the pay sacrifice.\nRequired when creating or matching a pay sacrifice.","example":"Salary Sacrifice for Car"},"is_included_in_super_calculations":{"type":"boolean","title":"Is Included In Super Calculations","description":"Whether this pay sacrifice is included in superannuation calculations.\n- Defaults to True when creating a new employee pay sacrifice.\n","example":true},"is_super":{"type":"boolean","title":"Is Super","description":"Indicates if the pay sacrifice is for superannuation.","example":true}},"additionalProperties":false,"type":"object","required":["description"],"title":"PaySacrifice"},"type":"array","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.","example":[{"description":"Laptop Salary Sacrifice"},{"description":"Car Salary Sacrifice","amount":"300.00","is_included_in_super_calculations":false,"is_super":true}]},"back_payments":{"items":{"properties":{"description":{"type":"string","maxLength":60,"minLength":1,"title":"Description","description":"A brief description of the back payment. Required when creating a new back payment.","example":"Back Pay Adjustment"},"amount":{"type":"number","title":"Amount","description":"The dollar amount for the back payment. Required when creating a new back payment.","example":"200.00"},"stp_category":{"type":"string","title":"Stp Category","description":"The back payment category code (use underscores). Codes are required when creating a new back payment. Codes: BONUS_COMMISSION_NON_DIRECTOR_S_FEES, DIRECTOR_S_FEES, GROSS, ITEMISED_ALLOWANCES, LEAVE, OVERTIME, UNCLASSIFIED.","example":"GROSS"},"tax_method":{"type":"string","title":"Tax Method","description":"The tax method applied to the back payment.Required when creating a new back payment.Allowed codes with labels: 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).","example":"NORMAL_EARNINGS"},"start_date":{"type":"string","format":"date","title":"Start Date","description":"The start date for the back payment period.","example":"2023-01-01"},"end_date":{"type":"string","format":"date","title":"End Date","description":"The end date for the back payment period.","example":"2023-01-31"}},"additionalProperties":false,"type":"object","required":["description","amount"],"title":"BackPayments"},"type":"array","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_ALLOWANCES, LEAVE, OVERTIME, UNCLASSIFIED. Only codes are accepted for new back payments.\n    • `tax_method`, `start_date`, and `end_date` are optional.","example":[{"description":"Back Pay Adjustment","amount":"200.00","stp_category":"GROSS","tax_method":"NORMAL_EARNINGS","start_date":"2023-01-01","end_date":"2023-01-31"}]}},"type":"object","title":"PayCreate"}}