openapi: 3.2.0 info: title: Broadlume BMS Quote 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 servers: - url: https://api.rmaster.com/api description: Production security: - apiKeyAuth: [] sessionToken: [] tags: - name: Quote paths: /{alias}/quotes: get: operationId: quotesByFollowUpDateRange summary: Quotes by follow up date range tags: - Quote description: Quotes by follow up date range 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: false schema: type: string maxLength: 2 - name: startdate in: query required: true schema: type: string maxLength: 8 description: Format - YYYYMMDD - Looks up Follow-Up Date. - name: enddate in: query required: true schema: type: string maxLength: 8 description: Format - YYYYMMDD - Looks up Follow-Up Date - name: startdate2 in: query required: false schema: type: string maxLength: 8 description: Format - YYYYMMDD - Looks up Created Date. - name: enddate2 in: query required: false schema: type: string maxLength: 8 description: Format - YYYYMMDD - Looks up Created Date. - name: customer in: query required: false schema: type: string maxLength: 8 description: Optional - name: status in: query required: false schema: type: string maxLength: 7 description: Optional, open/closed/both responses: '200': description: OK content: application/json: schema: type: object properties: '0': type: array items: type: string /{alias}/quote: post: operationId: createQuote summary: Create Quote tags: - Quote description: Creates an Quote. Returns the key (header info) of the Quote updated. Only fields sent will update. 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. ordstatus: type: string maxLength: 12 custpo: type: string maxLength: 15 ordcustid: type: string maxLength: 8 ordtype: type: string maxLength: 1 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 shname: type: string maxLength: 30 shaddr1: type: string maxLength: 30 shaddr2: type: string maxLength: 30 shctyst: type: string maxLength: 30 shcity: type: string maxLength: 30 shstate: type: string maxLength: 30 shzip: type: string maxLength: 10 shbuilding: type: string maxLength: 23 description: When used, will override shaddr2 field shunit: type: string maxLength: 6 description: When used, will override shaddr2 field insdate: type: string maxLength: 8 description: YYYYMMDD Changes the followup date or quote. required: - company - branch responses: '200': description: OK content: application/json: schema: type: object properties: QMO_CODIV: type: string QMO_WHSE: type: string QMO_ORDNO: type: string QMH_STATUS: type: string QMH_STATUSCODE: type: string QMH_CUSTID: type: string QMH_TYPE: type: string QMH_SHCODE: type: string QMH_SHNAME: type: string QMH_SHADDR1: type: string QMH_SHADDR2: type: string QMH_SHCITY: type: string QMH_SHSTATE: type: string QMH_SHZIP: type: string QMH_JOBTYPE: type: string QMH_JOBNUM: type: string QMH_TAXTYPE: type: string QMH_SPECIAL1: type: string QMH_JOBTOTAL: type: string QMH_WONUM: type: string QMH_CUSTPO: type: string QMH_ATTN: type: string QMH_QRDNO: type: string QMH_INSTALLDATE: type: string QMH_DATE: type: string QMH_SHPHONE1: type: string QMH_SHFAX: type: string QMH_SHCONTACT: type: string QMH_INSDATE_INITIALS: type: string QMH_TYPEDESC: type: string QMH_CARE: type: string QMH_ORDEREDBY: type: string QMH_SMOP: type: string QRDE_EMAIL: type: string QMH_SALESREP1: type: string QMH_SALESREP1_NAME: type: string QMH_SALESREP1_PHONE1: type: string QMH_SALESREP1_PHONE2: type: string QMH_SALESREP2: type: string QMH_SALESREP2_NAME: type: string QMH_SALESREP2_PHONE1: type: string QMH_SALESREP2_PHONE2: type: string C_NAME: type: string C_PHONE: type: string C_PHONE2: type: string C_FAX: type: string C_EMAIL: type: string patch: operationId: updateQuote summary: Update Quote tags: - Quote description: Updates an existing Quote. Returns the key (header info) of the Quote 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: quote in: query required: true schema: type: string maxLength: 6 - name: ordstatus in: query required: false schema: type: string maxLength: 12 - name: custpo in: query required: false schema: type: string maxLength: 15 - name: ordcustid in: query required: false schema: type: string maxLength: 8 - name: ordtype in: query required: false schema: type: string maxLength: 1 - name: ordsalesrep1 in: query required: false schema: type: string maxLength: 3 - name: ordsalesrep2 in: query required: false schema: type: string maxLength: 3 - name: ordjobtype in: query required: false schema: type: string maxLength: 2 - name: ordstatuscode in: query required: false schema: type: string maxLength: 10 - name: shcode in: query required: false schema: type: string maxLength: 4 - name: shname in: query required: false schema: type: string maxLength: 30 - name: shaddr1 in: query required: false schema: type: string maxLength: 30 - name: shaddr2 in: query required: false schema: type: string maxLength: 30 - name: shctyst in: query required: false schema: type: string maxLength: 30 - name: shcity in: query required: false schema: type: string maxLength: 30 - name: shstate in: query required: false schema: type: string maxLength: 30 - name: shzip in: query required: false schema: type: string maxLength: 10 - name: shbuilding in: query required: false schema: type: string maxLength: 23 description: When used, will override shaddr2 field - name: shunit in: query required: false schema: type: string maxLength: 6 description: When used, will override shaddr2 field - name: insdate in: query required: false schema: type: string maxLength: 8 description: YYYYMMDD Changes the follow up date for quote responses: '200': description: OK content: application/json: schema: type: object properties: QMO_CODIV: type: string QMO_WHSE: type: string QMO_ORDNO: type: string QMH_STATUS: type: string QMH_STATUSCODE: type: string QMH_CUSTID: type: string QMH_TYPE: type: string QMH_SHCODE: type: string QMH_SHNAME: type: string QMH_SHADDR1: type: string QMH_SHADDR2: type: string QMH_SHCITY: type: string QMH_SHSTATE: type: string QMH_SHZIP: type: string QMH_JOBTYPE: type: string QMH_JOBNUM: type: string QMH_TAXTYPE: type: string QMH_SPECIAL1: type: string QMH_JOBTOTAL: type: string QMH_WONUM: type: string QMH_CUSTPO: type: string QMH_ATTN: type: string QMH_QRDNO: type: string QMH_INSTALLDATE: type: string QMH_DATE: type: string QMH_SHPHONE1: type: string QMH_SHFAX: type: string QMH_SHCONTACT: type: string QMH_INSDATE_INITIALS: type: string QMH_TYPEDESC: type: string QMH_CARE: type: string QMH_ORDEREDBY: type: string QMH_SMOP: type: string QRDE_EMAIL: type: string QMH_SALESREP1: type: string QMH_SALESREP1_NAME: type: string QMH_SALESREP1_PHONE1: type: string QMH_SALESREP1_PHONE2: type: string QMH_SALESREP2: type: string QMH_SALESREP2_NAME: type: string QMH_SALESREP2_PHONE1: type: string QMH_SALESREP2_PHONE2: type: string C_NAME: type: string C_PHONE: type: string C_PHONE2: type: string C_FAX: type: string C_EMAIL: type: string get: operationId: getQuote summary: Get Quote tags: - Quote description: Get Quote 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: quote in: query required: true schema: type: string maxLength: 6 responses: '200': description: OK content: application/json: schema: type: object properties: QMO_CODIV: type: string QMO_WHSE: type: string QMO_ORDNO: type: string QMH_STATUS: type: string QMH_STATUSCODE: type: string QMH_CUSTID: type: string QMH_TYPE: type: string QMH_SHCODE: type: string QMH_SHNAME: type: string QMH_SHADDR1: type: string QMH_SHADDR2: type: string QMH_SHCITY: type: string QMH_SHSTATE: type: string QMH_SHZIP: type: string QMH_JOBTYPE: type: string QMH_JOBNUM: type: string QMH_TAXTYPE: type: string QMH_SPECIAL1: type: string QMH_JOBTOTAL: type: string QMH_WONUM: type: string QMH_CUSTPO: type: string QMH_ATTN: type: string QMH_QRDNO: type: string QMH_INSTALLDATE: type: string QMH_DATE: type: string QMH_SHPHONE1: type: string QMH_SHFAX: type: string QMH_SHCONTACT: type: string QMH_INSDATE_INITIALS: type: string QMH_TYPEDESC: type: string QMH_CARE: type: string QMH_ORDEREDBY: type: string QMH_SMOP: type: string QRDE_EMAIL: type: string QMH_SALESREP1: type: string QMH_SALESREP1_NAME: type: string QMH_SALESREP1_PHONE1: type: string QMH_SALESREP1_PHONE2: type: string QMH_SALESREP2: type: string QMH_SALESREP2_NAME: type: string QMH_SALESREP2_PHONE1: type: string QMH_SALESREP2_PHONE2: type: string C_NAME: type: string C_PHONE: type: string C_PHONE2: type: string C_FAX: type: string C_EMAIL: type: string /{alias}/quoteline: post: operationId: createQuoteLine summary: Create Quote Line tags: - Quote description: Creates a line on an existing quote. Returns the key (header info) of the quote updated.

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. quote: type: string maxLength: 6 ordlseq: type: string maxLength: 13 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 - quote responses: '200': description: OK content: application/json: schema: type: object properties: CO: type: string BR: type: string QRDNO: type: string LINE: type: string get: operationId: getQuoteLines summary: Get quote lines tags: - Quote description: Get quote lines 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: quote in: query required: true schema: type: string maxLength: 6 - name: lnnum in: query required: false schema: type: string maxLength: 3 description: Optional - Sending will return single requested line. responses: '200': description: OK content: application/json: schema: type: object properties: QMI_ORDNO: type: string QMI_LNNUM: type: string QMI_RECSTAT: type: string QMI_CAT_SEQUENCE: type: string QMI_PRODCODE: type: string QMI_STYLE: type: string QMI_STYNUMBER: type: string QMI_COLOR: type: string QMI_COLNUMBER: type: string QMI_QTYASSIGNED: type: string QMI_SQUANTITY: type: string QMI_WQUANTITY: type: string QMI_SUNITS: type: string QMI_WUNITS: type: string QMI_PRICE: type: string QMI_TOTAL: type: string QMI_PONO: type: string QMI_TAXYN: type: string QMI_TAX: type: string QMI_INSTRUCTIONS: type: string QMI_BUNDLE_SEQ: type: string BQ_BUNDLE_NAME: type: string patch: operationId: updateQuoteLine summary: Update Quote Line tags: - Quote description: Updates a line on an existing quote. Returns the key (header info) of the quote updated. 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: quote in: query required: true schema: type: string maxLength: 6 - name: lnnum in: query required: true schema: type: string maxLength: 3 - name: ordlwqty in: query required: false schema: type: string maxLength: 9 - name: ordlsqty in: query required: false schema: type: string maxLength: 9 - name: ordlprice in: query required: false schema: type: string maxLength: 9 - name: laborunitcost in: query required: false schema: type: string maxLength: 9 - 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: CO: type: string BR: type: string QRDNO: type: string LINE: type: string delete: operationId: deleteQuoteLine summary: Delete Quote Line tags: - Quote description: Deletes a line on an existing quote. Returns the key (header info) of the quote deleted. 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: quote in: query required: true schema: type: string maxLength: 6 - name: lnnum in: query required: false schema: type: string maxLength: 3 responses: '200': description: OK content: application/json: schema: type: object properties: CO: type: string BR: type: string QRDNO: type: string LINE: type: string /{alias}/quotelinecomments: post: operationId: createQuoteLineComment summary: Create Quote Line Comment tags: - Quote description: Creates a quote line comment. 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. quote: type: string maxLength: 6 lnnum: type: string maxLength: 3 linenote: type: string maxLength: 70 commenttype: type: string maxLength: 1 description: W = work order, C = customer, B= both, N = none required: - company - branch responses: '200': description: OK content: application/json: schema: type: object properties: QLC_CODIV: type: string QLC_WHSE: type: string QLC_ORDNO: type: string QLC_LNNUM: type: string QLC_SEQ: type: string QLC_TYPE: type: string QLC_COMMENT: type: string QLC_WEBNAME: type: string QLC_DATE: type: string QLC_TIME: type: string QLC_REQUIRED: type: string QLC_NOTE_NUM: type: string patch: operationId: updateQuoteLineComment summary: Update Quote Line Comment tags: - Quote description: Updates an existing quote line comment. 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: quote in: query required: false schema: type: string maxLength: 6 - name: lnnum in: query required: false schema: type: string maxLength: 3 - name: commseq in: query required: false schema: type: string maxLength: 3 - name: linenote in: query required: false schema: type: string maxLength: 53 responses: '200': description: OK content: application/json: schema: type: object properties: QLC_CODIV: type: string QLC_WHSE: type: string QLC_ORDNO: type: string QLC_LNNUM: type: string QLC_SEQ: type: string QLC_TYPE: type: string QLC_COMMENT: type: string QLC_WEBNAME: type: string QLC_DATE: type: string QLC_TIME: type: string QLC_REQUIRED: type: string QLC_NOTE_NUM: type: string get: operationId: getQuoteLineCommments summary: Get Quote line commments tags: - Quote description: Get all quote line commments 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: quote in: query required: false schema: type: string maxLength: 6 - name: lnnum in: query required: false schema: type: string maxLength: 3 responses: '200': description: OK content: application/json: schema: type: object properties: COMMENT: type: array items: type: array items: type: string /{alias}/quotenote: get: operationId: readsAQuoteNote summary: Reads a Quote Note tags: - Quote description: Reads a Quote Note 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: quote in: query required: true schema: type: string maxLength: 6 - name: jobpage in: query required: false schema: type: string maxLength: 2 description: Optional responses: '200': description: OK content: application/json: schema: type: object properties: CO: type: string BR: type: string ORDNO: type: string PAGE: type: string LINE: type: string NOTE: type: string /{alias}/quotelinesub: get: operationId: getQrdlsubRecords summary: Get QRDLSUB Records tags: - Quote description: Get QRDLSUB Records 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: startdate in: query required: true schema: type: string maxLength: 8 description: Format - YYYYMMDD - name: enddate in: query required: true schema: type: string maxLength: 8 description: Format - YYYYMMDD - name: jobstatus in: query required: false schema: type: string maxLength: 7 description: Optional, open/closed. When not sent open quotes are returned. - name: branch in: query required: false schema: type: string maxLength: 2 description: Optional - name: quote in: query required: false schema: type: string maxLength: 6 description: Optional - name: page in: query required: false schema: type: number maxLength: 4 default: '1' description: Used to offset data by 'page'. Used in conjunction with 'pagelimit' parameter to limit the amount of records per page. - name: pagelimit in: query required: false schema: type: number maxLength: 4 default: '1000' description: Limit of records allowed per 'page' of data. Used with the 'page' parameter to offset records and get chunks of a return. responses: '200': description: OK content: application/json: schema: type: object properties: '0': type: array items: type: string components: securitySchemes: apiKeyAuth: type: apiKey in: header name: x-api-key description: API key issued by Broadlume, required on every request. sessionToken: type: apiKey in: header name: token description: User session token obtained from POST /{alias}/token. Sessions expire after a server-specified idle timeout (default 5 minutes); refresh with the keepalive endpoint. externalDocs: description: Broadlume BMS developer portal url: https://developer.broadlume.com/bms