Salsa Companies API

Employer (company) entities and configuration.

OpenAPI Specification

salsa-companies-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Salsa Payroll Companies API
  description: Representative OpenAPI description of the Salsa embedded payroll REST API. Salsa is partner-gated payroll infrastructure - approved platform partners receive separate sandbox and production Bearer API keys and use these endpoints to provision employers and workers, run payroll, disburse worker payments, configure tax, and manage webhooks for US and Canada. This is a faithful, representative subset of the surface documented at https://docs.salsa.dev/reference and is not the vendor's official machine specification.
  termsOfService: https://www.salsa.dev/legal
  contact:
    name: Salsa Support
    url: https://docs.salsa.dev/
  version: rest-v1
servers:
- url: https://api.salsa.dev/api/rest/v1
  description: Production (partner production API key)
- url: https://api.sandbox.salsa.dev/api/rest/v1
  description: Sandbox (partner sandbox API key)
security:
- bearerAuth: []
tags:
- name: Companies
  description: Employer (company) entities and configuration.
paths:
  /employers:
    post:
      operationId: createEmployer
      tags:
      - Companies
      summary: Create an employer (company).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployerCreate'
      responses:
        '201':
          description: Employer created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employer'
    get:
      operationId: listEmployers
      tags:
      - Companies
      summary: Retrieve employers.
      responses:
        '200':
          description: A list of employers.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Employer'
  /employers/{employerId}:
    parameters:
    - $ref: '#/components/parameters/EmployerId'
    get:
      operationId: getEmployer
      tags:
      - Companies
      summary: Retrieve an employer.
      responses:
        '200':
          description: The employer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employer'
    patch:
      operationId: updateEmployer
      tags:
      - Companies
      summary: Update an employer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployerCreate'
      responses:
        '200':
          description: The updated employer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employer'
    delete:
      operationId: deleteEmployer
      tags:
      - Companies
      summary: Delete an employer.
      responses:
        '204':
          description: Deleted.
  /employers/{employerId}/pay-types:
    parameters:
    - $ref: '#/components/parameters/EmployerId'
    get:
      operationId: listPayTypes
      tags:
      - Companies
      summary: List an employer's pay types.
      responses:
        '200':
          description: A list of pay types.
    post:
      operationId: createPayType
      tags:
      - Companies
      summary: Create a pay type for an employer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Pay type created.
  /employers/{employerId}/bank-accounts:
    parameters:
    - $ref: '#/components/parameters/EmployerId'
    get:
      operationId: listEmployerBankAccounts
      tags:
      - Companies
      summary: List an employer's bank accounts.
      responses:
        '200':
          description: A list of bank accounts.
    post:
      operationId: createEmployerBankAccount
      tags:
      - Companies
      summary: Create a bank account for an employer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Bank account created.
components:
  schemas:
    Employer:
      type: object
      properties:
        id:
          type: string
        businessName:
          type: string
        country:
          type: string
          enum:
          - US
          - CA
        onboardingStatus:
          type: string
        createdAt:
          type: string
          format: date-time
    EmployerCreate:
      type: object
      required:
      - businessName
      - country
      properties:
        businessName:
          type: string
        country:
          type: string
          enum:
          - US
          - CA
        address:
          type: object
        ein:
          type: string
          description: US Employer Identification Number (or CA business number).
  parameters:
    EmployerId:
      name: employerId
      in: path
      required: true
      description: The employer (company) identifier.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Partner Bearer API key. Approved Salsa platform partners receive separate sandbox and production keys. Send as `Authorization: Bearer ${YOUR_API_TOKEN}`.'