openapi: 3.0.3 info: title: WorkMotion Partner Absences API description: 'Partner / Open API for the WorkMotion global employment and Employer of Record (EOR) platform. It exposes employees (talents), employment contracts, onboarding workflows, absences and time-off, documents, employment cost calculations, and webhook subscriptions so that HRIS and payroll systems can integrate with WorkMotion''s managed employment infrastructure across 160+ countries. NOTE: WorkMotion''s partner API is access-gated and its reference documentation is not fully published to the open web. The paths and schemas below are a faithful, honest model of the documented product surfaces (employees, contracts, onboarding, absences, documents, cost calculator, webhooks) rather than a verbatim copy of an official OpenAPI file. Verify exact paths, fields, and semantics against the WorkMotion partner documentation during reconciliation.' termsOfService: https://workmotion.com/terms-and-conditions/ contact: name: WorkMotion url: https://workmotion.com/integrations/ version: '1.0' servers: - url: https://api.workmotion.com/v1 description: Production (modeled base URL; confirm with partner documentation) security: - bearerAuth: [] tags: - name: Absences description: Time-off and leave management. paths: /absences: get: operationId: listAbsences tags: - Absences summary: List absences parameters: - name: employeeId in: query required: false schema: type: string - $ref: '#/components/parameters/PageParam' - $ref: '#/components/parameters/PageSizeParam' responses: '200': description: A page of absences. content: application/json: schema: $ref: '#/components/schemas/AbsenceList' post: operationId: createAbsence tags: - Absences summary: Submit an absence request requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AbsenceCreate' responses: '201': description: Absence request created. content: application/json: schema: $ref: '#/components/schemas/Absence' /absences/{absenceId}: parameters: - $ref: '#/components/parameters/AbsenceIdParam' get: operationId: getAbsence tags: - Absences summary: Retrieve an absence responses: '200': description: The requested absence. content: application/json: schema: $ref: '#/components/schemas/Absence' '404': $ref: '#/components/responses/NotFound' components: responses: NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: PageParam: name: page in: query required: false schema: type: integer minimum: 0 default: 0 PageSizeParam: name: pageSize in: query required: false schema: type: integer minimum: 1 maximum: 200 default: 50 AbsenceIdParam: name: absenceId in: path required: true schema: type: string schemas: AbsenceList: type: object properties: data: type: array items: $ref: '#/components/schemas/Absence' pagination: $ref: '#/components/schemas/Pagination' Pagination: type: object properties: page: type: integer pageSize: type: integer total: type: integer Absence: type: object properties: id: type: string employeeId: type: string type: type: string enum: - paid_time_off - sick_leave - unpaid_leave - other startDate: type: string format: date endDate: type: string format: date status: type: string enum: - requested - approved - rejected - cancelled AbsenceCreate: type: object required: - employeeId - type - startDate - endDate properties: employeeId: type: string type: type: string enum: - paid_time_off - sick_leave - unpaid_leave - other startDate: type: string format: date endDate: type: string format: date Error: type: object properties: code: type: string message: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 access token supplied as a Bearer token in the Authorization header. Partner credentials are issued by WorkMotion.