Unum Enrollment API

Benefits enrollment and lifecycle management

OpenAPI Specification

unum-enrollment-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Unum HR Connect Authentication Enrollment API
  description: The Unum HR Connect API provides a secure, real-time connection between Unum benefits and major HR platforms including Workday, ADP, and UKG. It automates eligibility checks, evidence of insurability (EOI) processing, premium billing calculations, leave and absence management, and enrollment data synchronization for employers and HR technology partners.
  version: '1.0'
  contact:
    name: Unum Developer Support
    url: https://developer.unum.com/s/
  termsOfService: https://www.unum.com/legal
servers:
- url: https://api.unum.com/v1
  description: Unum Production API
security:
- OAuth2:
  - eligibility:read
  - enrollment:read
  - leave:read
  - eoi:read
  - billing:read
tags:
- name: Enrollment
  description: Benefits enrollment and lifecycle management
paths:
  /enrollment/elections:
    get:
      operationId: listEnrollmentElections
      summary: List Enrollment Elections
      description: Retrieve a list of benefit enrollment elections for a group.
      tags:
      - Enrollment
      parameters:
      - name: groupId
        in: query
        required: true
        schema:
          type: string
        description: Employer group identifier
      - name: planYear
        in: query
        schema:
          type: integer
        description: Plan year (e.g., 2026)
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
      responses:
        '200':
          description: List of enrollment elections
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentElectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: submitEnrollmentElection
      summary: Submit Enrollment Election
      description: Submit a new benefit enrollment election for a member.
      tags:
      - Enrollment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollmentElectionRequest'
      responses:
        '201':
          description: Enrollment election submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentElection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /enrollment/elections/{electionId}:
    get:
      operationId: getEnrollmentElection
      summary: Get Enrollment Election
      description: Retrieve details of a specific enrollment election.
      tags:
      - Enrollment
      parameters:
      - name: electionId
        in: path
        required: true
        schema:
          type: string
        description: Enrollment election identifier
      responses:
        '200':
          description: Enrollment election details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentElection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication credentials missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    EnrollmentElectionRequest:
      type: object
      required:
      - memberId
      - groupId
      - planYear
      - elections
      properties:
        memberId:
          type: string
        groupId:
          type: string
        planYear:
          type: integer
        elections:
          type: array
          items:
            $ref: '#/components/schemas/BenefitElection'
        effectiveDate:
          type: string
          format: date
    EnrollmentElectionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/EnrollmentElection'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
    BenefitElection:
      type: object
      properties:
        productType:
          type: string
          enum:
          - disability
          - life
          - dental
          - vision
          - critical-illness
          - accident
        planCode:
          type: string
        coverageLevel:
          type: string
          enum:
          - employee-only
          - employee-spouse
          - employee-children
          - family
        benefitAmount:
          type: number
          format: double
        waived:
          type: boolean
          default: false
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
    EnrollmentElection:
      type: object
      properties:
        electionId:
          type: string
        memberId:
          type: string
        groupId:
          type: string
        planYear:
          type: integer
        elections:
          type: array
          items:
            $ref: '#/components/schemas/BenefitElection'
        status:
          type: string
          enum:
          - pending
          - confirmed
          - cancelled
        submittedAt:
          type: string
          format: date-time
        effectiveDate:
          type: string
          format: date
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.unum.com/v1/oauth/token
          scopes:
            eligibility:read: Read member eligibility
            eligibility:write: Write member eligibility
            enrollment:read: Read enrollment elections
            enrollment:write: Write enrollment elections
            leave:read: Read leave requests
            leave:write: Write leave requests
            eoi:read: Read EOI submissions
            eoi:write: Write EOI submissions
            billing:read: Read billing invoices