Beacon Rest Services V1 (session)

The original Beacon PRO+ API surface — login and logout, account switching, branch list, jobs, order history and detail, catalog item lookup, pricing, cart items, order submission and templates. Nineteen published operations. Authenticated with a browser-shaped cookie session (JSESSIONID, DYN_USER_ID, DYN_USER_CONFIRM, siteId) established by POST /login and lasting one hour, or seven days with the RememberMe flag, rather than with a bearer token.

Operations 19

POST /login User login with username/password
POST /logout User logout
GET /getLoginDeclaration Get login declaration
GET /getCurrentUserInfo Get current user details
GET /accounts List all available accounts for the user
POST /switchAccount Change user's current account
GET /branchlist List all available branches
GET /jobs List available jobs for an account and provide the job name and number combination rule.
GET /orderhistory List all the orders in the account
GET /orderdetail Get details of the order by Id
GET /itemlist Get list of items
GET /items Get items details
GET /getProductInfo Get product and related accounts info
GET /getSkuUom Get all the Unit of Measure (UoM) for a given sku ids
GET /pricing Get price and Unit of Measures (UoMs) for multiple line items
GET /cartItems Get items in the cart
POST /submitOrder Submit order
POST /addMultipleItemsToOrder Add item(s) to cart
GET /template List all templates and details for the current user

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/beacon-rest-v1"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

beacon-roofing-supply-v1-openapi.yml Raw ↑
servers:
  - url: https://beaconproplus.com/v1/rest/com/becn
    description: >-
      Production. Added by API Evangelist; the harvested document carried no servers[].
      Source: info.description of this spec: 'Version 1: https://beaconproplus.com/v1/rest/com/becn'; probed 2026-09-04 -> 401 {"success":false,..."Please provide token"}
