Broadlume BMS API

REST API for Broadlume BMS, the flooring business management system formerly known as RollMaster. 256 documented operations across 28 resource groups covering orders, quotes, leads, customers, products and catalog, inventory, purchase orders, invoicing, accounts receivable, general ledger, installation scheduling, e-documents, handheld/barcode operations, dashboards and reporting. Authentication is a Broadlume-issued x-api-key header plus a per-user session token obtained from the token endpoint.

OpenAPI Specification

broadlume-bms-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Broadlume BMS API
  version: v1
  summary: Business management API for Broadlume BMS, the flooring ERP formerly known as RollMaster.
  description: 'REST API for Broadlume BMS (formerly RollMaster), Broadlume''s business management system for flooring retailers.
    Covers orders, quotes, leads, customers, products and catalog, inventory, purchase orders, invoicing, accounts receivable,
    general ledger, installation scheduling, e-documents, handheld/barcode operations, dashboards and reporting.


    Transcribed by API Evangelist from Broadlume''s own published developer portal at https://developer.broadlume.com/bms
    — paths, methods, parameters and response fields are taken verbatim from that reference. Broadlume acquired RollMaster
    in November 2021, which is why the documented base URL remains api.rmaster.com.'
  contact:
    name: Broadlume Developer Portal
    url: https://developer.broadlume.com/bms
externalDocs:
  description: Broadlume BMS developer portal
  url: https://developer.broadlume.com/bms
servers:
- url: https://api.rmaster.com/api
  description: Production
security:
- apiKeyAuth: []
  sessionToken: []
