Harri Employer APIs V2 API

The Employer APIs V2 API from Harri — 2 operation(s) for employer apis v2.

OpenAPI Specification

harri-employer-apis-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Harri - External Brand Management Employer APIs V2 API
  description: "## Harri Employer Endpoint to create and manage Harri Above Store Admin Users. \n Note: if you receive a 422 error about a corporate ID not being associated or found, you will need to contact Harri Support to have that ID associated with your API credentials."
  termsOfService: https://harri.com/terms
  contact:
    email: support@harri.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.00
servers:
- url: https://gateway.harri.com/open-api-hub
security:
- oAuth2ClientCredentials: []
tags:
- name: Employer APIs V2
paths:
  /v2/employers:
    post:
      tags:
      - Employer APIs V2
      summary: Create employer (v2)
      description: 'Create an employer with location roles.

        Uses external IDs natively. Supports location grouping when enabled.'
      operationId: createEmployerV2
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: External employer ID (required when employer_mapping is enabled)
                first_name:
                  type: string
                  description: First name of employer
                last_name:
                  type: string
                  description: Last name of employer
                email:
                  type: string
                  format: email
                  description: Email address of employer
                location_roles:
                  type: array
                  description: 'Location roles for the employer.

                    Can be group codes or individual location IDs.'
                  minItems: 1
                  items:
                    type: object
                    properties:
                      location_id:
                        type: string
                        description: Location ID or group code
                      role:
                        type: string
                        enum:
                        - SUPER_ADMIN
                        - FRANCHISEE_SUPER_USER
                        - RSC
                        - ABOVE_STORE_LEADER
                        - RGM
                        - ARGM
                        - TEAM_LEADER
                        - LEVEL_3
                        - LEVEL_4
                        description: User role for this location
                    required:
                    - location_id
                    - role
              required:
              - first_name
              - last_name
              - email
              - location_roles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                        description: External employer ID
                      first_name:
                        type: string
                      last_name:
                        type: string
                      email:
                        type: string
                      location_roles:
                        type: array
                        items:
                          type: object
                          properties:
                            location_id:
                              type: string
                              description: External location ID or group code
                            role:
                              type: string
        '400':
          description: Validation error or missing required fields
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        error:
                          type: string
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
    get:
      tags:
      - Employer APIs V2
      summary: List all employers (v2)
      description: 'Retrieve all employers with their location roles.

        Uses external IDs natively. Supports location grouping when enabled.'
      operationId: listEmployersV2
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  employers:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: External employer ID
                        first_name:
                          type: string
                        last_name:
                          type: string
                        email:
                          type: string
                        location_roles:
                          type: array
                          items:
                            type: object
                            properties:
                              location_id:
                                type: string
                                description: External location ID or group code
                              role:
                                type: string
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
  /v2/employers/{id}:
    get:
      tags:
      - Employer APIs V2
      summary: Get employer details (v2)
      description: 'Retrieve single employer by external ID.

        Uses external IDs natively. Supports location grouping when enabled.'
      operationId: getEmployerV2
      parameters:
      - name: id
        in: path
        description: External employer ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: External employer ID
                  first_name:
                    type: string
                  last_name:
                    type: string
                  email:
                    type: string
                  location_roles:
                    type: array
                    items:
                      type: object
                      properties:
                        location_id:
                          type: string
                          description: External location ID or group code
                        role:
                          type: string
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Employer not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
    put:
      tags:
      - Employer APIs V2
      summary: Update employer (v2)
      description: 'Update employer information and location roles.

        Uses external IDs natively. Supports location grouping when enabled.'
      operationId: updateEmployerV2
      parameters:
      - name: id
        in: path
        description: External employer ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: First name of employer
                last_name:
                  type: string
                  description: Last name of employer
                email:
                  type: string
                  format: email
                  description: Email address of employer
                location_roles:
                  type: array
                  description: 'Location roles for the employer.

                    Can be group codes or individual location IDs.'
                  items:
                    type: object
                    properties:
                      location_id:
                        type: string
                        description: Location ID or group code
                      role:
                        type: string
                        enum:
                        - SUPER_ADMIN
                        - FRANCHISEE_SUPER_USER
                        - RSC
                        - ABOVE_STORE_LEADER
                        - RGM
                        - ARGM
                        - TEAM_LEADER
                        - LEVEL_3
                        - LEVEL_4
                        description: User role for this location
                    required:
                    - location_id
                    - role
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: External employer ID
                  first_name:
                    type: string
                  last_name:
                    type: string
                  email:
                    type: string
                  location_roles:
                    type: array
                    items:
                      type: object
                      properties:
                        location_id:
                          type: string
                          description: External location ID or group code
                        role:
                          type: string
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        error:
                          type: string
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Employer not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
    delete:
      tags:
      - Employer APIs V2
      summary: Delete employer (v2)
      description: 'Delete employer and their location roles.

        Uses external IDs natively.'
      operationId: deleteEmployerV2
      parameters:
      - name: id
        in: path
        description: External employer ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Employer not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://oauth.harristaging.com/oauth2/token
          scopes: {}
externalDocs:
  description: Find out more about Harri
  url: http://harri.com