openapi: 3.0.0
info:
  title: Beacon Rest Services Ver 1
  version: 24PI-4-Sprint-3
  description: |
    This version requires user session to be established before calling any
    services. Once the session expires, the user has to log in to establish the
    session again.

    [ PROD BASE URL: *https://beaconproplus.com/v1/rest/com/becn* ]

    [ UAT  BASE URL: *https://beacon-uat.becn.com/v1/rest/com/becn* ]

    [ DEV  BASE URL: *https://beacon-dev.becn.com/v1/rest/com/becn* ]

    ### API Site ID:
    <details>
      <summary>Show...</summary>
      Most of the APIs supports the `apiSiteId` parameter in the following locations, the parsing priority is higher to lower. For example, if this parameter appears both in request parameter and request body, will get the one in the request parameter, any other locations will be ignored.
      1. `apiSiteId` in Request Parameter/URL/Query String e.g.
          ```
          example.com/?apiSiteId=XYZ...
          example.com/?...&apiSiteId=XYZ...
          ```
      2. `apiSiteId` in Request Body/Payload e.g.
        
          ```
          {
            ...
            "apiSiteId": "XYZ",
            ...
          }
          ```
          
          Please be noted, only support when `apiSiteId` is the root element of request body. For example, the `apiSiteId` in the following request body is the second element, so this property will be ignored:
          ```
          {
            ...
            "foo": {
              "apiSiteId": "XYZ",
            }
            ...
          }
          ```
      3. `apiSiteId` related OAuth Token in Request Header e.g.
          ```
          Authorization Bearer atdy9au5qtg0ofkxdewwr3169...
          ```
          In this case, the `apiSiteId` will be parsed via the OAuth Token. For example, if one token is generated by the client id 'nigu0zjtyih7lb36l2...', then this client related api site id(pre-defined and stored in the server database) will be the value of `apiSiteId`
    </details>

    ### API Response Message Code
      <details>
          <summary>Show...</summary>
          <table id="API_Response_Message_Code" border="1">
           <tbody>
                        <tr>
                            <th colspan="1" align="left" width="20%"><p><span>API</span></p></th>
                            <th align="center" width="10%"><p><span>Message Code</span></p></th>
                            <th align="left" width="40%"><p><span>Code Definition</span></p></th>
                        </tr>
                        <tr>
                            <td rowspan="15" align="left" width="20%"><a href="/swagger/v1/#/My%20Account%20Services/post_login"><strong>/login</strong></a></td>
                            <td rowspan="12" align="center" width="10%">1007</td>
                            <td align="left" width="40%">Email Address is required.</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Email Address is invalid.</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Email address is not recognized.</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Password is required.</td>
                        </tr>
                        <tr>
                             <td align="left" width="40%">Password is invalid and  should be 7 to 12 characters.</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Email address and password do not match.</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Invalid userAgent</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Request param userAgent is invalid</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Request param persistentLoginType is invalid</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">RememberPassword is disabled on this userAgent</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Validation fail,there is exception when validate login,please try again</td>
                        </tr>
                        <tr>
                            <td align="left" width="40%">Login fail,there is error when you login,please try again</td>
                        </tr>
                        <tr>
                            <td align="center" width="10%">2005</td>
                            <td align="left" width="40%">User is already login</td>
                        </tr>
                        <tr>
                           <td align="center" width="10%">3004</td>
                           <td align="left" width="40%">User is not found</td>
                        </tr>
                        <tr>
                           <td align="center" width="10%">3005</td>
                           <td align="left" width="40%">Request param site id is not equal to current site</td>
                        </tr>
                        <tr>
                           <td rowspan="7" align="left" width="20%"><a href="/swagger/v1/#/Order%20History%20Services/get_orderdetail"><strong>/orderdetail</strong></a></td>
                           <td rowspan="1" align="center" width="10%">2001</td>
                           <td align="left" width="40%">Can not get user info from current context.</td>
                        </tr>
                        <tr>
                           <td rowspan="1" align="center" width="10%">2002</td>
                           <td align="left" width="40%">User type is invalid.</td>
                        </tr>
                        <tr>
                           <td rowspan="1" align="center" width="10%">2003</td>
                           <td align="left" width="40%">Current user has no available account.</td>
                        </tr>
                        <tr>
                           <td rowspan="1" align="center" width="10%">3001</td>
                           <td align="left" width="40%">Current user has no permission for given account.</td>
                        </tr>
                        <tr>
                           <td rowspan="1" align="center" width="10%">4002</td>
                           <td align="left" width="40%">Mincron service is unavailable, please try later.</td>
                        </tr>
                        <tr>
                           <td rowspan="1" align="center" width="10%">5003</td>
                           <td align="left" width="40%">This order is voided or cancelled status in Mincron.</td>
                        </tr>
                        <tr>
                           <td rowspan="1" align="center" width="10%">5004</td>
                           <td align="left" width="40%">The orderId or accountId is missing.</td>
                        </tr>
            </tbody>
          </table>
      </details>
components:
  schemas:
    branchObj:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/branchAddressObj'
        branchNumber:
          type: string
        branchName:
          type: string
        branchPhone:
          type: string
        branchRegionId:
          type: string
        company:
          type: string
        companyName:
          type: string
        division:
          type: string
        divisionName:
          type: string
        market:
          type: string
        branchDTEnabled:
          type: boolean
        active:
          type: boolean
        activeToSendEmail:
          type: boolean
        corporateBranch:
          type: boolean
        mincronBranchStatus:
          type: string
        canAccessEVSmartOrderOnBranch:
          type: boolean
        guidedOrder:
          type: boolean
    branchAddressObj:
      type: object
      properties:
        postalCode:
          type: string
        state:
          type: string
        address1:
          type: string
        address2:
          type: string
        address3:
          type: string
        city:
          type: string
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
    jobObj:
      type: object
      properties:
        jobName:
          type: string
        jobNumber:
          type: string
    accountObj:
      type: object
      properties:
        accountName:
          type: string
        accountEnabled:
          type: boolean
        accountLegacyId:
          type: string
        accountViewPrices:
          type: boolean
        addCustomSteel:
          type: boolean
        cashAccount:
          type: boolean
        isAccountClosed:
          type: boolean
        canAccessEVSmartOrder:
          type: boolean
        customerType:
          $ref: '#/components/schemas/customerType'
        hasMincronRebate:
          type: boolean
        loyaltyEnrolled:
          type: boolean
        nationalAccount:
          type: boolean
        loyaltyFlag:
          type: boolean
        gafQuickMeasureFlag:
          type: boolean
    accountObjWithRewardsEligible:
      type: object
      properties:
        accountName:
          type: string
        accountEnabled:
          type: boolean
        accountLegacyId:
          type: string
        accountViewPrices:
          type: boolean
        addCustomSteel:
          type: boolean
        rewardsEligible:
          type: boolean
        cashAccount:
          type: boolean
        isAccountClosed:
          type: boolean
        canAccessEVSmartOrder:
          type: boolean
        customerType:
          $ref: '#/components/schemas/customerType'
        hasMincronRebate:
          type: boolean
        loyaltyEnrolled:
          type: boolean
        nationalAccount:
          type: boolean
        loyaltyFlag:
          type: boolean
    accountWithBranchObj:
      type: object
      properties:
        accountName:
          type: string
        accountEnabled:
          type: boolean
        accountLegacyId:
          type: string
        accountViewPrices:
          type: boolean
        addCustomSteel:
          type: boolean
        rewardsEligible:
          type: boolean
        cashAccount:
          type: boolean
        isAccountClosed:
          type: boolean
        accountEagleViewPurchaseStatus:
          type: boolean
        canAccessEVSmartOrder:
          type: boolean
        branch:
          $ref: '#/components/schemas/branchObj'
        customerType:
          $ref: '#/components/schemas/customerType'
        hasMincronRebate:
          type: boolean
        loyaltyEnrolled:
          type: boolean
        nationalAccount:
          type: boolean
        loyaltyFlag:
          type: boolean
    customerType:
      type: object
      properties:
        name:
          type: string
        realm:
          type: string
        isDefault:
          type: boolean
    orderHistoryObj:
      type: object
      properties:
        total:
          type: number
          format: double
        sellingBranch:
          type: string
        accountId:
          type: string
        job:
          $ref: '#/components/schemas/jobObj'
        purchaseOrderNo:
          type: string
        creditHold:
          type: string
        shipping:
          type: object
          properties:
            shippingBranch:
              type: integer
            address:
              $ref: '#/components/schemas/branchAddressObj'
            shippingMethod:
              type: string
        orderPlacedDate:
          type: string
        tax:
          type: number
          format: double
        orderStatusCode:
          type: string
          description: 'Order status: C,K -> Processing, I -> Invoiced, O -> Ready Delivery/Pick up, N -> Pending, P,R -> Delivered'
          enum:
            - I
            - R
            - P
            - C
            - O
            - K
            - 'N'
        onHold:
          type: boolean
        subTotal:
          type: number
          format: double
        orderId:
          type: string
        specialInstruction:
          type: string
        creditCardTokenExists:
          type: boolean
        UUID:
          type: string
        invoicedDate:
          type: string
        paymentStatus:
          type: string
        orderNotes:
          type: string
        digital:
          type: string
    orderHistoryLineItemObj:
      type: object
      properties:
        description:
          type: string
        productOrItemNumber:
          type: string
        subTotal:
          type: number
          format: double
        itemOrProductDescription:
          type: string
        unitPrice:
          type: number
          format: double
        quantity:
          type: integer
        itemNumber:
          type: string
        unitOfMeasure:
          type: string
        productImageUrl:
          type: string
        productOnErrorImageUrl:
          type: string
        productOrItemDescription:
          type: string
        extendedDescription:
          type: string
        lineComments:
          type: string
    jobRows:
      type: object
      properties:
        pageRows:
          type: integer
        pages:
          type: integer
        page:
          type: integer
        rows:
          type: integer
        rowsPerPage:
          type: integer
    orderHistoryRows:
      type: object
      properties:
        pageRows:
          type: integer
        pages:
          type: integer
        page:
          type: integer
        rows:
          type: integer
        rowsPerPage:
          type: integer
    categoryObj:
      type: object
      properties:
        categoryName:
          type: string
        categoryId:
          type: string
    productObj_itemlist:
      type: object
      properties:
        productImage:
          type: string
        productOnErrorImage:
          type: string
        productAdditionalOnErrorImage:
          type: string
        longDesc:
          type: string
        brand:
          type: string
        categories:
          type: array
          items:
            $ref: '#/components/schemas/categoryObj'
        shortDesc:
          type: string
        hoverAttributes:
          $ref: '#/components/schemas/hoverAttributesObj'
        productName:
          type: string
        productId:
          type: string
        baseProductName:
          type: string
        internalProductName:
          type: string
        url:
          type: string
        isAddedToFavorites:
          type: boolean
    productObj_itemDetails:
      type: object
      properties:
        productImage:
          type: string
        productOnErrorImage:
          type: string
        productAdditionalOnErrorImage:
          type: string
        longDesc:
          type: string
        manufactureNumber:
          type: string
        categories:
          type: array
          items:
            $ref: '#/components/schemas/categoryObj'
        shortDesc:
          type: string
        itemNumber:
          type: string
        hoverAttributes:
          $ref: '#/components/schemas/hoverAttributesObj'
        productName:
          type: string
        productId:
          type: string
        baseProductName:
          type: string
        internalProductName:
          type: string
        brand:
          type: string
        url:
          type: string
        relatedProducts:
          type: array
          items:
            type: string
            example: '<type is object, the same as product>'
    hoverAttributesObj:
      type: object
      properties:
        sellingUom:
          type: string
        piecesPerUom:
          type: string
        coverageUom:
          type: string
        ppCoverageUom:
          type: string
        lengthExposure:
          type: string
        widthExposure:
          type: string
        lengthHover:
          type: string
        widthHover:
          type: string
        ncpSellingUom:
          type: string
        gcpSellingUom:
          type: string
        sslvoDimensionIn:
          type: string
        sswhoDimensionOption1In:
          type: string
        sswhoDimensionOption2In:
          type: string
        sswhoDimensionOption3In:
          type: string
        lslvoDimensionIn:
          type: string
        lswhoDimensionIn:
          type: string
        rvlvoDimensionIn:
          type: string
        rvwhoDimensionIn:
          type: string
        nfvaHover:
          type: string
        nfvaUomHover:
          type: string
        fhLapIn:
          type: string
        fvLapIn:
          type: string
        chLapIn:
          type: string
        cvLapIn:
          type: string
        cfmValue:
          type: string
        cfmUom:
          type: string
    heroImagesObj:
      type: object
      additionalProperties:
        type: object
      example:
        - image: /images/large/357583_default_hero.jpg
        - image: /images/large/357583_1_hero.jpg
        - image: /images/large/357583_2_hero.jpg
    currentSkuObj:
      type: object
      properties:
        currentUOM:
          type: string
        color:
          type: string
        manufactureNumber:
          type: string
        unitPrice:
          type: number
          format: double
        itemNumber:
          type: string
        productNumber:
          type: string
        uomlist:
          type: array
          items:
            type: string
        itemImage:
          type: string
        heroImages:
          $ref: '#/components/schemas/heroImagesObj'
        thumbImage:
          type: string
        swatchImage:
          type: string
        skuShortDesc:
          type: string
        auxiliaryImages:
          type: array
          items:
            type: string
        isAddedToFavorites:
          type: boolean
    skuObj:
      type: object
      properties:
        currentUOM:
          type: string
        color:
          type: string
        unitPrice:
          type: number
          format: double
        itemNumber:
          type: string
        productNumber:
          type: string
        productName:
          type: string
        itemImage:
          type: string
        thumbImage:
          type: string
        swatchImage:
          type: string
        skuShortDesc:
          type: string
        auxiliaryImages:
          type: array
          items:
            type: string
        isAddedToFavorites:
          type: boolean
    dtStatusObj:
      type: object
      properties:
        displayName:
          type: string
        statusEndDate:
          type: string
    deviceTokenObj:
      type: object
      properties:
        accountId:
          type: string
        orderId:
          type: string
        email:
          type: string
        dtStatus:
          $ref: '#/components/schemas/dtStatusObj'
        tokens:
          type: array
          items:
            type: string
    deliveryTrackingSettingsObj_getCurrentUserInfo:
      type: object
      properties:
        email:
          type: string
        phone:
          type: string
        myOrders:
          type: object
          additionalProperties:
            type: string
          example:
            requested: Text
            scheduled: Email
            delivered: Text&Email
        allOrders:
          type: object
          additionalProperties:
            type: string
          example:
            requested: Text
            scheduled: Email
            delivered: Text&Email
        dtAccount:
          type: object
          additionalProperties:
            type: string
          example:
            requested: Text
            scheduled: Email
            delivered: Text&Email
    currentUserPermissionObj:
      type: object
      properties:
        Place Order:
          type: object
          example:
            Yes: true
            No: false
            Yes, with Approval: false
        Price:
          type: object
          example:
            Yes: true
            No: false
    loginReq:
      type: object
      properties:
        username:
          type: string
          description: User login email address
        password:
          type: string
        siteId:
          type: string
          description: Login Site
          enum:
            - homeSite
            - dealerchoice
        persistentLoginType:
          type: string
          enum:
            - RememberMe
            - RememberPassword
        userAgent:
          type: string
          enum:
            - desktop
            - tablet
            - mobile
        apiSiteId:
          type: string
          description: Api Site Id
          enum:
            - UAT
    loginRep:
      type: object
      properties:
        messageInfo:
          type: object
          properties:
            accountBranch:
              $ref: '#/components/schemas/branchObj'
            lastName:
              type: string
            cartLineItems:
              type: integer
            profileId:
              type: string
            firstName:
              type: string
            internalUser:
              type: boolean
            userType:
              type: string
            rewardsEligible:
              type: boolean
            lastSelectedAccount:
              $ref: '#/components/schemas/accountObj'
    getLoginDeclarationRep:
      type: object
      properties:
        message:
          type: string
        titles:
          type: array
          items:
            type: string
        declarationContent:
          type: string
        CTA:
          type: array
          items:
            type: string
    getCurrentUserInfoRep:
      type: object
      properties:
        message:
          type: string
        accountBranch:
          $ref: '#/components/schemas/branchObj'
        lastName:
          type: string
        cartLineItems:
          type: integer
        profileId:
          type: string
        firstName:
          type: string
        email:
          type: string
        login:
          type: string
        internalUser:
          type: boolean
        userType:
          type: string
        roleType:
          type: string
        rewardsEligible:
          type: boolean
        lastActivity:
          type: string
        lastPasswordUpdate:
          type: string
        registrationDate:
          type: string
        firstLoggedInDate:
          type: string
        defaultOrganization:
          type: string
        defaultOrganizationId:
          type: string
        lastSelectedAccount:
          $ref: '#/components/schemas/accountObj'
        deliveryTrackingSettings:
          $ref: '#/components/schemas/deliveryTrackingSettingsObj_getCurrentUserInfo'
        hasPrivateEVAccount:
          type: boolean
        profileEagleViewPurchaseStatus:
          type: boolean
        deviceTokens:
          type: array
          items:
            type: string
        appLogin:
          type: boolean
        appLastPurchaseDate:
          type: string
        proPlusLastPurchaseDate:
          type: string
        lastProPlusMobileAppLogin:
          type: string
        notificationDisableStatus:
          type: boolean
        notificationChangeTime:
          type: string
        currentUserPermission:
          $ref: '#/components/schemas/currentUserPermissionObj'
        isEVrefreshTokenValid:
          type: boolean
        loyaltyFlag:
          type: boolean
    accountsRep:
      type: object
      properties:
        message:
          type: string
        totalNumRecs:
          type: integer
        pageNumRecs:
          type: integer
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/accountWithBranchObj'
    branchlistRep:
      type: object
      properties:
        message:
          type: string
        totalNumRecs:
          type: integer
        pageNumRecs:
          type: integer
        branches:
          type: array
          items:
            $ref: '#/components/schemas/branchObj'
    jobsRep:
      type: object
      properties:
        message:
          type: string
        hasJobAccount:
          type: boolean
        hasJobNumber:
          type: boolean
        isJobAccountRequired:
          type: boolean
        poRequired:
          type: boolean
        showExtendedPO:
          type: boolean
        extendedPORequired:
          type: boolean
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/jobObj'
        result:
          $ref: '#/components/schemas/jobRows'
    orderhistoryRep:
      type: object
      properties:
        message:
          type: string
        orders:
          type: array
          items:
            $ref: '#/components/schemas/orderHistoryObj'
        result:
          $ref: '#/components/schemas/orderHistoryRows'
    orderdetailRep:
      type: object
      properties:
        message:
          type: string
        order:
          $ref: '#/components/schemas/orderHistoryObj'
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/orderHistoryLineItemObj'
        DTInfo:
          $ref: '#/components/schemas/DTInfoObj'
        result:
          $ref: '#/components/schemas/orderHistoryRows'
        EVReportId:
          type: integer
        EVEligibleForUpgrade:
          type: boolean
        hasDTError:
          type: boolean
        warranties:
          type: array
          items:
            type: object
            properties:
              itemNumber:
                type: string
              skuPDPDisplayTitle:
                type: string
              resource:
                type: object
                additionalProperties:
                  type: string
                example:
                  Warranty: 'http://www.xxx.com/download.php,'
        documents:
          type: array
          items:
            type: object
            properties:
              itemNumber:
                type: string
              skuPDPDisplayTitle:
                type: string
              categoryName:
                type: string
              resource:
                type: object
                additionalProperties:
                  type: string
                example:
                  General Instructrions: 'http://www.xxx.com/download.php,'
                  MSDS: 'http://www.xxx.com/download.php,'
                  Brochure: 'http://www.xxx.com/download.php,'
    didYouMeanAndAutoCorrectionObj:
      type: object
      properties:
        message:
          type: string
        items:
          type: array
          items:
            type: object
            properties:
              filter:
                type: string
    itemlistRep:
      type: object
      properties:
        message:
          type: string
        totalNumRecs:
          type: integer
        pageNumRecs:
          type: integer
        didYouMean:
          $ref: '#/components/schemas/didYouMeanAndAutoCorrectionObj'
        autoCorrection:
          $ref: '#/components/schemas/didYouMeanAndAutoCorrectionObj'
        items:
          type: array
          items:
            $ref: '#/components/schemas/productObj_itemlist'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/categoryObj'
    itemDetailsRep:
      type: object
      properties:
        product:
          $ref: '#/components/schemas/productObj_itemDetails'
        message:
          type: string
        specification:
          type: object
          additionalProperties:
            type: string
          example:
            Shingles_Per_Square: '80,'
            Algae_Resistance: '10 years,'
            Coverage_Per_Square: '100 sq. ft,'
            Bundles_Per_Square: '3,'
            Nominal_Size: '12\x36\,'
            Net_Free_Vent_Area__NFVA_: 'Vent Area,'
            Exposure: '5\,'
            Wind_Resistance: 60mph
        resource:
          type: object
          additionalProperties:
            type: string
          example:
            General Instructrions: 'http://www.xxx.com/download.php,'
            Warranty: 'http://www.xxx.com/download.php,'
            MSDS: 'http://www.xxx.com/download.php,'
            Brochure: 'http://www.xxx.com/download.php,'
        currentSKU:
          $ref: '#/components/schemas/currentSkuObj'
        skuList:
          type: array
          items:
            $ref: '#/components/schemas/skuObj'
    submitOrderReq:
      type: object
      properties:
        accountId:
          type: string
        job:
          type: object
          properties:
            jobName:
              type: string
            jobNumber:
              type: string
        purchaseOrderNo:
          type: string
        extendedPO:
          type: string
        orderStatusCode:
          type: string
          description: 'Order status: C,K -> Processing, I -> Invoiced, O -> Ready Delivery/Pick up, N -> Pending, P,R -> Delivered'
          enum:
            - I
            - R
            - P
            - C
            - O
            - K
            - 'N'
        apiSiteId:
          type: string
          description: Api Site Id
          # enum:
          #   # - HVR
          #   - ALL
        lineItems:
          type: array
          items:
            type: object
            properties:
              itemNumber:
                type: string
              quantity:
                type: integer
              unitOfMeasure:
                type: string
              description:
                type: string
              lineComments:
                type: string
              productNumber:
                type: string
        shipping:
          $ref: '#/components/schemas/shippingObj'
        payment:
          $ref: '#/components/schemas/creditpurchase_req'
        sellingBranch:
          type: string
        specialInstruction:
          type: string
        checkForAvailability:
          type: string
          default: 'yes'
        pickupDate:
          type: string
          format: date(yyyy-mm-dd)
        pickupTime:
          type: string
        onHold:
          type: boolean
          example: false
        UUID:
          type: string
    submitOrderRep:
      type: object
      properties:
        orderId:
          type: string
        mincronCCMsg:
          type: string
    creditpurchase_req:
      type: object
      properties:
        cardInfo:
          type: object
          properties:
            ExpMM:
              type: string
            ExpYY:
              type: string
            Type:
              type: string
            FullName:
              type: string
        encryptionTokenData:
          type: object
          properties:
            LowValueToken:
              type: string
        addressVerificationData:
          type: object
          properties:
            AVSZIPCode:
              type: string
    addItemsToOrderReq:
      type: object
      properties:
        addItemCount:
          type: integer
          description: The total amount of item to add to cart
        accountId:
          type: string
          description: The account id
        specialInstructions:
          type: string
          description: The order special instructions
        items:
          type: array
          items:
            $ref: '#/components/schemas/addTocartItem'
        shipping:
          $ref: '#/components/schemas/shippingObj'
        apiSiteId:
          type: string
    addTocartItem:
      type: object
      properties:
        catalogRefId:
          type: string
        productId:
          type: string
        quantity:
          type: integer
        uom:
          type: string
        productNumber:
  

# --- truncated at 32 KB (80 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/beacon-roofing-supply/refs/heads/main/openapi/beacon-roofing-supply-v1-openapi.yml