tags:
- name: Version
- name: Authentication
- name: Order
- name: Customer
- name: Company
- name: Product
- name: Retail Pricing
- name: Edocs
- name: Install
- name: Dashboard
- name: Pivot
- name: Lead
- name: Bundle
- name: Quote
- name: Inventory
- name: Invoice
- name: Accounts Receivable
- name: Reports
- name: Audit
- name: General Ledger
- name: Handheld
- name: Purchase Order
- name: ChargeItPro
- name: Vendor
- name: Committed
- name: General
- name: Build Order
- name: Logo
paths:
  /{alias}/version:
    get:
      operationId: apiVersion
      summary: API Version
      tags:
      - Version
      description: API version
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  VERSION:
                    type: string
  /{alias}/token:
    post:
      operationId: authenticateUserCreateSession
      summary: Authenticate User / Create Session
      tags:
      - Authentication
      description: Authenticate the user with the system and obtain the token. Token is used for all subsequent API calls.
        Sessions will expire based on a server specified timeout period. In order to use a session for long term use the token(keepalive)
        endpoint to keep the session token active. All calls will update and refresh the last active time of a token, so a
        keepalive call is only necessary when idle. Idle time is a default of 5 minutes.
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  maxLength: 8
                  description: User name
                password:
                  type: string
                  maxLength: 8
                  description: User password
                granttype:
                  type: string
                  default: client
                  enum:
                  - application
                  - client
                  description: Token grant type (application or client). Client tokens will time out at a specified amount
                    of minutes and need to have active calls made or a GET token endpoint called to keep it active. Once client
                    tokens expire, they are invalid. Application tokens are long term token used for API to API transactions
                    and do not time out if used within a year of creation.
              required:
              - username
              - password
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  COMPANIES:
                    type: array
                    items:
                      type: array
                      items:
                        type: string
                  TOKEN:
                    type: string
    get:
      operationId: sessionKeepalive
      summary: Session Keepalive
      tags:
      - Authentication
      description: Sessions expire based on a server specified timeout period. Use this endpoint to verify that a token is
        still valid and to reset the last active time of a call.
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  RETURN:
                    type: string
    delete:
      operationId: removeSession
      summary: Remove Session
      tags:
      - Authentication
      description: Sessions expire based on a server specified timeout period. Use this endpoint to verify that a token is
        still valid and to reset the last active time of a call. In order to get a new application token, a DELETE token endpoint
        must be called to reset the key that is issued.
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                granttype:
                  type: string
                  default: client
                  enum:
                  - application
                  - client
                  description: Token grant type (application or client). Client tokens will time out at a specified amount
                    of minutes and need to have active calls made or a GET token endpoint called to keep it active. Once client
                    tokens expire, they are invalid. Application tokens are long term token used for API to API transactions
                    and do not time out if used within a year of creation.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  RETURN:
                    type: string
  /{alias}/sessioncount:
    get:
      operationId: sessionCount
      summary: Session Count
      tags:
      - Authentication
      description: Currently active session count and limit
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  SESSIONCOUNT:
                    type: string
                  LIMIT:
                    type: string
  /{alias}/permissions:
    get:
      operationId: userPermissions
      summary: User permissions
      tags:
      - Authentication
      description: User web permissions
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      - name: company
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster company.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  '0':
                    type: array
                    items:
                      type: string
  /{alias}/changebranch:
    post:
      operationId: changeBranches
      summary: Change Branches
      tags:
      - Authentication
      description: Change currently active branches
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                company:
                  type: string
                  maxLength: 2
                  description: RollMaster company.
                branch:
                  type: array
                  items:
                    type: array
                    items:
                      type: string
                  description: Collection of all arrays that are to be set 'active'. All branches not passed will be set to
                    inactive by default. Subsequent queries will use the list of active branches to filter the returns.
              required:
              - company
              - branch
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  '0':
                    type: array
                    items:
                      type: string
  /{alias}/order:
    post:
      operationId: createOrder
      summary: Create Order
      tags:
      - Order
      description: Creates an order. Returns the successfully created order.
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                company:
                  type: string
                  maxLength: 2
                  description: RollMaster company.
                branch:
                  type: string
                  maxLength: 2
                  description: RollMaster branch.
                custpo:
                  type: string
                  maxLength: 15
                  description: Required when customer ship to requires.
                ordcustid:
                  type: string
                  maxLength: 8
                ordsalesrep1:
                  type: string
                  maxLength: 3
                  description: Note - assumes user salesperson initials if not sent and if user is salesperson.
                ordsalesrep2:
                  type: string
                  maxLength: 3
                ordjobtype:
                  type: string
                  maxLength: 2
                ordstatuscode:
                  type: string
                  maxLength: 10
                shcode:
                  type: string
                  maxLength: 4
                  description: Ship to code of 0000 is assumed when not sent.
                shname:
                  type: string
                  maxLength: 30
                  description: Ship to information is assumed when not sent.
                shaddr1:
                  type: string
                  maxLength: 30
                  description: Ship to information is assumed when not sent.
                shaddr2:
                  type: string
                  maxLength: 30
                  description: Ship to information is assumed when not sent.
                shctyst:
                  type: string
                  maxLength: 30
                  description: Ship to information is assumed when not sent.
                shcity:
                  type: string
                  maxLength: 30
                  description: Ship to information is assumed when not sent.
                shstate:
                  type: string
                  maxLength: 30
                  description: Ship to information is assumed when not sent.
                shzip:
                  type: string
                  maxLength: 10
                  description: Ship to information is assumed when not sent.
                shbuilding:
                  type: string
                  maxLength: 23
                  description: When used, will override first section of shaddr2 field
                shunit:
                  type: string
                  maxLength: 6
                  description: When used, will override last section of shaddr2 field
                insdate:
                  type: string
                  maxLength: 8
                  description: Format - YYYYMMDD - Changes the single install date for a job (does not function with multi-date
                    records) or when capacities are turned on.
                time:
                  type: string
                  maxLength: 8
                  description: Changes the install time for a job (does not function with multi-date records) or when capacities
                    are turned on.
                initials:
                  type: string
                  maxLength: 1
                  description: Required when company control is turned on and install date is sent.
                phone1:
                  type: string
                  maxLength: 30
                  description: Ship to Phone
                phone2:
                  type: string
                  maxLength: 30
                  description: Ship to Fax
                email:
                  type: string
                  maxLength: 100
                  description: Ship to Email
                typedesc:
                  type: string
                  maxLength: 10
                  description: Ship to Type Description
              required:
              - company
              - branch
              - ordcustid
              - ordsalesrep1
              - ordjobtype
              - ordstatuscode
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  DMO_CODIV:
                    type: string
                  DMO_WHSE:
                    type: string
                  DMH_CUSTID:
                    type: string
                  DMH_SHNAME:
                    type: string
                  DMH_SHCODE:
                    type: string
                  DMH_SHADDR1:
                    type: string
                  DMH_SHADDR2:
                    type: string
                  DMH_SHCTYST:
                    type: string
                  DMH_SHZIP:
                    type: string
                  DMH_SALESREP1:
                    type: string
                  DMH_SALESREP2:
                    type: string
                  DMH_SPECIAL1:
                    type: string
                  DMH_CUSTPO:
                    type: string
                  DMH_QRDNO:
                    type: string
                  DMH_STATUSCODE:
                    type: string
                  DMH_DATE:
                    type: string
                  DMH_INSTALLDATE:
                    type: string
                  DMH_SHPHONE1:
                    type: string
                  DMH_SHFAX:
                    type: string
                  DMH_SHCONTACT:
                    type: string
                  DMH_ORDEREDBY:
                    type: string
                  DMH_INSTALL_TIME:
                    type: string
                  SAL_NAME:
                    type: string
                  PODMO_WEB_USER:
                    type: string
                  DMH_JOBTOTAL:
                    type: string
                  DMH_BLDG:
                    type: string
                  DMH_UNIT:
                    type: string
                  DMH_SHCITY:
                    type: string
                  DMH_SHSTATE:
                    type: string
    patch:
      operationId: updateOrder
      summary: Update Order
      tags:
      - Order
      description: Updates an existing order. Returns the key (header info) of the order updated. Only fields sent will update.
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      - name: company
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster company.
      - name: branch
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster branch.
      - name: order
        in: query
        required: true
        schema:
          type: string
          maxLength: 6
      - name: custpo
        in: query
        required: false
        schema:
          type: string
          maxLength: 15
        description: Required when customer ship to requires and not already filled for existing ship to code.
      - name: ordcustid
        in: query
        required: false
        schema:
          type: string
          maxLength: 8
      - name: ordsalesrep1
        in: query
        required: false
        schema:
          type: string
          maxLength: 3
        description: Required when not already filled ship to requires and not already filled for existing ship to code. Assumes
          user salesperson initials if not sent and if user is salesperson.
      - name: ordsalesrep2
        in: query
        required: false
        schema:
          type: string
          maxLength: 3
      - name: ordjobtype
        in: query
        required: false
        schema:
          type: string
          maxLength: 2
        description: Required when not already filled.
      - name: ordstatuscode
        in: query
        required: false
        schema:
          type: string
          maxLength: 10
        description: Required when not already filled.
      - name: shcode
        in: query
        required: false
        schema:
          type: string
          maxLength: 4
        description: Ship to code of 0000 is assumed when not sent and info has not been filled or when changing customer.
      - name: shname
        in: query
        required: false
        schema:
          type: string
          maxLength: 30
        description: Ship to information is assumed when changing ship to code or customer and info has not been sent.
      - name: shaddr1
        in: query
        required: false
        schema:
          type: string
          maxLength: 30
        description: Ship to information is assumed when changing ship to code or customer and info has not been sent.
      - name: shaddr2
        in: query
        required: false
        schema:
          type: string
          maxLength: 30
        description: Ship to information is assumed when changing ship to code or customer and info has not been sent.
      - name: shctyst
        in: query
        required: false
        schema:
          type: string
          maxLength: 30
        description: Ship to information is assumed when changing ship to code or customer and info has not been sent.
      - name: shcity
        in: query
        required: false
        schema:
          type: string
          maxLength: 30
        description: Ship to information is assumed when changing ship to code or customer and info has not been sent.
      - name: shstate
        in: query
        required: false
        schema:
          type: string
          maxLength: 30
        description: Ship to information is assumed when changing ship to code or customer and info has not been sent.
      - name: shzip
        in: query
        required: false
        schema:
          type: string
          maxLength: 10
        description: Ship to information is assumed when changing ship to code or customer and info has not been sent.
      - name: shbuilding
        in: query
        required: false
        schema:
          type: string
          maxLength: 23
        description: When used, will override first section of shaddr2 field
      - name: shunit
        in: query
        required: false
        schema:
          type: string
          maxLength: 6
        description: When used, will override last section of shaddr2 field
      - name: insdate
        in: query
        required: false
        schema:
          type: string
          maxLength: 8
        description: Format - YYYYMMDD - Changes the single install date for a job (does not function with multi-date records)
          or when capacities are turned on.
      - name: time
        in: query
        required: false
        schema:
          type: string
          maxLength: 1
        description: Changes the install time for a job (does not function with multi-date records) or when capacities are
          turned on.
      - name: initials
        in: query
        required: false
        schema:
          type: string
          maxLength: 3
        description: Required when company control is turned on and install date is sent.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                phone1:
                  type: string
                  maxLength: 30
                  description: Ship to Phone
                phone2:
                  type: string
                  maxLength: 30
                  description: Ship to Fax
                email:
                  type: string
                  maxLength: 100
                  description: Ship to Email
                typedesc:
                  type: string
                  maxLength: 10
                  description: Ship to Type Description
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  DMO_CODIV:
                    type: string
                  DMO_WHSE:
                    type: string
                  DMH_CUSTID:
                    type: string
                  DMH_SHNAME:
                    type: string
                  DMH_SHCODE:
                    type: string
                  DMH_SHADDR1:
                    type: string
                  DMH_SHADDR2:
                    type: string
                  DMH_SHCTYST:
                    type: string
                  DMH_SHZIP:
                    type: string
                  DMH_SALESREP1:
                    type: string
                  DMH_SALESREP2:
                    type: string
                  DMH_SPECIAL1:
                    type: string
                  DMH_CUSTPO:
                    type: string
                  DMH_QRDNO:
                    type: string
                  DMH_STATUSCODE:
                    type: string
                  DMH_DATE:
                    type: string
                  DMH_INSTALLDATE:
                    type: string
                  DMH_SHPHONE1:
                    type: string
                  DMH_SHFAX:
                    type: string
                  DMH_SHCONTACT:
                    type: string
                  DMH_ORDEREDBY:
                    type: string
                  DMH_INSTALL_TIME:
                    type: string
                  SAL_NAME:
                    type: string
                  PODMO_WEB_USER:
                    type: string
                  DMH_JOBTOTAL:
                    type: string
                  DMH_BLDG:
                    type: string
                  DMH_UNIT:
                    type: string
                  DMH_SHCITY:
                    type: string
                  DMH_SHSTATE:
                    type: string
    get:
      operationId: getOrder
      summary: Get Order
      tags:
      - Order
      description: Get order header information
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      - name: company
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster company.
      - name: branch
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster branch.
      - name: order
        in: query
        required: true
        schema:
          type: string
          maxLength: 6
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  DMO_CODIV:
                    type: string
                  DMO_WHSE:
                    type: string
                  DMH_CUSTID:
                    type: string
                  DMH_SHNAME:
                    type: string
                  DMH_SHCODE:
                    type: string
                  DMH_SHADDR1:
                    type: string
                  DMH_SHADDR2:
                    type: string
                  DMH_SHCTYST:
                    type: string
                  DMH_SHZIP:
                    type: string
                  DMH_SALESREP1:
                    type: string
                  DMH_SALESREP2:
                    type: string
                  DMH_SPECIAL1:
                    type: string
                  DMH_CUSTPO:
                    type: string
                  DMH_QRDNO:
                    type: string
                  DMH_STATUSCODE:
                    type: string
                  DMH_DATE:
                    type: string
                  DMH_INSTALLDATE:
                    type: string
                  DMH_SHPHONE1:
                    type: string
                  DMH_SHFAX:
                    type: string
                  DMH_SHCONTACT:
                    type: string
                  DMH_ORDEREDBY:
                    type: string
                  DMH_INSTALL_TIME:
                    type: string
                  SAL_NAME:
                    type: string
                  PODMO_WEB_USER:
                    type: string
                  DMH_JOBTOTAL:
                    type: string
                  DMH_BLDG:
                    type: string
                  DMH_UNIT:
                    type: string
                  DMH_SHCITY:
                    type: string
                  DMH_SHSTATE:
                    type: string
  /{alias}/orderlineinstaller:
    patch:
      operationId: updateOrderLineInstallerSingleDateOnly
      summary: Update Order Line Installer (Single Date Only)
      tags:
      - Order
      description: Sets/updates the installer for a single labor line <br> <b>Single Intall Date Only </b>
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      - name: company
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster company.
      - name: branch
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster branch.
      - name: order
        in: query
        required: true
        schema:
          type: string
          maxLength: 6
      - name: lnnum
        in: query
        required: true
        schema:
          type: string
          maxLength: 3
      - name: installer
        in: query
        required: true
        schema:
          type: string
          maxLength: 8
      - name: taxable
        in: query
        required: false
        schema:
          type: string
          maxLength: 1
        description: Y or N
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  RETURN:
                    type: string
  /{alias}/orderline:
    get:
      operationId: getOrderLinesInactiveUntil2102Release
      summary: Get Order Lines - Inactive until 2102 Release
      tags:
      - Order
      description: Get Order Lines - Inactive until 2102 Release
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      - name: company
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster company.
      - name: branch
        in: query
        required: true
        schema:
          type: string
          maxLength: 2
        description: RollMaster branch.
      - name: order
        in: query
        required: false
        schema:
          type: string
          maxLength: 6
        description: Required When Audit Date Is Not Sent.
      - name: status
        in: query
        required: false
        schema:
          type: string
          default: open
          enum:
          - open
          - closed
          - both
        description: Job Status.
      - name: startdate
        in: query
        required: false
        schema:
          type: string
          maxLength: 8
        description: Format - YYYYMMDD - Looks at Job Audit Date in Range.
      - name: enddate
        in: query
        required: false
        schema:
          type: string
          maxLength: 8
        description: Format - YYYYMMDD - - Looks at Job Audit Date in Range.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  '0':
                    type: array
                    items:
                      type: string
    post:
      operationId: createOrderLine
      summary: Create Order Line
      tags:
      - Order
      description: Creates a line on an existing order. Returns the key (header info) of the order updated. <br><br> Only
        one of these parameters (ordlseq, ordlb2bsku, ordlbarcode) is required. If more than one is passed they execute in
        the precedence of  ordlseq > ordlb2bsku > ordlbarcode
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
        description: The clientid for the API call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                company:
                  type: string
                  maxLength: 2
                  description: RollMaster company.
                branch:
                  type: string
                  maxLength: 2
                  description: RollMaster branch.
                order:
                  type: string
                  maxLength: 6
                ordlseq:
                  type: string
                  maxLength: 13
                  description: Catalog sequence
                ordlb2bsku:
                  type: string
                  maxLength: 30
                ordlbarcode:
                  type: string
                  maxLength: 30
                ordlwqty:
                  type: string
                  maxLength: 9
                ordlsqty:
                  type: string
                  maxLength: 9
                ordlprice:
                  type: string
                  maxLength: 9
                laborunitcost:
                  type: string
                  maxLength: 9
                taxable:
                  type: string
                  maxLength: 1
                  description: Y or N
              required:
              - company
              - branch
              - order
      responses:
        '200':
          description: OK
          content:
            

# --- truncated at 32 KB (442 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/broadlume/refs/heads/main/openapi/broadlume-bms-openapi.yml