> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.brightmove.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.brightmove.com/_mcp/server.

# Timesheet Webhook Payload

POST 

Reference: https://docs.brightmove.com/public/webhooks/payloads/timesheet

## Request

### Payload

- `id` (long, optional)
- `approveDate` (datetime, optional)
- `approveUser` (WebhookUser, optional)
- `applicant` (WebhookApplicant, optional)
- `job` (WebhookRequirement, optional)
- `placement` (WebhookPlacement, optional)
- `client` (WebhookClient, optional)
- `timeEntries` (list of WebhookTimeEntry, optional)
- `activitySummary` (map from string to double, optional)
- `billableHoursTotal` (double, optional)
- `nonBillableHoursTotal` (double, optional)
- `hoursTotal` (double, optional)

## Types

### WebhookUser

- `id` (long, optional)
- `guid` (string, optional)
- `statusId` (integer, optional)
- `firstName` (string, optional)
- `middleName` (string, optional)
- `lastName` (string, optional)
- `email` (string, optional)
- `workEmail` (string, optional)
- `type` (enum, optional)
  - Allowed values: `-1`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`
- `phones` (list of WebhookPhone, optional)
- `displayName` (string, optional)

### WebhookApplicant

- `id` (long, optional)
- `guid` (string, optional)
- `statusId` (integer, optional)
- `firstName` (string, optional)
- `middleName` (string, optional)
- `lastName` (string, optional)
- `email` (string, optional)
- `workEmail` (string, optional)
- `type` (enum, optional)
  - Allowed values: `-1`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`
- `phones` (list of WebhookPhone, optional)
- `emailAllowed` (boolean, optional)
- `smsAllowed` (boolean, optional)
- `location` (WebhookLocation, optional)
- `primarySkills` (string, optional)
- `status` (string, optional)
- `source` (string, optional)
- `currentCompany` (string, optional)
- `currentTitle` (string, optional)
- `currentPay` (WebhookPay, optional)
- `desiredPay` (WebhookPay, optional)
- `displayName` (string, optional)

### WebhookRequirement

- `id` (long, optional)
- `guid` (string, optional)
- `externalId` (string, optional)
- `jobTitle` (string, optional)
- `openDate` (datetime, optional)
- `endDate` (datetime, optional)
- `duration` (string, optional)
- `location` (WebhookLocation, optional)
- `requiredSkills` (string, optional)
- `optionalSkills` (string, optional)
- `publicDescription` (string, optional)
- `privateDescription` (string, optional)
- `jobStatus` (string, optional)
- `minBillRate` (WebhookPay, optional)
- `maxBillRate` (WebhookPay, optional)
- `minPayRate` (WebhookPay, optional)
- `maxPayRate` (WebhookPay, optional)
- `bonusPct` (double, optional)
- `bonusFlat` (double, optional)
- `bonusNotes` (string, optional)
- `openings` (integer, optional)
- `originalOpenings` (integer, optional)
- `createDate` (datetime, optional)
- `createUser` (WebhookUser, optional)
- `modifyDate` (datetime, optional)
- `modifyUser` (WebhookUser, optional)
- `placementType` (string, optional)
- `jobGroup` (WebhookJobGroup, optional)
- `statusComment` (string, optional)
- `categories` (list of string, optional)
- `industries` (list of string, optional)
- `functions` (list of string, optional)
- `feePct` (double, optional)
- `feeAmt` (double, optional)
- `pctChanceClose` (float, optional)
- `postToInternal` (boolean, optional)
- `postToWeb` (boolean, optional)
- `syncDescription` (boolean, optional)
- `workFromHome` (boolean, optional)
- `partTime` (boolean, optional)
- `recruiter` (WebhookEmployee, optional)
- `assignedRecruiters` (list of WebhookEmployee, optional)
- `contact` (WebhookContact, optional)
- `metaData` (map from string to string, optional)

### WebhookPlacement

