Child Support

Child Support Deduction

Creates a child support income-withholding deduction for an employee, based on a court or agency order. Use this when you've received an income withholding order (IWO) for an employee and need to start deducting support payments from their pay.

Endpoint

POST https://api.worklio.com/wep/companies/{CLIENT_ID}/employees/{EMPLOYEE_ID}/deductions/childsupport

CLIENT_ID is the company identifier returned as id when you create the company. EMPLOYEE_ID is the employee identifier returned as id when you create the employee.

Auth

Requires a bearer access token (see How to Get API Access).

Request fields

FieldTypeRequiredDescription
descriptionstring | nullYesFree-text label for the deduction, e.g. "Child support."
startDatestring (ISO 8601 date-time)YesDate withholding begins.
receivedDatestring (ISO 8601 date-time)YesDate the income withholding order was received.
caseNumberstring | nullYesThe child support case/order number assigned by the issuing agency, e.g. "AZ-2023-123456".
fipsCodestring | nullYesFIPS code of the issuing state or county child support agency.
statestring | nullYesTwo-letter USPS code for the state that issued the order, e.g. "NY".
amountdoubleYesAmount deducted from the employee's pay each pay period. Must be ≥ 0.
percentageLimitdoubleYesMaximum percentage of the employee's disposable earnings that can be withheld for this order. Must be ≥ 0.
endDatestring (ISO 8601 date-time) | nullNoDate withholding stops.
notestring | nullNoFree-text internal note.
issuingAuthoritystring | nullNoName of the agency or court that issued the order.
goaldoubleNoMust be ≥ 0. Default 0.
exemptAmountdouble | nullNoMust be ≥ 0.
inArrearsbooleanNoWhether this order is currently in arrears.
anotherChildbooleanNoWhether the employee has a support obligation for another child.
childPastDueSupportdouble | nullNoMust be ≥ 0.
stateDispReddouble | nullNoMust be ≥ 0.
medicalChildSupportbooleanNoWhether this order includes a medical support obligation.
custodialParentstring | nullNoName of the custodial parent named on the order.

Example request

require("dotenv").config();

const TOKEN = process.env.API_KEY;
const CLIENT_ID = process.env.CLIENT_ID;
const EMPLOYEE_ID = process.env.EMPLOYEE_ID;
const url = `https://api.worklio.com/wep/companies/${CLIENT_ID}/employees/${EMPLOYEE_ID}/deductions/childsupport`;

const payload = {
  fipsCode: "06001",
  amount: 350,
  percentageLimit: 50,
  state: "NY",
  caseNumber: "AZ-2023-123456",
  receivedDate: "2026-09-14T00:00:00Z",
  startDate: "2026-09-14T00:00:00Z",
  description: "Child support."
};

async function addChildSupportDeduction() {
  const response = await fetch(url, {
    method: "POST",
    headers: {
      accept: "application/json",
      "api-version": "2.0",
      authorization: `Bearer ${TOKEN}`,
      "content-type": "application/json",
      "x-api-version": "2.0"
    },
    body: JSON.stringify(payload)
  });

  console.log(response.status);
  const raw = await response.text();
  console.log(JSON.stringify(JSON.parse(raw), null, 2));
}

addChildSupportDeduction();
curl -s -X POST "https://api.worklio.com/wep/companies/$CLIENT_ID/employees/$EMPLOYEE_ID/deductions/childsupport" \
  -H "accept: application/json" \
  -H "api-version: 2.0" \
  -H "authorization: Bearer $API_KEY" \
  -H "content-type: application/json" \
  -H "x-api-version: 2.0" \
  -d '{
    "fipsCode": "06001",
    "amount": 350,
    "percentageLimit": 50,
    "state": "NY",
    "caseNumber": "AZ-2023-123456",
    "receivedDate": "2026-09-14T00:00:00Z",
    "startDate": "2026-09-14T00:00:00Z",
    "description": "Child support."
  }' | jq .

Example response

{
  "id": 576,
  "issuingAuthority": "",
  "receivedDate": "2026-09-14",
  "caseNumber": "AZ-2023-123456",
  "fipsCode": "06001",
  "state": "NY",
  "goal": 0,
  "amount": 350,
  "percentageLimit": 50,
  "inArrears": false,
  "anotherChild": false,
  "medicalChildSupport": false,
  "custodialParent": "",
  "description": "Child support.",
  "startDate": "2026-09-14",
  "note": ""
}

id is assigned by Worklio and isn't set in the request.

Note that startDate and receivedDate are sent as full ISO 8601 date-time strings but come back as date-only strings (YYYY-MM-DD) — the time-of-day portion isn't preserved in the response.

<!-- Paste a captured error response here (e.g. invalid fipsCode format, or a missing required field) -->

Did this page help you?