Restaurant365 Labor API

Employees, labor detail, payroll, and POS employees

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

restaurant365-labor-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Restaurant365 OData Connector AP Invoices Labor API
  description: The Restaurant365 OData connector exposes R365 data to OData-compatible reporting and business-intelligence tools through read-only views for companies, locations, GL accounts, items, employees, labor, transactions, and sales. Authentication uses Domain\Username (the company subdomain and R365 username) with the R365 password. Most views support the standard OData query options $filter, $orderby, $select, $skip, and $top. Sales views (SalesEmployee, SalesDetail, SalesPayment) do not support $select or $count and are limited to a 31-day date range per request.
  version: v2
  contact:
    name: Kin Lane
    email: kin@apievangelist.com
  license:
    name: Proprietary
servers:
- url: https://odata.restaurant365.net/api/v2/views
  description: Restaurant365 OData v2 views endpoint
tags:
- name: Labor
  description: Employees, labor detail, payroll, and POS employees
paths:
  /Employee:
    get:
      operationId: listEmployees
      summary: List Employees
      description: List all employees with basic information.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of employees
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/Employee'
  /POSEmployee:
    get:
      operationId: listPosEmployees
      summary: List POS Employees
      description: Retrieve the data mapping between R365 and POS employee records.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of POS employee mappings
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/POSEmployee'
  /LaborDetail:
    get:
      operationId: listLaborDetail
      summary: List Labor Detail
      description: Retrieve employee punch time details, including clock in and clock out.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of labor detail records
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/LaborDetail'
  /PayrollSummary:
    get:
      operationId: listPayrollSummary
      summary: List Payroll Summary
      description: Retrieve a list of labor records summarized for payroll.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of payroll summary records
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/PayrollSummary'
components:
  schemas:
    LaborDetail:
      type: object
      properties:
        laborId:
          type: string
          format: uuid
        labor:
          type: string
        dateWorked:
          type: string
          format: date-time
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        hours:
          type: number
        payRate:
          type: number
        payrate_Base:
          type: number
        payrollStatus:
          type: integer
        total:
          type: number
        total_Base:
          type: number
        employee_ID:
          type: string
          format: uuid
        r365Employee_ID:
          type: string
          format: uuid
        employeeJobTitle_ID:
          type: string
          format: uuid
        jobTitle_ID:
          type: string
          format: uuid
        location_ID:
          type: string
          format: uuid
        cateringEvent:
          type: string
          format: uuid
        tipDeclaredAmount:
          type: number
        employee:
          type: string
        payrollID:
          type: string
        jobTitle:
          type: string
        location:
          type: string
        dailySalesSummaryId:
          type: string
          format: uuid
        createdBy:
          type: string
        createdOn:
          type: string
          format: date-time
        modifiedBy:
          type: string
        modifiedOn:
          type: string
          format: date-time
    Employee:
      type: object
      properties:
        employeeId:
          type: string
          format: uuid
        fullName:
          type: string
        firstName:
          type: string
        middleName:
          type: string
        lastName:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state:
          type: string
        zipCode:
          type: string
        email:
          type: string
          format: email
        phoneNumber:
          type: string
        mobilePhone:
          type: string
        allowTextMessaging:
          type: boolean
        birthday:
          type: string
          format: date-time
        birthdayDay:
          type: integer
        birthdayMonth:
          type: integer
        hireDate:
          type: string
          format: date-time
        multipleLocations:
          type: integer
        payrollID:
          type: string
        posid:
          type: string
        employeeLink:
          type: string
          format: uuid
        primaryLocation_id:
          type: string
          format: uuid
        inactive:
          type: boolean
        createdBy:
          type: string
        createdOn:
          type: string
          format: date-time
        modifiedBy:
          type: string
        modifiedOn:
          type: string
          format: date-time
    POSEmployee:
      type: object
      properties:
        posEmployeeId:
          type: string
          format: uuid
        fullName:
          type: string
        posid:
          type: string
        location_id:
          type: string
          format: uuid
        employee_id:
          type: string
          format: uuid
        createdBy:
          type: string
        createdOn:
          type: string
          format: date-time
        modifiedBy:
          type: string
        modifiedOn:
          type: string
          format: date-time
    PayrollSummary:
      type: object
      properties:
        employeeID:
          type: string
          format: uuid
        payrollID:
          type: string
        location:
          type: string
        locationNumber:
          type: string
        jobCode:
          type: string
        payRate:
          type: number
        regularHours:
          type: number
        overtimeHours:
          type: number
        doubleOvertime:
          type: number
        breakPenalty:
          type: number
        grossReceipts:
          type: number
        splitShiftPenalty:
          type: number
        chargeTips:
          type: number
        declaredTips:
          type: number
        percentageOfSales:
          type: number
        percent:
          type: number
        payrollStart:
          type: string
          format: date-time
        payrollEnd:
          type: string
          format: date-time
  parameters:
    select:
      name: $select
      in: query
      required: false
      description: Comma-separated list of properties to return
      schema:
        type: string
    filter:
      name: $filter
      in: query
      required: false
      description: Boolean expression used to filter results
      schema:
        type: string
    skip:
      name: $skip
      in: query
      required: false
      description: Number of results to skip
      schema:
        type: integer
    orderby:
      name: $orderby
      in: query
      required: false
      description: Property to sort by; append desc for descending order
      schema:
        type: string
    top:
      name: $top
      in: query
      required: false
      description: Maximum number of results to return
      schema:
        type: integer
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Domain\Username with R365 password