- `guid` (string, optional)
- `placementType` (WebhookPlacementType, optional)
- `recruiter` (WebhookUser, optional)
- `clientContact` (WebhookUser, optional)
- `startDate` (datetime, optional)
- `endDate` (datetime, optional)
- `hireDate` (datetime, optional)
- `commissionEndDate` (datetime, optional)
- `commissionFee` (double, optional)
- `commissionPct` (double, optional)
- `guarantee` (string, optional)
- `billRate` (WebhookPay, optional)
- `payRate` (WebhookPay, optional)
- `conversionFee` (double, optional)
- `directFeePct` (double, optional)
- `directFeeFlat` (double, optional)
- `bonusPct` (double, optional)
- `bonusFlat` (double, optional)
- `bonusNotes` (string, optional)
- `mboPct` (double, optional)
- `mboFlat` (double, optional)
- `mboNotes` (string, optional)
- `employmentType` (WebhookEmploymentType, optional)
- `emplCostValue` (double, optional)
- `emplCostPercentage` (double, optional)
- `clientFee` (double, optional)
- `clientDiscount` (double, optional)
- `createUser` (WebhookUser, optional)
- `createDate` (datetime, optional)
- `modifyUser` (WebhookUser, optional)
- `modifyDate` (datetime, optional)
- `salesUser` (WebhookUser, optional)
- `requirement` (WebhookRequirement, optional)
- `applicant` (WebhookApplicant, optional)
- `companyName` (string, optional)

### WebhookClient

- `id` (long, optional)
- `guid` (string, optional)
- `name` (string, optional)
- `website` (string, optional)
- `billingLocation` (WebhookLocation, optional)
- `discountPercentage` (double, optional)
- `discountFee` (double, optional)
- `stockSymbol` (string, optional)
- `companyInfo` (string, optional)
- `createDate` (datetime, optional)
- `modifyDate` (datetime, optional)
- `createUser` (WebhookUser, optional)
- `modifyUser` (WebhookUser, optional)
- `legacyId` (string, optional)

### WebhookTimeEntry

- `activity` (string, optional)
- `billable` (boolean, optional)
- `hours` (double, optional)
- `entryDate` (datetime, optional)

### WebhookPhone

- `type` (string, optional)
- `phoneNumber` (string, optional)

### WebhookLocation

- `address1` (string, optional)
- `address2` (string, optional)
- `city` (string, optional)
- `state` (WebhookState, optional)
- `postalCode` (string, optional)

### WebhookPay

- `rate` (double, optional)
- `type` (string, optional)

### WebhookJobGroup

- `id` (long, required)
- `name` (string, optional)

### WebhookEmployee

- `id` (long, optional)
- `guid` (string, optional)
- `statusId` (integer, optional)
- `firstName` (string, optional)
- `middleName` (string, optional)
- `lastName` (string, optional)
- `email` (string, optional)
- `workEmail` (string, optional)
- `type` (enum, optional)
  - Allowed values: `-1`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`
- `phones` (list of WebhookPhone, optional)
- `officeName` (string, optional)
- `mobilePhone` (string, optional)
- `companyGk` (long, optional)
- `displayName` (string, optional)

### WebhookContact

- `id` (long, optional)
- `guid` (string, optional)
- `statusId` (integer, optional)
- `firstName` (string, optional)
- `middleName` (string, optional)
- `lastName` (string, optional)
- `email` (string, optional)
- `workEmail` (string, optional)
- `type` (enum, optional)
  - Allowed values: `-1`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`
- `phones` (list of WebhookPhone, optional)
- `title` (string, optional)
- `location` (WebhookLocation, optional)
- `nickname` (string, optional)
- `client` (WebhookClient, optional)
- `office` (WebhookOffice, optional)
- `emailAllowed` (boolean, optional)
- `smsAllowed` (boolean, optional)
- `contactStatus` (string, optional)
- `displayName` (string, optional)

### WebhookPlacementType

- `id` (long, required)
- `name` (string, optional)

### WebhookEmploymentType

- `id` (long, required)
- `name` (string, optional)
- `costValue` (double, optional)
- `costPercentage` (double, optional)
- `sortOrder` (integer, optional)
- `rate` (double, optional)

### WebhookState

- `id` (long, optional)
- `name` (string, optional)
- `abbrev` (string, optional)
- `country` (WebhookCountry, optional)

### WebhookOffice

- `id` (long, optional)
- `guid` (string, optional)
- `name` (string, optional)
- `location` (WebhookLocation, optional)

### WebhookCountry

- `id` (long, optional)
- `code` (string, optional)
- `name` (string, optional)