servers: - url: https://beaconproplus.com/v2/rest/com/becn description: >- Production. Added by API Evangelist; the harvested document carried no servers[]. Source: info.description of this spec: '[ PROD BASE URL: https://beaconproplus.com/v2/rest/com/becn ]' openapi: 3.0.0 info: title: Beacon Rest Services Ver 2 (OAuth) version: 24PI-4-Sprint-3 description: | This version uses OAuth authorization method to access API services. A bearer token is required to be authorized to access the services. [ PROD BASE URL: *https://beaconproplus.com/v2/rest/com/becn* ] [ UAT BASE URL: *https://beacon-uat.becn.com/v2/rest/com/becn* ] [ DEV BASE URL: *https://beacon-dev.becn.com/v2/rest/com/becn* ] ### API Site ID:
Show... 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`
### API Uniform Format:
Show... ### Response: ``` { "success":true, "messages":[ { "key":null, "code":null, "type":"success", "value":"" } ], "result": } ``` ### Explanation: If the response example value of one endpoint `/foo` is: ``` { "name":"bar", "age":123 } ``` Then the actual response value of this endpoint is: (replace the value of "result" element in `API Uniform Format` with example response) ``` { "success":true, "messages":[ { "code":null, "type":"success", "value":"" } ], "result":{ "name":"bar", "age":123 } } ```
### Below V2 APIs follow original format
Show... * `/quote` * `/getQuoteDetail` * `/getCurrentUserInfo` * `/getAddressBook` * `/createAddressBook` * `/updateAddressBook` * `/deleteAddressBook` * `/changePassword` * `/forgotPassword` * `/getPerfectOrderDetail` * `/getStatusChange` * `/updateStatusChange` * `/itemlist` * `/itemDetails` * `/addPerfectOrderToTemplate` * `/deleteQuote` * `/createQuote` * `/submitQuote` * `/getOrderShippingInfo` * `/addOrderShippingInfo` * `/suggestiveSelling` * `/getCurrentOrderReview` * `/submitCurrentOrder` * `/getPerfectStyleGroups` * `/validateOrderByLocation` * `/submitOrder` * `/submitDelegatedQuote` ### Explanation: If the response example value of one endpoint `/fooLegacy` is: ``` { "name":"barLegacy", "age":456 } ``` Then the actual response value of this endpoint is: (the same as the response example) ``` { "name":"barLegacy", "age":456 } ```
### API Response Message Code
Show...

Code Group

Code

Comments

1XXX:
common request param error
1001 Param is required.
1002 Repository item not found via request
1003 Param max length is invalid.
1004 Param min length is invalid.
1005 Param regular expression is invalid.
1006 Request param requestBody is not a valid
1007 Request param caused validation exception
1008 Request param caused form error
2XXX:
current profile error
2001 Current profile in request is empty
2002 Current profile type/instance in request is empty
2003 Current profile in request do not have available accounts
2004 Current profile is unauthorized
2005 Current profile is already authorized
2006 Current profile is permission denied
3XXX:
specified request param error
3001 Request param account id is not available/not belong to current profile
3002 Request param product id is not available to current region of current profile
3003 Request param profile id is not equal to current profile
3004 Request param profile id is not found
3005 Request param site id is not equal to current site
3006 Request param sku id is not available to current region of current profile
3007 Request param shipping is invalid to current region of current profile
3008 Device tokens not found
4XXX:
system level common error
4001 System error
4002 Mincron error
4003 ATG Order version invalid error
4004 Delivery Tracking Error
4005 Delete Device Token Error
4008 Integration Time Out
5XXX:
specified response error
5001 Submit order failed response
5002 Submit order failed with integration exception message returned
5003 Query order detail not match with current
5004 No result is returned to order history
5005 Template name invalid
5006 Need change account
5007 Account no longer available for current user
5008 Illegal data
5009 Account token invalid
5010 No current Order
5011 Quote order account not match
5301 BillTrust error
components: schemas: rebateLanding_rep: $ref: '#/components/schemas/RebateItemObj' getRebateRedeemedSummaryItems_rep: type: array items: $ref: '#/components/schemas/RedeemSummeryDTOObj' getRebateRedeemedItemDetail_req: type: object properties: rebateId: type: string searchKey: type: string searchValue: type: string searchStartDate: type: string searchEndDate: type: string pageNum: type: string pageSize: type: string getRebateRedeemedItemDetail_rep: $ref: '#/components/schemas/RedeemDetailsDTOObj' downloadRebateRedeemedItemDetail_req: type: object properties: redeemedRebateIds: type: string rebateId: type: string accountId: type: string downloadRebateRedeemedDetailAsPDF_req: type: object properties: redeemedRebateIds: type: string rebateId: type: string submitRebateInfoId: type: string getRebateFrom_rep: $ref: '#/components/schemas/RebateFromObj' submitRebate_req: type: object properties: rebateId: type: string rebateInfo: type: object properties: companyName: type: string contactName: type: string phoneNumber: type: string email: type: string rebateAddress: type: object properties: address: type: string city: type: string state: type: string zip: type: string rebateCustomInfo: type: object rebateMailingAddress: type: object RebateItemObj: type: object properties: image: type: string rebateName: type: string action: type: string rebateId: type: string brandName: type: string ableUpdate: type: boolean submittedRebateInfoId: type: string lastSubmittedDate: type: string startDate: type: string format: MM-dd-yyyy example: 01-17-2018 endDate: type: string format: MM-dd-yyyy example: 01-17-2018 deactivationDate: type: string format: MM-dd-yyyy example: 01-17-2018 RedeemSummeryDTOObj: type: object properties: promotionDates: type: string example: 'May 5,2017-May 8,2019' accountId: type: string submitDate: type: string format: MM-dd-yyyy example: 01-17-2018 id: type: string brand: type: string rebateId: type: string PDFUrl: type: string currencyUnit: type: string promotion: type: string projectedRebate: type: string RedeemDetailsDTOObj: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' header: $ref: '#/components/schemas/RedeemSummeryDTOObj' body: type: array items: $ref: '#/components/schemas/RedeemDetailDTOObj' RedeemDetailDTOObj: type: object properties: orderNumber: type: string itemStockUnitOfMeasure: type: string invoiceDate: type: string format: MM-dd-yyyy example: 01-17-2018 showSalesAmountAsPrice: type: boolean customerName: type: string projectedRebate: type: string promotionDates: type: string example: 'May 5,2017-May 8,2019' accountId: type: string quantityShipped: type: string salesAmount: type: string id: type: string itemNumber: type: string itemDescription: type: string category: type: string projectedPromotionRebate: type: string rebateId: type: string currencyUnit: type: string promotion: type: string RebateFromObj: type: object properties: rebateId: type: string rebateName: type: string ableSubmit: type: boolean rows: type: array items: $ref: '#/components/schemas/RebateFromInputDTOObj' RebateFromInputDTOObj: type: object properties: name: type: string label: type: string placeHolder: type: string value: type: string required: type: boolean type: type: string infoGroup: type: string maxLength: type: integer minLength: type: integer email: type: boolean phone: type: boolean zip: type: boolean numeric: type: boolean pattern: type: string css: type: string invalidMsg: type: string selectValues: type: array items: $ref: '#/components/schemas/RebateFromSelectOptionDTOObj' isRadioSelected: type: boolean RebateFromSelectOptionDTOObj: type: object properties: displayName: type: string value: type: string getOrderApprovalList_req: type: object properties: approverId: type: string currentPage: type: integer pageSize: type: integer searchBy: type: string searchTerm: type: string sortBy: type: string sortType: type: string status: type: string getOrderApprovalList_rep: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' orders: type: array items: $ref: '#/components/schemas/OrderSimpleItemObj' OrderSimpleItemObj: type: object properties: id: type: string mincronId: type: string displayName: type: string firstName: type: string lastName: type: string accountNumber: type: string accountName: type: string creationDate: type: string format: timestamp createdUser: type: string createdUserEmail: type: string submittedDate: type: string format: timestamp status: type: string statusDisplayName: type: string readOnly: type: boolean getOrderApprovalDetail_rep: $ref: '#/components/schemas/SavedPendingOrderApprovalDetailItemV2Obj' SavedPendingOrderApprovalDetailItemV2Obj: type: object properties: id: type: string displayName: type: string siteId: type: string organizationId: type: string accountNumber: type: string contactInfo: $ref: '#/components/schemas/ContactInfo_savedorder' creationDate: type: string format: timestamp createdUser: type: string submittedDate: type: string format: timestamp lastModifiedDate: type: string format: timestamp lastModifiedUser: type: string evOrderId: type: string assignApproval: $ref: '#/components/schemas/UserInfo_savedorder' assignApprovalDisplayText: type: string deleteStatus: type: boolean default: false job: $ref: '#/components/schemas/Job_savedorder' jobAccounts: $ref: '#/components/schemas/JobAccounts_savedorder' approvedBy: type: string po: type: string additionalEmailRecipient: type: array items: type: string deliveryOption: type: string deliveryOptions: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' deliveryDate: type: string deliveryTime: type: string deliveryTimes: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingMethod: type: string shippingMethodValue: type: string shippingMethods: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingAddressTitle: type: string shippingAddress: type: object properties: address1: type: string address2: type: string address3: type: string city: type: string state: type: string states: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' postalCode: type: string country: type: string branchName: type: string branchAddress: type: object properties: displayName: type: string address1: type: string address2: type: string address3: type: string city: type: string state: type: string stateValue: type: string postalCode: type: string country: type: string phoneNumber: type: string instructions: type: string commerceItems: type: array items: $ref: '#/components/schemas/CommerceItem_savedorder' status: type: string statusDisplayName: type: string mincronId: type: string itemsTotal: type: number format: double taxes: type: number format: double otherCharges: type: number format: double subTotal: type: number format: double addressBooks: type: array items: $ref: '#/components/schemas/AddressBook_savedorder' addressBook: $ref: '#/components/schemas/AddressBook_savedorder' storeLocatorItemId: type: string rejectReason: type: string rejectUserDisplayText: type: string rejectUser: $ref: '#/components/schemas/UserInfo_savedorder' showDeliveryNotification: type: boolean MFG: type: string color: type: string orderRelatedDocuments: items: type: string rejectSavedOrder_req: type: object properties: rejectReason: type: string orders: type: array items: type: object properties: id: type: string deleteSavedOrder_req: type: object properties: id: type: string updateSavedOrderItems_req: type: object properties: savedOrderId: type: string savedOrderName: type: string action: type: string items: type: array items: type: object properties: id: type: string quantity: type: integer itemNumber: type: string uom: type: string color: type: string example: Dark Blue(012) MFG: type: string example: Light Yellow updateSavedOrderItems_rep: type: object properties: savedOrderId: type: string savedOrderName: type: string items: type: array items: $ref: '#/components/schemas/CommerceItem_savedorder' CommerceItem_savedorder: type: object properties: id: type: string imageUrl: type: string imageOnErrorUrl: type: string thumbImageUrl: type: string pdpUrl: type: string description: type: string itemNumber: type: string price: type: integer format: double quantity: type: integer uom: type: string subTotal: type: integer format: double deleteStatus: type: boolean vendorColorId: type: string productId: type: string itemGrayOutLevel: type: string enum: - none - grayWithChange - gray itemFromQuote: type: boolean quotedItemQtyChanged: type: boolean getSavedOrderShippingInfo_req: type: object properties: orderId: type: string getSavedOrderShippingInfo_rep: $ref: '#/components/schemas/OrderDetailItemObj' OrderDetailItemObj: type: object properties: id: type: string displayName: type: string siteId: type: string organizationId: type: string accountNumber: type: string contactInfo: $ref: '#/components/schemas/ContactInfo_savedorder' creationDate: type: string format: timestamp createdUser: type: string submittedDate: type: string format: timestamp lastModifiedDate: type: string format: timestamp lastModifiedUser: type: string evOrderId: type: string assignApproval: $ref: '#/components/schemas/UserInfo_savedorder' assignApprovalDisplayText: type: string deleteStatus: type: boolean default: false job: $ref: '#/components/schemas/Job_savedorder' jobAccounts: $ref: '#/components/schemas/JobAccounts_savedorder' approvedBy: type: string po: type: string emailAddress: type: array items: type: string deliveryOption: type: string deliveryOptions: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' deliveryDate: type: string deliveryTime: type: string deliveryTimes: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingMethod: type: string shippingMethodValue: type: string shippingMethods: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingAddressTitle: type: string shippingAddress: type: object properties: address1: type: string address2: type: string address3: type: string city: type: string state: type: string states: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' postalCode: type: string country: type: string branchName: type: string branchAddress: type: object properties: displayName: type: string address1: type: string address2: type: string address3: type: string city: type: string state: type: string stateValue: type: string postalCode: type: string country: type: string phoneNumber: type: string instructions: type: string commerceItems: type: array items: $ref: '#/components/schemas/CommerceItem_savedorder' status: type: string statusDisplayName: type: string mincronId: type: string itemsTotal: type: number format: double taxes: type: number format: double otherCharges: type: number format: double subTotal: type: number format: double addressBooks: type: array items: $ref: '#/components/schemas/AddressBook_savedorder' addressBook: $ref: '#/components/schemas/AddressBook_savedorder' storeLocatorItemId: type: string rejectReason: type: string rejectUserDisplayText: type: string rejectUser: $ref: '#/components/schemas/UserInfo_savedorder' requiredFields: $ref: '#/components/schemas/RequiredFields_savedorder' showDeliveryNotification: type: boolean accountBranchState: type: string updateSavedOrderShippingInfo_req: type: object properties: orderId: type: string deliveryOption: type: string deliveryDate: type: string format: MM-dd-yyyy deliveryTime: type: string shippingMethod: type: string shippingAddress: $ref: '#/components/schemas/ShippingAddress_savedorder_req' branchName: type: string contactInfo: $ref: '#/components/schemas/ContactInfo_savedorder' instructions: type: string getSavedOrderReviewInfo_req: type: object properties: orderId: type: string getSavedOrderReviewInfo_rep: $ref: '#/components/schemas/OrderDetailItemObj' updateSavedOrderReviewInfo_req: type: object properties: orderId: type: string po: type: string jobName: type: string jobNumber: type: string additionalRecipients: type: array items: type: string submitSavedOrder_res: type: object properties: savedOrderId: type: string evOrderId: type: string submitSavedOrder_req: type: object properties: orderId: type: string approverId: type: string po: type: string jobName: type: string jobNumber: type: string additionalRecipients: type: array items: type: string approveSavedOrder_req: type: object properties: apiSiteId: type: string orderId: type: string po: type: string jobName: type: string jobNumber: type: string uuid: type: string UUID: type: string additionalRecipients: type: array items: type: string getSavedOrderConfirmationInfo_req: type: object properties: id: type: string getSavedOrderConfirmationInfo_rep: $ref: '#/components/schemas/SavedOrderConfirmationDetailObj' approver_rep: type: array items: $ref: '#/components/schemas/ApproverObj' ApproverObj: type: object properties: id: type: string firstName: type: string lastName: type: string email: type: string SavedOrderConfirmationDetailObj: type: object properties: id: type: string mincronId: type: string displayName: type: string accountNumber: type: string accountName: type: string accountNameOriginal: type: string creationDate: type: string createdUser: type: string firstName: type: string lastName: type: string createdUserEmail: type: string submittedDate: type: string status: type: string statusDisplayName: type: string readOnly: type: boolean siteId: type: string organizationId: type: string contactInfo: $ref: '#/components/schemas/ContactInfo_savedorder' lastModifiedDate: type: string lastModifiedUser: type: string deleteStatus: type: boolean job: $ref: '#/components/schemas/Job_savedorder' jobAccounts: $ref: '#/components/schemas/JobAccounts_savedorder' shippingMethod: type: string shippingMethodValue: type: string shippingMethods: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingAddress: $ref: '#/components/schemas/ShippingAddress_savedorder' shippingAddressTitle: type: string branchName: type: string branchAddress: $ref: '#/components/schemas/BranchAddress_savedorder' instructions: type: string commerceItems: type: array items: $ref: '#/components/schemas/CommerceItem_savedorder' requiredFields: $ref: '#/components/schemas/RequiredFields_savedorder' approvedBy: type: string po: type: string emailAddress: type: array items: type: string deliveryOption: type: string deliveryOptionValue: type: string deliveryOptions: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' deliveryDate: type: string deliveryTime: type: string deliveryTimes: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' itemsTotal: type: number format: double taxes: type: number format: double otherCharges: type: number format: double subTotal: type: integer format: double addressBooks: type: array items: $ref: '#/components/schemas/AddressBook_savedorder' addressBook: $ref: '#/components/schemas/AddressBook_savedorder' storeLocatorItemId: type: string rejectReason: type: string assignApprovalDisplayText: type: string assignApproval: $ref: '#/components/schemas/UserInfo_savedorder' rejectUserDisplayText: type: string rejectUser: $ref: '#/components/schemas/UserInfo_savedorder' showDeliveryNotification: type: boolean accountBranchState: type: string displaySubTotalMsg: type: boolean subTotalMsg: type: string thankYouMsg: type: string submitQuoteOrderForApproval_req: type: object required: - orderId - savedOrderName - approverId properties: orderId: type: string description: Quote Order Id savedOrderName: type: string approverId: type: string poName: type: string jobName: type: string jobNumber: type: string additionalRecipients: type: array items: type: string submitQuoteOrderForApproval_resp: type: object properties: savedOrderId: type: string ContactInfo_savedorder: type: object properties: firstName: type: string lastName: type: string nickName: type: string phoneNumber: type: string Job_savedorder: type: object properties: jobNumber: type: string jobName: type: string jobNameMandatory: type: boolean jobNumberMandatory: type: boolean jobNumberDisplayName: type: string JobAccounts_savedorder: type: object properties: unavailable: type: boolean unavailableMsg: type: boolean jobs: type: array items: $ref: '#/components/schemas/Job_savedorder' RadioButton_savedorder: type: object properties: displayName: type: string value: type: string selected: type: boolean ShippingAddress_savedorder: type: object properties: address1: type: string address2: type: string address3: type: string country: type: string city: type: string state: type: string states: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' postalCode: type: string ShippingAddress_savedorder_req: type: object properties: displayName: type: string address1: type: string address2: type: string address3: type: string city: type: string state: type: string postalCode: type: string country: type: string BranchAddress_savedorder: type: object properties: displayName: type: string address1: type: string address2: type: string address3: type: string country: type: string city: type: string state: type: string stateValue: type: string postalCode: type: string phoneNumber: type: string branchNumber: type: string RequiredFields_savedorder: type: object properties: deliveryOption: type: boolean deliveryDate: type: boolean deliveryTime: type: boolean shippingMethod: type: boolean shippingAddress: type: boolean postalCode: type: boolean state: type: boolean address1: type: boolean address2: type: boolean address3: type: boolean country: type: boolean city: type: boolean branchName: type: boolean contactInfo: type: boolean firstName: type: boolean lastName: type: boolean nickName: type: boolean phoneNumber: type: boolean instructions: type: boolean po: type: boolean jobName: type: boolean jobAccounts: type: boolean showExtendedPO: type: boolean AddressBook_savedorder: type: object properties: id: type: string displayName: type: string shippingAddress: $ref: '#/components/schemas/ShippingAddress_savedorder' contactInfo: $ref: '#/components/schemas/ContactInfo_savedorder' UserInfo_savedorder: type: object properties: id: type: string name: type: string email: type: string permissionTemplateList_req: type: object properties: sortBy: type: string sortType: type: string pageIndex: type: integer pageSize: type: integer permissionTemplateList_rep: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' permssionTemplate: type: array items: $ref: '#/components/schemas/BCPermissionTemplateObj' getPermissionTemplateDetail_rep: $ref: '#/components/schemas/BCPermissionTemplateObj_getPermissionTemplateDetail' createPermissionTemplate_req: type: object properties: name: type: string permissionValues: type: string additionalProperties: type: boolean example: '100001': true '100002': true '100003': false createPermissionTemplate_rep: type: object properties: templateId: type: string updatePermissionTemplate_req: type: object properties: id: type: string name: type: string permissionValues: type: string additionalProperties: type: boolean example: '100001': true '100002': true '100003': false deletePermissionTemplate_req: type: object properties: templateId: type: string validateTemplateItems_req: type: object properties: templateId: type: string templateItems: type: array items: type: object properties: templateItemId: type: string validateTemplateItems_rep: type: object properties: invalidTemplateItems: type: array items: type: object properties: templateItemId: type: string user_req: type: object properties: query: $ref: '#/components/schemas/QueryConditionObj' user_rep: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' users: type: array items: $ref: '#/components/schemas/BCUserObj_user' QueryConditionObj: type: object properties: or: type: array items: $ref: '#/components/schemas/termObj' and: type: array items: $ref: '#/components/schemas/termObj' sortBy: type: string sortType: type: string pageIndex: type: integer pageSize: type: integer termObj: type: object properties: op: type: string property: type: string value: type: object getUserDetail_rep: $ref: '#/components/schemas/BCUserObj_getUserDetail' createUser_req: type: object properties: firstName: type: string lastName: type: string title: type: string email: type: string phone: type: string role: type: object properties: id: type: string accounts: type: array items: type: object properties: id: type: string checked: type: boolean status: type: string currentTemplate: type: string permissionTemplate: type: object properties: templateId: type: string permissionValues: type: string additionalProperties: type: boolean example: '100001': true '100002': true '100003': false createUser_rep: type: object properties: userId: type: string updateUser_req: type: object properties: id: type: string firstName: type: string lastName: type: string title: type: string email: type: string phone: type: string pattern: '^\d{10}$' example: 1234567890 role: type: object properties: id: type: string accounts: type: array items: type: object properties: id: type: string checked: type: boolean status: type: string currentTemplate: type: string permissionTemplate: type: object properties: templateId: type: string permissionValues: type: string additionalProperties: type: boolean example: '100001': true '100002': true '100003': false organization_rep: $ref: '#/components/schemas/BCOrgObj' role_rep: $ref: '#/components/schemas/BCRoleObj' submitQuote_req: $ref: '#/components/schemas/EditQuoteInfoObj' EditQuoteInfoObj: allOf: - $ref: '#/components/schemas/EditQuoteInfoBaseObj' - type: object properties: quoteItems: type: array items: $ref: '#/components/schemas/EditQuoteItemObj' EditQuoteInfoBaseObj: type: object properties: id: type: string quoteName: type: string phoneNumber: type: string address1: type: string address2: type: string city: type: string state: type: string workType: type: string description: 'The Work Type, should be one of `N`(for New Construction) and `R`(for Remodel)' jobName: type: string jobNumber: type: string quoteNotes: type: string mailingAddress1: type: string mailingAddress2: type: string mailingAddress3: type: string mailingState: type: string mailingCity: type: string mailingZip: type: string expires: type: string validate: type: boolean description: default is true, if false, ignore request body validation except quote name. EditQuoteItemObj: type: object properties: itemId: type: string itemType: type: string quantity: type: integer uom: type: string displayName: type: string color: type: string dimensions: type: string EditDelegatedQuoteItemObj: allOf: - $ref: '#/components/schemas/EditQuoteItemObj' - type: object properties: netPrice: type: string description: net price for each item submitQuote_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' success: type: boolean result: type: object properties: quoteNumber: type: string quoteStatus: type: string submitDelegatedQuote_req: $ref: '#/components/schemas/EditDelegatedQuoteInfoObj' EditDelegatedQuoteInfoObj: allOf: - type: object properties: accountId: type: string description: accountId on whose behalf quote is submitted branchId: type: string description: branchIdId to which the quote is submitted apiSiteId: type: string description: Api Site Id - $ref: '#/components/schemas/EditDelegatedQuoteInfoBaseObj' EditDelegatedQuoteInfoBaseObj: allOf: - $ref: '#/components/schemas/EditQuoteInfoBaseObj' - type: object properties: quoteItems: type: array items: $ref: '#/components/schemas/EditDelegatedQuoteItemObj' queryQuoteStatus_req: type: object properties: quoteId: type: string queryQuoteStatus_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' success: type: boolean result: type: object properties: expires: type: string quoteNotesEditable: type: boolean rejectEnable: type: boolean reviseEnable: type: boolean copyOrderEnable: type: boolean approveEnable: type: boolean finalizeOrderEnable: type: boolean approveQuote_req: type: object properties: quoteId: type: string reviseQuote_req: type: object properties: quoteId: type: string quoteNotes: type: string rejectQuote_req: type: object properties: quoteId: type: string reason: type: string description: > Available Reason. * Price is Too High * Lost Bid * Product Not Available * Product Will Arrive Late * Other additionalReason: type: string description: It's optional, when the user selects 'Other' as a reason, this field accepts an additional reason. BCUserObj_getUserDetail: type: object properties: id: type: string firstName: type: string lastName: type: string title: type: string phone: type: string email: type: string role: $ref: '#/components/schemas/BCRoleObj' accounts: type: array items: $ref: '#/components/schemas/BCAccountObj' assignedAccounts: type: array items: $ref: '#/components/schemas/BCAccountObj' lastActivity: type: string lastModifiedDate: type: string status: type: string permissionTemplate: $ref: '#/components/schemas/BCPermissionTemplateObj' active: type: boolean currentTemplate: type: string org: $ref: '#/components/schemas/BCOrgObj' lastModifiedUserId: type: string userIsSelf: type: boolean internalUser: type: string userType: type: string rewardsEligible: type: boolean BCUserObj_user: type: object properties: id: type: string email: type: string lastActivity: type: string lastModifiedDate: type: string status: type: string rewardsEligible: type: boolean BCUserObj: type: object properties: id: type: string firstName: type: string lastName: type: string title: type: string phone: type: string email: type: string role: $ref: '#/components/schemas/BCRoleObj' accounts: type: array items: $ref: '#/components/schemas/BCAccountObj' assignedAccounts: type: array items: $ref: '#/components/schemas/BCAccountObj' lastActivity: type: string lastModifiedDate: type: string status: type: string permissionValues: type: string additionalProperties: type: boolean example: aa: true bb: true cc: false permissionTemplate: $ref: '#/components/schemas/BCPermissionTemplateObj' active: type: boolean currentTemplate: type: string org: $ref: '#/components/schemas/BCOrgObj' lastModifiedUserId: type: string userIsSelf: type: boolean internalUser: type: string userType: type: string rewardsEligible: type: boolean BCRoleObj: type: object properties: id: type: string displayName: type: string permissions: type: array items: $ref: '#/components/schemas/BCPermissionGroupObj' BCAccountObj: type: object properties: id: type: string displayName: type: string checked: type: boolean isAccountClosed: type: boolean BCPermissionTemplateObj: type: object properties: name: type: string templateId: type: string permissions: type: array items: $ref: '#/components/schemas/BCPermissionGroupObj' lastModifiedDate: type: string userEmail: type: string org: $ref: '#/components/schemas/BCOrgObj' BCPermissionTemplateObj_getPermissionTemplateDetail: type: object properties: name: type: string templateId: type: string permissions: type: array items: $ref: '#/components/schemas/BCPermissionGroupObj' lastModifiedDate: type: string userEmail: type: string org: $ref: '#/components/schemas/BCOrgObj_getPermissionTemplateDetail' BCOrgObj_getPermissionTemplateDetail: type: object properties: id: type: string name: type: string masterAdmin: $ref: '#/components/schemas/BCUserObj_getPermissionTemplateDetail' BCUserObj_getPermissionTemplateDetail: type: object properties: id: type: string email: type: string BCOrgObj: type: object properties: id: type: string name: type: string masterAdmin: $ref: '#/components/schemas/BCUserObj' BCPermissionGroupObj: type: object properties: name: type: string type: type: string permissions: type: array items: $ref: '#/components/schemas/BCPermissionObj' isGroup: type: boolean BCPermissionObj: type: object properties: id: type: string key: type: string groupId: type: string name: type: string displayName: type: string type: type: string isAuthorised: type: boolean isDisabled: type: boolean isFixed: type: boolean changePassword_req: type: object properties: oldPassword: type: string password: type: string confirmpassword: type: string changePassword_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean setPassword_req: type: object properties: password: type: string confirmpassword: type: string passwordtoken: type: string setPassword_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean forgotPassword_req: type: object properties: login: type: string forgotPassword_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean deleteQuote_req: type: object properties: quoteId: type: string updateQuote_req: type: object properties: id: type: string quoteName: type: string phoneNumber: type: string address1: type: string address2: type: string city: type: string state: type: string workType: type: string jobName: type: string jobNumber: type: string postalCode: type: string quoteNotes: type: string mailingAddress1: type: string mailingAddress2: type: string mailingAddress3: type: string mailingState: type: string mailingCity: type: string mailingZip: type: string expires: type: string action: type: string quoteItems: type: array items: $ref: '#/components/schemas/updateQuoteItemsObj' deleteItems: type: array items: type: string creationDate: type: string format: date lastModifiedDate: type: string format: date updateQuoteItemsObj: type: object properties: id: type: string itemNumber: type: string itemType: type: string displayName: type: string productId: type: string quantity: type: string format: long deleteStatus: type: boolean siteId: type: string uom: type: string matchColor: type: string dimensions: type: string createQuote_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean createQuote_req: type: object properties: quoteName: type: string phoneNumber: type: string address1: type: string address2: type: string city: type: string state: type: string statusDescription: type: string workType: type: string description: 'The Work Type, should be one of `N`(for New Construction) and `R`(for Remodel)' jobName: type: string jobNumber: type: string quoteNotes: type: string mailingAddress1: type: string mailingAddress2: type: string mailingAddress3: type: string mailingState: type: string mailingCity: type: string mailingZip: type: string expires: type: string validate: type: boolean description: default is true, if false, ignore request body validation except quote name. quoteItems: type: array items: $ref: '#/components/schemas/createQuoteItemObj' createQuoteItemObj: type: object properties: itemId: type: string itemType: type: string quantity: type: integer uom: type: string color: type: string dimensions: type: string displayName: type: string getQuoteDetail_rep: type: object properties: quote: $ref: '#/components/schemas/quoteDetailObj' quoteDetailItemObj: type: object properties: id: type: string itemNumber: type: string itemType: type: string displayName: type: string productId: type: string quantity: type: integer format: long unitOfMeasure: type: string deleteStatus: type: boolean imageURL: type: string imageOnErrorUrl: type: string PDPUrl: type: string productNumber: type: string unitPrice: type: integer format: long itemDescription: type: string itemTotalPrice: type: integer format: long currencySymbol: type: string stickerImageURL: type: string formatUnitPrice: type: string formatItemTotalPrice: type: string color: type: string dimensions: type: string itemAvailableQty: type: integer format: long itemUsedupQty: type: integer format: long itemRemainingQty: type: integer format: long itemOrderInfo: $ref: '#/components/schemas/quoteItemOrderInfoObj' quoteItemOrderInfoObj: type: object properties: orderNumber: type: string orderStatus: type: string shipQuantity: type: integer format: long backorderQuantity: type: integer format: long quoteDetailObj: type: object properties: id: type: string mincronId: type: string accountNumber: type: string createdUser: type: string createdUserName: type: string creationDate: type: string deleteStatus: type: boolean displayName: type: string quoteItems: type: array items: $ref: '#/components/schemas/quoteDetailItemObj' quoteNotes: type: string lastModifiedDate: type: string lastModifiedUser: type: string lastModifiedUserEmail: type: string siteID: type: string status: type: string displayStatus: type: string phoneNumber: type: string workType: type: string workTypeName: type: string jobNumber: type: string jobName: type: string address1: type: string address2: type: string postalCode: type: string state: type: string city: type: string mailingAddress1: type: string mailingAddress2: type: string mailingAddress3: type: string mailingState: type: string mailingCity: type: string mailingZip: type: string expires: type: string quoteTotalPrice: type: integer format: double profileId: type: string profileEmail: type: string documentName: type: string standardQuoteItems: type: array items: $ref: '#/components/schemas/quoteDetailItemObj' addtionalQuoteItems: type: array items: $ref: '#/components/schemas/quoteDetailItemObj' lastModifiedDate4Integration: type: string creationDate4Integration: type: string formatQuoteTotal: type: string subTotal: type: integer format: double otherCharges: type: integer format: double tax: type: integer format: double gst: type: integer format: double total: type: integer format: double formatSubTotal: type: string formatTax: type: string formatTotal: type: string atgOrderId: type: string mincronOrderId: type: string jobTaxExempt: type: boolean quoteObj: type: object properties: quoteId: type: string quoteName: type: string creationDate: type: string format: MM-dd-yyyy expirationDate: type: string format: MM-dd-yyyy status: type: string displayStatus: type: string description: The value is one of Available, Partially Available and Complete createdBy: type: string quoteListObj: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' quoteList: type: array items: $ref: '#/components/schemas/quoteObj' quote_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean draftQuote: $ref: '#/components/schemas/quoteListObj' inProcessQuote: $ref: '#/components/schemas/quoteListObj' receivedQuote: $ref: '#/components/schemas/quoteListObj' contactInfoObj: type: object properties: email: type: string lastName: type: string firstName: type: string phoneNumber: type: string address1: type: string address2: type: string city: type: string state: type: string postalCode: type: string country: type: string 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 saveCurrentUserInfoReq: type: object properties: title: type: string firstName: type: string lastName: type: string address1: type: string address2: type: string city: type: string state: type: string postalCode: type: string country: type: string contactPhoneNumber: type: string officePhoneNumber: type: string mobilePhoneNumber: type: string subscribeOrder: type: boolean subscribeQuote: type: boolean subscribeAccount: type: boolean 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 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 customerType: type: object properties: name: type: string realm: type: string isDefault: type: boolean 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 getUserInfoRep: type: object properties: messages: type: string profileId: type: string permission: type: object additionalProperties: type: object example: price: true order: submit: true submitForApproval: true approve: true checkoutShippingAddress: true checkoutOrderReview: true checkoutOrderConfirmation: true orderhistory: queryList: true queryDetail: true withPrice: true withoutPrice: false quote: edit: true upload: true submit: true update: true submitForm: true queryList: true queryListOpen: true queryListInProgress: true queryListProcessed: true queryDetailOpen: true queryDetailInProgress: true queryDetailProcessed: true rebate: submit: true landing: true form: true redeemedSummary: true redeemedDetail: true upcomingDelivery: true nonAppDeliveryNotification: true mobileDeliveryNotification: true account: type: object properties: accountLegacyId: type: string accountViewPrices: type: boolean isAccountClosed: type: boolean gafQuickMeasureFlag: type: boolean branch: type: object properties: branchNumber: type: string branchRegionId: type: string market: type: string getCurrentUserInfoRep: type: object properties: messages: 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' title: type: string contactPhoneNumber: type: string officePhoneNumber: type: string mobilePhoneNumber: type: string subscribeEmailType: type: object additionalProperties: type: boolean example: subscribeOrder: true subscribeAccount: true subscribeQuote: true contactAddress: $ref: '#/components/schemas/contactInfoObj' declineNotificationEmail: type: boolean userAccounts: type: array items: type: string 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' hasEnterpriseAccount: type: boolean isEVrefreshTokenValid: type: boolean loyaltyFlag: type: boolean addressBookInfoObj_R: type: object properties: nickName: type: string firstName: type: string lastName: type: string address1: type: string address2: type: string city: type: string state: type: string stateValue: type: string postalCode: type: string country: type: string countryValue: type: string phoneNumber: type: string addressBookInfoObj_CU: type: object properties: nickName: type: string firstName: type: string lastName: type: string address1: type: string address2: type: string city: type: string stateValue: type: string postalCode: type: string countryValue: type: string phoneNumber: type: string getAddressBookRep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean pagination: $ref: '#/components/schemas/BCPaginationDataObj' addressBooks: type: array items: type: object properties: addressBookId: type: string accountLegacyId: type: string accountName: type: string addressBookInfo: $ref: '#/components/schemas/addressBookInfoObj_R' createAddressBookReq: $ref: '#/components/schemas/addressBookInfoObj_CU' createAddressBookRep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean addressBookId: type: string updateAddressBookReq: type: object properties: addressBookId: type: string addressBookInfo: $ref: '#/components/schemas/addressBookInfoObj_CU' updateAddressBookRep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean deleteAddressBookReq: type: object properties: addressBookId: type: string deleteAddressBookRep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean statusChangeNotification: type: object properties: requested: type: string scheduled: type: string delivered: type: string accountStatusChangeNotification: type: object properties: requested: type: string scheduled: type: string delivered: type: string accountId: type: string statusChangeNotification_req: type: object properties: dtEmailAddress: type: string dtPhoneNumber: type: string dtStatusChangeNotification: $ref: '#/components/schemas/statusChangeNotification' dtAdminStatusChangeNotification: $ref: '#/components/schemas/statusChangeNotification' dtAccountStatusChangeNotification: type: array items: $ref: '#/components/schemas/accountStatusChangeNotification' statusChangeNotification_rep: type: object properties: messageCode: type: string message: type: string saveDeliverySetting_rep: type: object properties: result: type: string message: type: string success: type: boolean getDeliverySetting_rep: type: object properties: result: type: object properties: dtNotificationSettings: type: object properties: received: type: boolean scheduled: type: boolean ordered: type: boolean enRoute: type: boolean arrived: type: boolean quoteNotificationSettings: type: object properties: readyForReview: type: boolean disableStatus: type: boolean changeTime: type: string success: type: boolean message: type: string radioButtonObj: type: object properties: displayName: type: string value: type: string selected: type: boolean deliveryStatusObj: type: object properties: displayName: type: string label: type: string notifications: type: array items: $ref: '#/components/schemas/radioButtonObj' deliveryStatusObjWithAccount: type: object properties: accountId: type: string statusLabels: type: array items: $ref: '#/components/schemas/deliveryStatusObj' getStatusChangeNotification_rep: type: object properties: messageCode: type: string message: type: string emailAddress: type: string dtPhoneNumber: type: string dtStatusChangeNotification: type: array items: $ref: '#/components/schemas/deliveryStatusObj' dtAdminStatusChangeNotification: type: array items: $ref: '#/components/schemas/deliveryStatusObj' dtAccountStatusChangeNotification: type: array items: $ref: '#/components/schemas/deliveryStatusObjWithAccount' dtOrderStatusChangeNotification: type: object properties: notifications: type: array items: $ref: '#/components/schemas/radioButtonObj' UpcomingDeliveriesRep: type: object properties: upcomingDeliveries: type: array items: $ref: '#/components/schemas/UpcomingDeliveryObj' UpcomingDeliveryObj: type: object properties: jobNumber: type: string jobName: type: string branchNo: type: string customerNo: type: string street: type: string mincronOrderNo: type: string estimatedArrival: type: string estimatedArrivalDate: type: string plannedArrival: type: string plannedArrivalDate: type: string actualArrival: type: string salesPeople: type: string dtStatus: type: string dtDate: type: string po: type: string orderDetailLink: 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' jobNumber: type: string description: The job templateId: type: string description: Template Id shipping: $ref: '#/components/schemas/shippingObj' shippingObj: type: object properties: shippingMethod: type: string shippingBranch: type: string address: type: object properties: address1: type: string address2: type: string city: type: string postalCode: type: string state: type: string addTocartItem: type: object properties: catalogRefId: type: string productId: type: string quantity: type: integer uom: type: string matchColor: type: string example: Dark Blue(012) matchMFG: type: string example: Light Yellow productNumber: type: string itemType: type: string example: Standard item or Custom Steel description: type: string addItemsToOrderRep: type: object properties: allItemsUnavailable: type: boolean unavailableItems: type: array items: type: object properties: id: type: string failedReason: type: string addedToCartItems: type: array items: type: string vendorColorNotMatchedItems: type: array items: type: object properties: id: type: string matchColor: type: string matchMFG: type: string orderdetailRep: type: object properties: order: $ref: '#/components/schemas/orderHistoryObj' lineItems: type: array items: $ref: '#/components/schemas/orderHistoryLineItemObj' DTStatus: $ref: '#/components/schemas/DTStatusObj' DTPhotos: type: array items: $ref: '#/components/schemas/DTPhotosObj' branchDTEnabled: type: boolean DTEnabled: type: boolean 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,' DTOrderdetailRep: type: object properties: DTStatus: $ref: '#/components/schemas/DTStatusObj' DTPhotos: type: array items: $ref: '#/components/schemas/DTPhotosObj' branchDTEnabled: type: boolean DTEnabled: type: boolean hasDTError: type: boolean DTStatusObj: type: object properties: displayName: type: string contKey: type: string contValue: type: string statusEndDate: type: string example: 05/05/2018 infos: type: array items: type: object properties: defaultValue: type: string imageUrl: type: string active: type: boolean key: type: string value: type: string DTPhotosObj: type: object properties: thumbnailUrl: type: string largeUrl: type: string timestamp: type: string example: '2018-05-02T13:49:39.85' orderHistoryLineItemObj: type: object properties: description: type: string productOrItemNumber: type: string subTotal: type: number format: double subTotalNull: type: boolean itemOrProductDescription: type: string unitPrice: type: number format: double unitPriceNull: type: boolean quantity: type: integer itemNumber: type: string unitOfMeasure: type: string unitOfMeasureDisplay: type: string productImageUrl: type: string productOnErrorImageUrl: type: string productId: type: string pdpUrl: type: string skuPDPDisplayTitle: type: string displayQuantityMsg: type: boolean quantityMsg: type: string productOrItemDescription: type: string extendedDescription: type: string lineComments: type: string isAddedToFavorites: type: boolean BCOtherPaginationObj: type: object properties: available: type: boolean label: type: string page: type: integer BCPaginationObj: type: object properties: enable: type: boolean page: type: integer currentPage: type: boolean type: type: string BCPaginationDataObj: type: object properties: next: $ref: '#/components/schemas/BCOtherPaginationObj' previous: $ref: '#/components/schemas/BCOtherPaginationObj' pageSize: type: integer currentPage: type: integer totalCount: type: integer results: type: array items: $ref: '#/components/schemas/BCPaginationObj' getCurrentUserPermissionRep: type: object properties: original: type: object additionalProperties: type: object example: Price: 'Yes': true 'No': false Approve Orders: 'Yes': true 'No': false Place Order: 'Yes': true 'No': false Yes, with Approval: false Order History: Yes, Without Pricing: false Yes, With Pricing: true 'No': false Quotes: View: true Manage: true 'No': false Rebates: View: false Manage: true 'No': false Upcoming Delivery: 'Yes': true 'No': false Non-App Delivery Notification: 'Yes': true 'No': false Mobile Delivery Notification: 'Yes': true 'No': false computed: type: object additionalProperties: type: object example: price: true order: submit: true submitForApproval: true approve: true checkoutShippingAddress: true checkoutOrderReview: true checkoutOrderConfirmation: true orderhistory: queryList: true queryDetail: true withPrice: true withoutPrice: false quote: edit: true upload: true submit: true update: true submitForm: true queryList: true queryListOpen: true queryListInProgress: true queryListProcessed: true queryDetailOpen: true queryDetailInProgress: true queryDetailProcessed: true rebate: submit: true landing: true form: true redeemedSummary: true redeemedDetail: true upcomingDelivery: true nonAppDeliveryNotification: true mobileDeliveryNotification: true orderSummaryRep: type: object properties: total: type: integer format: double itemsTotal: type: integer format: double tax: type: integer format: double otherCharges: type: integer format: double displayTotalMsg: type: boolean totalMsg: type: string jobTaxExempt: type: boolean messagesObj: type: array items: type: object properties: type: type: string value: type: string code: type: string jobObj: type: object properties: jobName: type: string jobNumber: type: string orderHistoryObj: type: object properties: total: type: number format: double totalNull: type: boolean displayTotalMsg: type: boolean totalMsg: type: string sellingBranch: type: string accountId: type: string inStore: type: string source: type: string accountToken: type: string job: $ref: '#/components/schemas/jobObj' purchaseOrderNo: type: string creditHold: type: string shipping: type: object properties: shippingBranch: type: integer shippingBranchDisplayName: type: string address: $ref: '#/components/schemas/branchAddressObj' shippingMethod: type: string orderPlacedDate: type: string tax: type: number format: double taxNull: type: boolean jobTaxExempt: type: boolean 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 orderStatusValue: type: string subTotal: type: number format: double subTotalNull: type: boolean orderId: type: string specialInstruction: type: string showDeliveryNotification: type: boolean showDropDown: type: boolean showShipTips: type: boolean shipTipsMsg: type: string orderRelatedDocuments: type: array items: type: string creditCardTokenExists: type: boolean UUID: type: string invoicedDate: type: string paymentStatus: type: string orderNotes: type: string digital: type: string orderhistoryRep: type: object properties: orders: type: array items: $ref: '#/components/schemas/orderHistoryObj' pagination: $ref: '#/components/schemas/BCPaginationDataObj' branchAddressObj: type: object properties: postalCode: type: string state: type: string address1: type: string address2: type: string address3: type: string city: type: string saveOrderRep: type: object properties: successUrl: type: string savedOrderId: type: string proceedToCheckoutRep: type: object properties: nextUrl: type: string updateCartReq: type: object properties: items: type: array items: type: object properties: commerceItemId: type: string skuId: type: string uom: type: string quantity: type: integer cartItemsRep: type: array items: type: object properties: commerceItemId: type: string url: type: string productImageUrl: type: string productOnErrorImageUrl: type: string itemOrProductDescription: type: string catalogRefId: type: string productId: type: string quantity: type: integer uom: type: string unitPrice: type: integer format: double totalPrice: type: integer format: double cartItemsFullRep: type: object properties: atgOrderId: type: string lastSelectedJob: type: object properties: jobName: type: string jobNumber: type: string cartLineItems: type: integer items: type: array items: $ref: '#/components/schemas/cartItemList' lastSelectedAccount: $ref: '#/components/schemas/accountObjWithRewardsEligible' categoryObj: type: object properties: categoryName: type: string categoryId: type: string facetId: type: string categoryObj2: type: object properties: categoryName: type: string categoryId: type: string recordCount: type: integer example: 32 facetId: type: string EVItemCategory: type: object properties: categoryName: type: string categoryId: type: string EVCategory: type: object properties: category: type: string description: category name subCategories: type: array items: type: object properties: categoryId: type: string TemplateCategory: type: object properties: category: type: string description: category name subCategories: type: array items: type: object properties: categoryId: type: string productObj_itemlist: type: object properties: productImage: type: string productOnErrorImage: type: string productAdditionalOnErrorImage: type: string longDesc: type: string brand: type: string manufactureNumber: type: string categories: type: array items: $ref: '#/components/schemas/categoryObj' shortDesc: type: string itemNumber: type: string productName: type: string productId: type: string baseProductName: type: string internalProductName: type: string url: type: string isAddedToFavorites: type: boolean currentSKU: $ref: '#/components/schemas/currentSkuObj' skuList: type: array items: $ref: '#/components/schemas/skuListObj_itemlist' 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 productName: type: string productId: type: string baseProductName: type: string internalProductName: type: string brand: type: string url: type: string relatedProducts: type: array items: $ref: '#/components/schemas/relatedProductsObj' relatedProductsObj: type: object properties: productImage: type: string url: type: string productName: type: string productId: type: string internalProductName: type: string brand: type: string categories: type: array items: $ref: '#/components/schemas/categoryObj' cartItemList: type: object properties: commerceItemId: type: string url: type: string productImageUrl: type: string productOnErrorImageUrl: type: string itemOrProductDescription: type: string catalogRefId: type: string productId: type: string quantity: type: integer uom: type: string unitPrice: type: integer format: double totalPrice: type: integer format: double productMultiVariation: $ref: '#/components/schemas/multiVariationDataObj' skuListObj_itemlist: type: object properties: itemNumber: type: string productNumber: type: string itemImage: type: string example: /images/large/404191_default_hero.jpg swatchImage: type: string example: /images/large/404191_default_swatch.jpg skuShortDesc: type: string manufactureNumber: type: string variations: $ref: '#/components/schemas/PDPskusVariationObj' hoverAttributes: $ref: '#/components/schemas/hoverAttributesObj' isAddedToFavorites: type: boolean 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 currentSkuObj: type: object properties: currentUOM: 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: $ref: '#/components/schemas/auxiliaryImagesObj' variations: $ref: '#/components/schemas/PDPskusVariationObj' hoverAttributes: $ref: '#/components/schemas/hoverAttributesObj' isAddedToFavorites: type: boolean skuObj: type: object properties: currentUOM: type: string unitPrice: type: number format: double itemNumber: type: string productNumber: type: string itemImage: type: string thumbImage: type: string swatchImage: type: string skuShortDesc: type: string auxiliaryImages: $ref: '#/components/schemas/auxiliaryImagesObj' variations: $ref: '#/components/schemas/PDPskusVariationObj' hoverAttributes: $ref: '#/components/schemas/hoverAttributesObj' isAddedToFavorites: type: boolean auxiliaryImagesObj: type: object additionalProperties: type: object example: - image: /images/large/357583_1_thumb.jpg - image: /images/large/357583_2_thumb.jpg - image: /video/Video_Demo.mp4 videoUrl: /images/default_video.jpg 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 facetObj: type: object properties: facetId: type: string facetName: type: string recordCount: type: integer example: 32 selected: type: boolean typeAhead_rep: type: object properties: items: type: array items: type: object properties: baseProductName: type: string searchTypeAheadLink: type: string seeMoreLink: type: string 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/categoryObj2' facets: type: object additionalProperties: type: array items: $ref: '#/components/schemas/facetObj' example: Categories: - facetId: '2136008660' facetName: Residential Roofing selected: false children: - facetId: '2136009260' facetName: Residential Accessories recordCount: 216 selected: true children: - facetId: '2136009261' facetName: 'Adhesives, Caulk, & Sealants' recordCount: 1 selected: false - facetId: '2136009263' facetName: Fasteners recordCount: 1 selected: false - facetId: '2136009269' facetName: Flashings recordCount: 1 selected: false Color: - facetId: '4294967258' facetName: Grey recordCount: 15 selected: false - facetId: '4294967259' facetName: Blue recordCount: 23 selected: false Product Style: - facetId: '4294967260' facetName: R-11 recordCount: 54 selected: true - facetId: '4294967261' facetName: R-13 recordCount: 785 selected: true - facetId: '4294967262' facetName: R-15 recordCount: 642 selected: false Brand: - facetId: '4294967263' facetName: Johns Manville recordCount: 54 selected: true - facetId: '4294967264' facetName: Owens Corning recordCount: 2354 selected: false 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' variations: $ref: '#/components/schemas/variationsObj' pricingRep: type: object properties: priceInfo: type: object additionalProperties: type: object example: '253729': BDL: 125.67 PC: 10.86 '253737': CTN: 3663.22 '253740': CTN: 2384.34 PC: 834.43 orderPricing: type: object additionalProperties: type: object example: '253729': BDL: 125.67 '253737': CTN: 3663.22 '253740': PC: 834.43 unavailableSkuList: type: array items: type: string productVarationRep: type: object properties: productId: type: string productMultiVariation: $ref: '#/components/schemas/multiVariationDataObj' variationContentKeyMap: type: object multipleProductVarationReq: type: array items: $ref: '#/components/schemas/multipleProductVarationObj' multipleQuoteProductVarationReq: type: array items: $ref: '#/components/schemas/multipleQuoteProductVarationObj' multipleProductVarationObj: type: object required: - productId properties: productId: type: string skuId: type: string vendorColorId: type: string multipleQuoteProductVarationObj: type: object required: - productId properties: productId: type: string skuId: type: string vendorColorId: type: string quoteOrderId: type: string multipleProductVarationRep: type: array items: $ref: '#/components/schemas/productVarationRep' getFavoriteProducts_rep: type: object properties: totalNumRecs: type: number items: type: array items: type: object properties: productName: type: string url: type: string productImage: type: string productOnErrorImage: type: string categories_rep: type: object properties: categories: type: array items: $ref: '#/components/schemas/CategoryElement' CategoryElement: type: object properties: categoryLevel: type: number recordCount: type: number categoryName: type: string categoryId: type: string subCategories: type: array items: type: object example: '' templatelistRep: type: object properties: totalNumRecs: type: integer pageNumRecs: type: integer templates: type: array items: $ref: '#/components/schemas/templateListObj' pagination: $ref: '#/components/schemas/BCPaginationDataObj' templateDetailRep: $ref: '#/components/schemas/templateDetailObj' templateListObj: type: object properties: templateId: type: string templateName: type: string jobNumber: type: string lastModifiedDate: type: string lastModifiedUser: $ref: '#/components/schemas/profileObj' accountLegacyId: type: string isAccountClosed: type: boolean accountName: type: string createdByUser: $ref: '#/components/schemas/profileObj' templateItems: type: array items: $ref: '#/components/schemas/templateListItemObj' templateDetailObj: type: object properties: templateId: type: string templateName: type: string jobNumber: type: string lastModifiedDate: type: string lastModifiedUser: $ref: '#/components/schemas/profileObj' accountLegacyId: type: string isAccountClosed: type: boolean accountName: type: string createdByUser: $ref: '#/components/schemas/profileObj' templateItems: type: array items: $ref: '#/components/schemas/templateDetailItemObj' pagination: $ref: '#/components/schemas/BCPaginationDataObj' templateDetailItemObj: type: object properties: templateItemId: type: string productImageUrl: type: string productOnErrorImageUrl: type: string itemOrProductDescription: type: string itemNumber: type: string nickName: type: string productOrItemNumber: type: string internalProductName: type: string unitPrice: type: number format: double unitOfMeasure: type: string quantity: type: integer available: type: boolean displayOrder: type: integer imageUrl: $ref: '#/components/schemas/imageUrlObj' variations: $ref: '#/components/schemas/variationsObj' skusVariation: $ref: '#/components/schemas/skusVariationObj' pdpUrl: type: string multiVariationData: $ref: '#/components/schemas/multiVariationDataObj' isAddedToFavorites: type: boolean mainCategory: type: string category: $ref: '#/components/schemas/itemCategoryObj' itemCategoryObj: type: object properties: categoryId: type: string categoryName: type: string templateListItemObj: type: object properties: templateItemId: type: string productImageUrl: type: string productOnErrorImageUrl: type: string itemOrProductDescription: type: string itemNumber: type: string nickName: type: string productOrItemNumber: type: string internalProductName: type: string unitPrice: type: number format: double unitOfMeasure: type: string quantity: type: integer available: type: boolean imageUrl: $ref: '#/components/schemas/imageUrlObj' variations: $ref: '#/components/schemas/variationsObj' skusVariation: $ref: '#/components/schemas/skusVariationObj' pdpUrl: type: string multiVariationData: $ref: '#/components/schemas/multiVariationDataObj' imageUrlObj: type: object properties: thumbnail: type: string large: type: string swatch: type: string profileObj: type: object properties: firstName: type: string lastName: type: string vendorColorsObj: type: object properties: id: type: string MFG: type: string name: type: string code: type: string sku: type: string color: type: string multiVariationDataObj: type: object properties: currentSkuId: type: string skus: $ref: '#/components/schemas/skusVariationObj' variations: $ref: '#/components/schemas/variationsObj' vendorColors: type: array items: $ref: '#/components/schemas/vendorColorsObj' allVariationTypes: type: array items: type: string currentVariations: type: object additionalProperties: type: string example: color: please_select size: 2ft x 4ft diameter: 3d thickness: 5nm' style: slope 002 packaging: 5 gallon pail MFG: please_select variationKeyMFG: type: string variationKeyColor: type: string variationGroups: type: array items: type: object properties: variationTypes: type: array items: type: string maxVariationGroupSize: type: integer variationsObj: type: object additionalProperties: type: object example: color: White: - '100001' - '200002' Dover: - '100001' - '300003' size: 12x10: - '100001' 4x4: - '200002' - '300003' thickness: 2mm: - '100001' 4mm: - '200002' 6mm: - '300003' PDPskusVariationObj: type: object additionalProperties: type: object example: color: - White - Dover size: - 12x10 thickness: - 2mm skusVariationObj: type: object additionalProperties: type: object example: '600001': color: - White - Dover size: - 12x10 thickness: - 2mm '600002': color: - White size: - 4x4 thickness: - 4mm '300003': color: - Dover size: - 4x4 thickness: - 6mm updateSingleTemplateLineItemReq: type: object properties: templateId: type: string account: type: string templateName: type: string jobNumber: type: string item: type: object properties: templateItemId: type: string itemNumber: type: string nickName: type: string unitOfMeasure: type: string quantity: type: integer matchColor: type: string matchMFG: type: string updateTemplateItemDisplayOrderReq: type: object properties: templateId: type: string templateItems: type: array items: type: object properties: itemNumber: type: string displayOrder: type: integer updateTemptemItemReq: type: object properties: templateId: type: string account: type: string templateName: type: string jobNumber: type: string action: type: string example: >- The action operate on tempalte items.the value should be one of createItem,updateItem,deleteItem and empty for do nothing on items items: type: array items: type: object properties: templateItemId: type: string itemNumber: type: string nickName: type: string unitOfMeasure: type: string quantity: type: integer matchColor: type: string matchMFG: type: string updateSingleTemplateLineItemRep: type: object properties: templateId: type: string templateName: type: string jobNumber: type: string accountLegacyId: type: string templateItem: $ref: '#/components/schemas/templateDetailItemObj' updateTemptemItemRep: type: object properties: templateId: type: string templateName: type: string jobNumber: type: string lastModifiedDate: type: string accountLegacyId: type: string accountName: type: string allItemsUnavailable: type: boolean itemTotal: type: integer itemSuccessTotal: type: integer detailUrl: type: string example: /myAccount/templateDetail?activeTab=template&giftlistId=gl12345678 createTemplateReq: type: object properties: templateName: type: string account: type: string jobNumber: type: string items: type: array items: type: object properties: itemNumber: type: string unitOfMeasure: type: string quantity: type: integer matchColor: type: string matchMFG: type: string createTemplateRep: type: object properties: templateId: type: string templateName: type: string jobNumber: type: string lastModifiedDate: type: string accountLegacyId: type: string accountName: type: string allItemsUnavailable: type: boolean itemTotal: type: integer itemSuccessTotal: type: integer detailUrl: type: string example: /myAccount/templateDetail?activeTab=template&giftlistId=gl12345678 callBackParam: type: string addPerfectOrderToTemplateRep: type: object properties: templateId: type: string templateName: type: string lastModifiedDate: type: string accountLegacyId: type: string accountName: type: string messageCode: type: string message: type: string getProductBranchOrRegionAvailabilityRep: type: object properties: success: type: boolean result: type: array items: type: object properties: sku_id: type: string product_id: type: string div: type: string description: division reg: type: string description: region market: type: string description: market cmp: type: string description: company brn: type: string description: branch legacy item number isSKUAvailableAtBranch: type: string example: 'yes/no' isSKUAvailableAtRegion: type: string example: 'yes/no' getSKUBranchOrRegionAvailabilityRep: type: object properties: success: type: boolean result: type: array items: type: object properties: sku_id: type: string div: type: string description: division reg: type: string description: region market: type: string description: market cmp: type: string description: company brn: type: string description: branch legacy item number isSKUAvailableAtBranch: type: string example: 'yes/no' isSKUAvailableAtRegion: type: string example: 'yes/no' ATGItemMapping_req: type: object properties: MFCode: type: string MFRName: type: string branchId: type: string itemNumber: type: string incomingUOM: type: string becnUOM: type: string materialID: type: string conversionFactor: type: string becnProductId: type: string description: type: string accountId: type: string integrationName: type: string getATGItemMapping_rep: type: array items: type: object properties: MFCode: type: string MFRName: type: string branchId: type: string itemNumber: type: string incomingUOM: type: string becnUOM: type: string materialID: type: string conversionFactor: type: string becnProductId: type: string description: type: string accountId: type: string integrationName: type: string APISiteId: type: string UpdateOrderAlert_req: type: object properties: orderId: type: string orderNumber: type: string savedOrderId: type: string alertType: type: string phoneNumber: type: string emailAddress: type: string saveToProfile: type: boolean getPerfectOrderDetailRep: type: object properties: messages: type: string perfectOrders: type: array items: type: object properties: displayName: type: string items: type: array items: type: object properties: unitPrice: type: number format: double itemNumber: type: string unitOfMeasure: type: string productImageUrl: type: string productOnErrorImageUrl: type: string productOrItemNumber: type: string itemOrProductDescription: type: string internalProductName: type: string quantity: type: string variations: $ref: '#/components/schemas/variationsObj' skusVariation: $ref: '#/components/schemas/skusVariationObj' getPerfectOrderBrandsRep: type: object properties: messages: type: string success: type: boolean result: type: object properties: brands: type: array items: type: object properties: brandName: type: string smallImageUrl: type: string heroImageUrl: type: string thumbImageUrl: type: string zoomImageUrl: type: string getPerfectOrderLandingRep: type: object properties: messages: type: string success: type: boolean result: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' items: type: array items: type: object properties: landingRank: type: number displayName: type: string imgUrl: type: string imgOnErrorUrl: type: string id: type: string getPerfectStyleGroupsRep: type: object properties: result: type: array items: type: object properties: brandName: type: string styleId: type: string productStyleImage: type: string productStyleName: type: string rank: type: string updateCurrentOrderJobNumberReq: type: object properties: jobNumber: type: string getOrderShippingInfo_rep: type: object properties: deliveryOption: type: string deliveryOptionValue: type: string deliveryOptions: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' deliveryDate: type: string deliveryTime: type: string deliveryTimes: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' expressDeliveryTimes: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingMethod: type: string shippingMethodValue: type: string shippingMethods: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingAddress: $ref: '#/components/schemas/ShippingAddressV2Rep_getOrderShippingInfo' addressBooks: type: array items: $ref: '#/components/schemas/AddressBook_getOrderShippingInfo' addressBook: $ref: '#/components/schemas/AddressBook_savedorder' branchAddress: $ref: '#/components/schemas/BranchAddress_getOrderShippingInfo' instructions: type: string evOrderId: type: string BranchAddress_getOrderShippingInfo: type: object properties: displayName: type: string address1: type: string address2: type: string address3: type: string country: type: string city: type: string state: type: string stateValue: type: string postalCode: type: string phoneNumber: type: string PickupDateTimeInfo: type: object properties: pickupDate: $ref: '#/components/schemas/PickupDateTimeState' pickupTime: $ref: '#/components/schemas/PickupDateTimeState' timeItems: type: array items: $ref: '#/components/schemas/PickupTimeItem' PickupDateTimeState: type: object properties: value: type: string validate: type: boolean PickupTimeItem: type: object properties: selected: type: boolean disabled: type: boolean value: type: string displayName: type: string ShippingAddressV2Rep_getOrderShippingInfo: type: object properties: addressBookId: type: string nickName: type: string firstName: type: string lastName: type: string address1: type: string address2: type: string address3: type: string city: type: string stateValue: type: string states: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' postalCode: type: string countryValue: type: string countries: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' phoneNumber: type: string AddressBook_getOrderShippingInfo: type: object properties: id: type: string displayName: type: string addOrderShippingInfo_req: type: object properties: deliveryOptionValue: type: string deliveryDate: type: string deliveryTime: type: string shippingMethodValue: type: string changeShippingAddressLocation: type: boolean shippingAddress: $ref: '#/components/schemas/ShippingAddressV2Req' saveShippingAddressToAddressBook: type: boolean specialInstruction: type: string ShippingAddressV2Req: type: object properties: branchName: type: string addressBookId: type: string nickName: type: string firstName: type: string lastName: type: string address1: type: string address2: type: string address3: type: string city: type: string stateValue: type: string postalCode: type: string countryValue: type: string phoneNumber: type: string suggestiveSelling_rep: type: array items: $ref: '#/components/schemas/SuggestiveSellingProduct' SuggestiveSellingProduct: type: object properties: productId: type: string productName: type: string productNameNotTruncate: type: string pdpUrl: type: string defaultItem: $ref: '#/components/schemas/SuggestiveSellingSku' SuggestiveSellingSku: type: object properties: itemNumber: type: string unitOfMeasure: type: string price: type: number format: double vendorColorId: type: string itemImage: type: string itemOnErrorImage: type: string getCurrentOrderReviewInfo_rep: type: object properties: deliveryOption: type: string deliveryDate: type: string deliveryTime: type: string shippingMethod: type: string shippingAddress: $ref: '#/components/schemas/CurrentOrderReview_shippingAdrress' poJob: $ref: '#/components/schemas/CurrentOrderReview_poJob' instructions: type: string additionalRecipients: items: type: string orderRelatedDocuments: items: type: string payWithCredit: type: boolean evOrderId: type: string nextPage: $ref: '#/components/schemas/proceedToCheckoutRep' CurrentOrderReview_shippingAdrress: type: object properties: address1: type: string address2: type: string address3: type: string country: type: string city: type: string state: type: string states: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' postalCode: type: string nickName: type: string branchName: type: string firstName: type: string lastName: type: string phoneNumber: type: string CurrentOrderReview_poJob: type: object properties: poRequired: type: boolean jobNameRequired: type: boolean jobNumberRequired: type: boolean showJobName: type: boolean showJobNumber: type: boolean poName: type: string jobNumber: type: string jobName: type: string jobAccounts: $ref: '#/components/schemas/CurrentOrderReview_jobAccounts' showExtendedPO: type: boolean extendedPORequired: type: boolean CurrentOrderReview_jobAccounts: type: object properties: unavailable: type: boolean unavailableMsg: type: string jobs: type: array items: $ref: '#/components/schemas/CurrentOrderReview_jobInfo' CurrentOrderReview_jobInfo: type: object properties: jobName: type: string jobNumber: type: string checked: type: boolean submitCurrentOrder_req: type: object properties: apiSiteId: type: string poName: type: string extendedPO: type: string jobName: type: string jobNumber: type: string additionalRecipients: type: array items: type: string savedOrderName: type: string approverId: type: string uuid: type: string UUID: type: string submitCurrentOrder_rep: type: object properties: deliveryOption: type: string deliveryDate: type: string deliveryTime: type: string shippingMethod: type: string instructions: type: string jobNumber: type: string jobName: type: string poName: type: string approverFirstName: type: string approverLastName: type: string approverEmail: type: string shippingAddress: $ref: '#/components/schemas/CurrentOrderReview_shippingAdrress' items: $ref: '#/components/schemas/cartItemsRep' orderSummary: $ref: '#/components/schemas/orderSummaryRep' additionalRecipients: type: array items: type: string orderRelatedDocuments: items: type: string nextPage: $ref: '#/components/schemas/proceedToCheckoutRep' getSubmitOrderResult_req: type: object properties: orderId: type: string savedOrderId: type: string getSubmitOrderResult_rep: type: object properties: orderNumber: type: string orderNumberTips: type: string orderConfirmationTips: type: string state: type: string orderHistoryDetailLinkUrl: type: string orderHistoryListLinkUrl: type: string mincronResponseError: type: boolean ATGFailedStatus: type: string ATGOrderError: type: boolean evOrderId: type: string getHoverJobList_rep: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' items: type: array items: $ref: '#/components/schemas/HoverJobListItem' HoverJobListItem: type: object properties: jobId: type: string time: type: string title: type: string location: type: string cityAndRegion: type: string completedAt: type: string getHoverJobListImage_rep: type: string example: https://hover.to/.../xxxxxx.jpg?version=... getHoverJobDetail_rep: type: object properties: approved: type: string approved_at: type: string archived: type: string archived_at: type: string client_identifier: type: string completed_at: type: string created_at: type: string deliverable_id: type: string estimated_hours_to_completion: type: string example: type: string id: type: string location_city: type: string location_country: type: string location_lat: type: string location_line_1: type: string location_line_2: type: string location_lon: type: string location_postal_code: type: string location_region: type: string name: type: string org_id: type: string roof_estimate_access_level: type: string state: type: string updated_at: type: string user_id: type: string via_job_share: type: string creator: type: string archive_number: type: string contractor_estimate_sent_to: type: string customer_contact: type: string customer_contact_only_by_email: type: string customer_email: type: string customer_first_name: type: string customer_name: type: string customer_notes: type: string customer_phone: type: string estimates_count: type: string mobile_application_id: type: string org_job_accesses_assigned_lead_count: type: string original_job_id: type: string quote_user_id: type: string reported_at: type: string shared: type: string uploaded_at: type: string pdf: type: string threeDimensions: type: string orderMaterials: type: string machete_features: type: array items: type: string images: type: array items: $ref: '#/components/schemas/HoverJobDetailImage' HoverJobDetailImage: type: object properties: id: type: string getHoverJobDetailImage_rep: type: string example: https://hover.to/.../xxxxxx.jpg?version=... UserRegisterResponse_getUserRegisterToken: type: object properties: userRegInfo: $ref: '#/components/schemas/UserRegInfo_UserRegisterResponse_getUserRegisterToken' UserRegInfo_UserRegisterResponse_getUserRegisterToken: type: object properties: userRegisterToken: type: string ValidateUserRegRequest_validateUserByEmail: type: object properties: emailAddress: type: string firstName: type: string lastName: type: string zipCode: type: string phoneNumber: type: string g-recaptcha-response: type: string description: When recaptcha enabled on site, this token is required.Otherwise, keep it empty. shareDeliveryPhotos_req: type: object properties: orderNumber: type: string emails: type: array items: type: string ValidateUserRegRequest_validateUserByAccount: type: object properties: emailAddress: type: string companyName: type: string account: type: string invoice: type: string invoiceDate: type: string format: MM-dd-yyyy example: 01-17-2018 UserRegisterResponse_validateUserByEmail: type: object properties: userRegInfo: $ref: '#/components/schemas/UserRegInfo_UserRegisterResponse_validateUserByEmail' showBranchSelection: type: boolean branchSelection: $ref: '#/components/schemas/UserRegisterResponseBranchSelection' retryTimesLeft: type: integer needLogin: type: boolean needRetry: type: boolean needContactSupport: type: boolean needGetUserRegisterToken: type: boolean needInvoice: type: boolean registerSuccess: type: boolean UserRegisterResponse_validateUserByAccount: type: object properties: userRegInfo: $ref: '#/components/schemas/UserRegInfo_UserRegisterResponse_validateUserByAccount' showBranchSelection: type: boolean branchSelection: $ref: '#/components/schemas/UserRegisterResponseBranchSelection' retryTimesLeft: type: integer needLogin: type: boolean needRetry: type: boolean needContactSupport: type: boolean needGetUserRegisterToken: type: boolean needInvoice: type: boolean registerSuccess: type: boolean UserRegisterResponse_register: type: object properties: needLogin: type: boolean needRetry: type: boolean needContactSupport: type: boolean needGetUserRegisterToken: type: boolean registerSuccess: type: boolean UserRegInfo_UserRegisterResponse_validateUserByEmail: type: object properties: emailAddress: type: string firstName: type: string lastName: type: string zipCode: type: string phoneNumber: type: string accountInfos: type: array items: $ref: '#/components/schemas/UserRegAccountInfo' internalUser: type: boolean beaconEmployee: type: boolean token: type: string UserRegInfo_UserRegisterResponse_validateUserByAccount: type: object properties: companyName: type: string account: type: string invoice: type: string invoiceDate: type: string format: MM-dd-yyyy example: 01-17-2018 accountInfos: type: array items: $ref: '#/components/schemas/UserRegAccountInfo' token: type: string UserRegInfo: type: object properties: emailAddress: type: string firstName: type: string lastName: type: string zipCode: type: string phoneNumber: type: string companyName: type: string account: type: string invoice: type: string invoiceDate: type: string format: MM-dd-yyyy example: 01-17-2018 accountInfos: type: array items: $ref: '#/components/schemas/UserRegAccountInfo' internalUser: type: string token: type: string additionalEmailRecipients: type: array items: type: string UserRegAccountInfo: type: object properties: accountId: type: string accountName: type: string branchId: type: string UserRegisterResponseBranchSelection: type: object properties: accountId: type: string accountName: type: string branches: type: array items: $ref: '#/components/schemas/UserRegisterResponseBranchSelectionBranchInfo' UserRegisterResponseBranchSelectionBranchInfo: type: object properties: branchId: type: string branchName: type: string hoverExplicitLogin_req: type: object properties: username: type: string password: type: string uuid: type: string ua: type: string enum: - desktop - mobile siteId: type: string enum: - homeSite - dealerchoice persistentLoginType: type: string enum: - RememberMe - RememberPassword userAgent: type: string enum: - desktop - tablet - mobile hoverExplicitLogin_rep: type: object properties: nextUrl: type: string updateQuoteOrder_req: type: object properties: id: type: string action: type: string items: type: array items: type: object properties: id: type: string quantity: type: number format: long itemNumber: type: string uom: type: string matchColor: type: string matchMFG: type: string updateQuoteOrder_rep: type: object properties: id: type: string commerceItems: type: array items: type: object properties: id: type: string quantity: type: number format: long itemNumber: type: string uom: type: string color: type: string MFG: type: string updateQuoteOrderShippingInfo_req: type: object properties: id: type: string deliveryOption: type: string deliveryDate: type: string format: MM-dd-yyyy deliveryTime: type: string shippingMethod: type: string shippingAddress: $ref: '#/components/schemas/ShippingAddress_quoteOrder_req' branchName: type: string contactInfo: $ref: '#/components/schemas/ContactInfo_quoteOrder' instructions: type: string ShippingAddress_quoteOrder_req: type: object properties: displayName: type: string address1: type: string address2: type: string address3: type: string city: type: string state: type: string postalCode: type: string country: type: string ContactInfo_quoteOrder: type: object properties: firstName: type: string lastName: type: string nickName: type: string phoneNumber: type: string getQuoteOrderPrice_rep: type: object properties: id: type: string subTotal: type: number format: double taxes: type: number format: double otherCharges: type: number format: double total: type: number format: double displayTaxTBD: type: boolean displayOtherChargeTBD: type: boolean commerceItems: type: array items: $ref: '#/components/schemas/QuoteOrderItemPrice' QuoteOrderItemPrice: type: object properties: id: type: string price: type: number format: double subTotal: type: number format: double getQuoteOrderDetail_req: type: object properties: id: type: string mincronId: type: string displayName: type: string accountNumber: type: string accountName: type: string creationDate: type: string createdUser: type: string createdUserEmail: type: string lastModifiedDate: type: string lastModifiedUser: type: string lastModifiedUserEmail: type: string placeOrderDate: type: string placeOrderUser: type: string placeOrderEmail: type: string job: $ref: '#/components/schemas/Job_savedorder' jobAccounts: $ref: '#/components/schemas/JobAccounts_savedorder' shippingMethod: type: string shippingMethodValue: type: string shippingMethods: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' shippingAddress: $ref: '#/components/schemas/ShippingAddress_savedorder' shippingAddressTitle: type: string branchName: type: string contactInfo: $ref: '#/components/schemas/ContactInfo_savedorder' branchAddress: $ref: '#/components/schemas/BranchAddress_savedorder' instructions: type: string commerceItems: type: array items: $ref: '#/components/schemas/quoteOrderItem' requiredFields: $ref: '#/components/schemas/RequiredFields_savedorder' po: type: string emailAddress: type: array items: type: string deliveryOption: type: string deliveryOptionValue: type: string deliveryOptions: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' deliveryDate: type: string deliveryTime: type: string deliveryTimes: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' expressDeliveryTimes: type: array items: $ref: '#/components/schemas/RadioButton_savedorder' addressBook: $ref: '#/components/schemas/AddressBook_savedorder' storeLocatorItemId: type: string total: type: number format: double subTotal: type: number format: double taxes: type: number format: double otherCharges: type: number format: double displayTaxTBD: type: boolean displayOtherChargeTBD: type: boolean atgOrderId: type: string quoteStatus: type: string atgQuoteId: type: string action: type: string timeZoneId: type: string serverTime: type: integer postponeDeliveryHour: type: integer accountBranchState: type: string branchAddressTimeZoneId: type: string showDeliveryNotification: type: boolean showOrderSummary: type: boolean orderRelatedDocuments: items: type: string quoteOrderItem: type: object properties: id: type: string imageUrl: type: string imageOnErrorUrl: type: string thumbImageUrl: type: string pdpUrl: type: string description: type: string itemNumber: type: string price: type: integer format: double quantity: type: integer uom: type: string subTotal: type: integer format: double deleteStatus: type: boolean vendorColorId: type: string productId: type: string itemGrayOutLevel: type: string enum: - none - grayWithChange - gray itemFromQuote: type: boolean quotedItemQtyChanged: type: boolean itemChanged: type: boolean atgItemDescription: type: string atgItemNetPrice: type: integer format: double atgItemTotalPrice: type: integer format: double placeQuoteOrder_req: type: object properties: orderId: type: string poName: type: string jobName: type: string jobNumber: type: string uuid: type: string UUID: type: string additionalRecipients: type: array items: type: string getCurrentUserLastSelectedJobInfoRep: type: object properties: jobName: type: string jobNumber: type: string address1: type: string address2: type: string address3: type: string city: type: string state: type: string stateValue: type: string postalCode: type: string phoneNumber: type: string phoneNumberDigitally: type: string customerName: type: string submitQuoteForm_req: type: object properties: userName: type: string description: 'The User Full Name' contactNumber: type: number description: 'The Contact Number' uploadDocument: type: string format: binary description: | The Upload Document File Accepted File Types should be: *.pdf,*.csv,*.doc(x),*.tiff,*.xls(x) File size should between 0KB~10MB jobNumber: type: string description: 'The Job Number' workType: type: string description: 'The Work Type, should be one of `N`(for New Construction) and `R`(for Remodel)' quoteNotes: type: string description: 'The Quote Nodes' 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 ATGItemMapping: $ref: '#/components/schemas/ATGItemMapping_req' 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 attachFile: type: object properties: fileName: type: string fileType: type: string attachEncodeFile: type: string submitOrderRep: type: object properties: orderId: type: string mincronCCMsg: type: string eagleViewPlaceOrder_req: type: object required: - OrderReports - accountId - email - UUID properties: OrderReports: type: array description: Collection of OrderReportModels, each representing a report to be ordered. items: $ref: '#/components/schemas/OrderReports' minLength: 1 maxLength: 40 PromoCode: type: string description: Promotional code for report discount. PlaceOrderUser: type: string description: Email address of account to place orders on. Only required if not the authenticated user. accountId: type: string description: The account id email: type: string description: The user email projectName: type: string description: The project name beaconPrice: type: number description: The price UUID: type: string format: uuid description: The UUID. OrderReports: type: object required: - ReportAddresses - PrimaryProductId - DeliveryProductId - MeasurementInstructionType - ChangesInLast4Years properties: ReportAddresses: type: array items: $ref: '#/components/schemas/ReportAddresses' minLength: 1 maxLength: 4 BuildingId: type: string description: Building Id for this structure. Used to identify different structures with the same address. maxLength: 50 PrimaryProductId: type: integer description: > Available PrimaryProductIds * `1` - PremiumResidential * `2` - PremiumCommercial * `3` - StandardResidential * `9` - Images * `10` - ParkingLot * `11` - EagleView Inform Essentials+ * `12` - EagleView Inform Essentials+ for Commercial * `13` - ClaimsReadyResidential * `14` - ClaimsReadyCommercial * `15` - AA2D * `16` - AA3DResidential * `17` - SketchOnly * `18` - AA3DCommercial * `20` - InstallerReport * `25` - EC3DResidential * `26` - EC3DCommercial * `27` - EC2DResidential * `28` - EC2DCommercial * `29` - PremiumAWResidential * `30` - PremiumAWCommercial * `31` - ECPremiumResidential * `32` - ECPremiumCommercial * `34` - PremiumResidentialWallonly * `35` - PremiumCommercialWallonly * `37` - RiskManagementResidential * `38` - RiskManagementCommercial * `39` - Estimate * `40` - RoofGeometryResidential * `41` - CarrierEstimate * `44` - QuickSquares * `46` - GutterResidential * `47` - GutterCommercial * `48` - DiagramResidential * `49` - DiagramCommercial * `51` - WallsLite * `55` - QuickSquares-Multi-Family * `62` - EagleView Inform Advanced * `63` - EagleView Inform Advanced for Commercial enum: [ 1,2,3,9,10,11,12,13,14,15,16,17,18,20,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,44,46,47,48,49,51,55,62,63 ] DeliveryProductId: type: integer description: > Available PrimaryProductIds * `4` - ExpressDelivery * `7` - ThreeHourDelivery * `8` - RegularDelivery * `45` - QuickDelivery enum: [ 4,7,8,45 ] AddOnProductIds: type: array items: type: integer description: > Available AddOnProductIds * `19` - EagleViewXML * `33` - Walls * `54` - WallsLite enum: [ 19, 33, 54 ] MeasurementInstructionType: type: integer description: > Available MeasurementRequestTypes * `1` - PrimaryPlusDetachedGarage * `2` - PrimaryStructureOnly * `3` - AllStructuresOnParcel * `4` - CommercialComplex * `5` - Other enum: [ 1, 2, 3, 4, 5 ] ReportAttibutes: type: array items: $ref: '#/components/schemas/ReportAttibutes' ClaimNumber: type: string description: Customer provided claim number for this report. maxLength: 50 ClaimInfo: type: string description: Customer provided claim information for this report. maxLength: 50 BatchId: type: string description: Customer provided batch Id for this report. maxLength: 50 CatId: type: string description: Customer provided catastrophe Id for this report. maxLength: 50 ChangesInLast4Years: type: boolean description: Boolean to indicate if there have been changes at this address in the past 4 years PONumber: type: string description: Customer provided PO number for this report. maxLength: 45 Comments: type: string description: Customer notes for this report. maxLength: 512 ReferenceId: type: string description: Customer provided referenceId used for returning data to customer APIs. maxLength: 100 InsuredName: type: string description: Customer provided insured name for this report. maxLength: 100 UpgradeFromReportId: type: integer description: Id of earlier report upgrading from. PolicyNumber: type: string description: Customer provided policy number for this report. maxLength: 100 DateOfLoss: type: string description: Date of loss. format: date-time propertyType: type: string description: Property Type. maxLength: 50 reportType: type: string description: Report Type. maxLength: 50 deliveryType: type: string description: Delivery Type. maxLength: 50 addOns: type: string description: Add Ons. maxLength: 50 structures: type: string description: Structures. maxLength: 50 ReportAddresses: type: object required: - Address - City - State - Zip properties: Address: type: string description: Street address. maxLength: 50 City: type: string description: City of address. maxLength: 50 State: type: string description: State of address. maxLength: 50 Zip: type: string description: Zip code of address. maxLength: 50 Country: type: string description: Country of address. maxLength: 50 Latitude: type: number description: Latitude of address. Longitude: type: number description: Longitude of address. ReportAttibutes: type: object required: - "Attribute" properties: Attribute: type: integer description: > Available Attributes * `9` - StandardReportOk * `10` - PremiumReportOk * `24` - EmailCc * `107` - ReportOptionsCustomCover * `119` - AccuracyWaiverOk * `120` - Residential2CommercialOk * `155` - Ec3DReportOk * `156` - Ec2DReportOk * `246` - QuickSquaresToQsecOk * `247` - QuickSquaresToEc2DOk * `272` - WallsOnlyToWallsLiteOk enum: [ 9,10,24,107,119,120,155,156,246,247,272 ] Value: type: string eagleViewPlaceOrder_resp: type: object properties: mincronOrderId: type: string orderId: type: integer reportIds: type: array items: type: integer modelState: type: object properties: modelKey: type: string modelValue: type: array items: type: string eagleViewPlaceUpgradeOrder_req: type: object required: - ReportId - UUID properties: ReportId: type: integer description: ReportId returned from placeEagleViewOrder call. MeasurementRequestTypeId: type: integer description: > Available MeasurementRequestTypes * `1` - PrimaryPlusDetachedGarage * `2` - PrimaryStructureOnly * `3` - AllStructuresOnParcel * `4` - CommercialComplex * `5` - Other enum: [ 1, 2, 3, 4, 5 ] ProductId: type: integer description: > Available ProductIds. * `1` - PremiumResidential * `2` - PremiumCommercial * `3` - StandardResidential * `9` - Images * `10` - ParkingLot * `11` - EagleView Inform Essentials+ * `12` - EagleView Inform Essentials+ for Commercial * `13` - ClaimsReadyResidential * `14` - ClaimsReadyCommercial * `15` - AA2D * `16` - AA3DResidential * `17` - SketchOnly * `18` - AA3DCommercial * `20` - InstallerReport * `25` - EC3DResidential * `26` - EC3DCommercial * `27` - EC2DResidential * `28` - EC2DCommercial * `29` - PremiumAWResidential * `30` - PremiumAWCommercial * `31` - ECPremiumResidential * `32` - ECPremiumCommercial * `34` - PremiumResidentialWallonly * `35` - PremiumCommercialWallonly * `37` - RiskManagementResidential * `38` - RiskManagementCommercial * `39` - Estimate * `40` - RoofGeometryResidential * `41` - CarrierEstimate * `44` - QuickSquares * `46` - GutterResidential * `47` - GutterCommercial * `48` - DiagramResidential * `49` - DiagramCommercial * `51` - WallsLite * `55` - QuickSquares-Multi-Family * `62` - EagleView Inform Advanced * `63` - EagleView Inform Advanced for Commercial enum: [ 1,2,3,9,10,11,12,13,14,15,16,17,18,20,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,44,46,47,48,49,51,55,62,63 ] ProductDeliveryId: type: integer description: > Available DeliveryProductIds. * `4` - ExpressDelivery * `7` - ThreeHourDelivery * `8` - RegularDelivery * `45` - QuickDelivery enum: [ 4,7,8,45 ] AddOnProductIds: type: array items: type: integer description: > Available AddOnProductIds * `19` - EagleViewXML * `33` - Walls * `54` - WallsLite enum: [ 19, 33, 54 ] AdditionalEmails: type: string description: Comma separated list of emails to be added as delivery recipients. ClaimNumber: type: string description: Custom claim number field. maxLength: 100 ClaimInfo: type: string description: Custom claim information field. maxLength: 100 PONumber: type: string description: Custom purchase order number field. maxLength: 45 DateOfLoss: type: string description: Date of loss. format: date-time CatId: type: string description: Custom catastrophe Id field. maxLength: 50 UUID: type: string format: uuid description: The UUID. eagleViewPlaceUpgradeOrder_resp: type: object properties: mincronOrderId: type: string reportId: type: integer modelState: type: object properties: modelKey: type: string modelValue: type: array items: type: string getEagleViewOrderReport_resp: type: object properties: ReportId: type: integer description: Report Id of report. Street: type: string description: Street address of report. BuildingId: type: string description: BuildingId of report. City: type: string description: City of report. State: type: string description: State of report. Zip: type: string description: Zip of report. Latitude: type: integer description: Latitude of report. Longitude: type: integer description: Longitude of report. ClaimNumber: type: string description: Claim number of report. ClaimInfo: type: string description: Claim information of report. BatchId: type: string description: Batch ID of report. CatId: type: string description: Custom catastrophe ID field. DatePlaced: type: string format: date-time description: Date and time report was placed. DateCompleted: type: string format: date-time description: Date and time report was completed. Null if not completed. PONumber: type: string description: PO number for report. Comments: type: string description: Customer comments from report. ReportImage: type: array description: Customer image data for report. items: $ref: '#/components/schemas/ReportImage' ReferenceId: type: string description: ReferenceId for report. InsuredName: type: string description: Insured name for report. MeasurementRequestType: type: integer description: > Available MeasurementRequestTypes * `1` - PrimaryPlusDetachedGarage * `2` - PrimaryStructureOnly * `3` - AllStructuresOnParcel * `4` - CommercialComplex * `5` - Other enum: [ 1, 2, 3, 4, 5 ] ReportDownloadLink: type: string description: URL to download latest report PDF. EligibleForUpgrade: type: boolean description: Indicates if report can be upgraded from QuickSquares to a Premium Report. Status: type: string description: > Status-SubStatus of Report. * Created * Created - Customer * Created - Processing * InProcess * InProcess - UnderReview * InProcess - ProcessStarted * InProcess - ReadyToSend * InProcess - AddressVerified * InProcess - RTCVerified * InProcess - ReadyToCapturePayment * InProcess - PendingClosure * InProcess - ClosureDenied * InProcess - Cancellation * Pending * Pending - SiteMap * Pending - NeedToID * Pending - ReportTypeChange * Pending - CustomerResponse * Pending - CreditCardFailure * Pending - MeasurementData * Closed * Closed - Duplicate * Closed - CanceledByClient * Closed - PoorImages * Closed - NoID * Closed - TrainingFile * Closed - ReportTypeChange * Closed - NoImages * Closed - Other * Closed - System * Closed - CardRejected * Closed - WrongHouse * Closed - UnsupportedStructure * Closed - ImageResolutionRestriction * Closed - ImageAgeRestriction * Closed - UnableToCollect * Completed * Completed - CanceledByClient * Completed - NotSent * Completed - WorkFinished * Completed - Submitted * Completed - Cancelled Area: type: string description: Total area of report. Pitch: type: string description: Primary pitch of report. LengthRidge: type: string description: Total length of all ridges for report. LengthValley: type: string description: Total length of all valleys for report. LengthEave: type: string description: Total length of all eaves for report. LengthRake: type: string description: Total length of all rakes for report. ProductPrimaryId: type: integer description: ID of the primary product. ProductPrimary: type: string description: Name of the primary product. ProductDeliveryId: type: integer description: ID of the delivery product. ProductDelivery: type: string description: Name of the delivery product. AddOnProductIds: type: string description: Comma-seperated list of any Add-On products. AllowsUserSubmittedPhotos: type: boolean description: Indicates if user submitted photos will appear on report if uploaded by user. LengthHip: type: string description: Total length of all hips for report. SubstituteFromProduct: type: integer description: Previous product name if substitution was made. SubstituteToProduct: type: string description: Current product name if sustitution was made. CanCancelReport: type: string description: Determines if the report can be canceled based on its current status. getEagleViewOrderReportV3_resp: type: object properties: ReportId: type: integer description: Report Id of report. Street: type: string description: Street address of report. BuildingId: type: string description: BuildingId of report. City: type: string description: City of report. State: type: string description: State of report. Zip: type: string description: Zip of report. Latitude: type: integer description: Latitude of report. Longitude: type: integer description: Longitude of report. ClaimNumber: type: string description: Claim number of report. ClaimInfo: type: string description: Claim information of report. BatchId: type: string description: Batch ID of report. CatId: type: string description: Custom catastrophe ID field. DatePlaced: type: string format: date-time description: Date and time report was placed. DateCompleted: type: string format: date-time description: Date and time report was completed. Null if not completed. PONumber: type: string description: PO number for report. Comments: type: string description: Customer comments from report. ReportImage: type: array description: Customer image data for report. items: $ref: '#/components/schemas/ReportImage' ReferenceId: type: string description: ReferenceId for report. InsuredName: type: string description: Insured name for report. MeasurementRequestType: type: integer description: > Available MeasurementRequestTypes * `1` - PrimaryPlusDetachedGarage * `2` - PrimaryStructureOnly * `3` - AllStructuresOnParcel * `4` - CommercialComplex * `5` - Other enum: [ 1, 2, 3, 4, 5 ] ReportDownloadLink: type: string description: URL to download latest report PDF. EligibleForUpgrade: type: boolean description: Indicates if report can be upgraded from QuickSquares to a Premium Report. Status: type: string description: > Status-SubStatus of Report. * Created * Created - Customer * Created - Processing * InProcess * InProcess - UnderReview * InProcess - ProcessStarted * InProcess - ReadyToSend * InProcess - AddressVerified * InProcess - RTCVerified * InProcess - ReadyToCapturePayment * InProcess - PendingClosure * InProcess - ClosureDenied * InProcess - Cancellation * Pending * Pending - SiteMap * Pending - NeedToID * Pending - ReportTypeChange * Pending - CustomerResponse * Pending - CreditCardFailure * Pending - MeasurementData * Closed * Closed - Duplicate * Closed - CanceledByClient * Closed - PoorImages * Closed - NoID * Closed - TrainingFile * Closed - ReportTypeChange * Closed - NoImages * Closed - Other * Closed - System * Closed - CardRejected * Closed - WrongHouse * Closed - UnsupportedStructure * Closed - ImageResolutionRestriction * Closed - ImageAgeRestriction * Closed - UnableToCollect * Completed * Completed - CanceledByClient * Completed - NotSent * Completed - WorkFinished * Completed - Submitted * Completed - Cancelled Area: type: string description: Total area of report. Pitch: type: string description: Primary pitch of report. LengthRidge: type: string description: Total length of all ridges for report. LengthValley: type: string description: Total length of all valleys for report. LengthEave: type: string description: Total length of all eaves for report. LengthRake: type: string description: Total length of all rakes for report. ProductPrimaryId: type: integer description: ID of the primary product. ProductPrimary: type: string description: Name of the primary product. ProductDeliveryId: type: integer description: ID of the delivery product. ProductDelivery: type: string description: Name of the delivery product. AddOnProductIds: type: string description: Comma-seperated list of any Add-On products. AllowsUserSubmittedPhotos: type: boolean description: Indicates if user submitted photos will appear on report if uploaded by user. LengthHip: type: string description: Total length of all hips for report. SubstituteFromProduct: type: integer description: Previous product name if substitution was made. SubstituteToProduct: type: string description: Current product name if sustitution was made. CanCancelReport: type: string description: Determines if the report can be canceled based on its current status. StatusId: type: integer description: > The primary status Id for the report. * `1` - Created * `2` - InProcess * `3` - Pending * `4` - Closed * `5` - Completed SubStatusId: type: integer description: > The SubStatus Id for the report. * `5` - UnderReview * `6` - ProcessStarted * `8` - NeedToID * `9` - Duplicate * `10` - CanceledByClient * `11` - PoorImages * `12` - NoID * `14` - ReportTypeChange * `15` - NoImages * `16` - Other * `18` - CardRejected * `19` - Sent * `20` - Sent * `21` - CustomerResponse * `24` - WrongHouse * `26` - ReadyToSend * `27` - CreditCardFailure * `28` - UnSketchable * `29` - AddressVerified * `30` - NotSent * `31` - Processing * `32` - MeasurementData * `38` - UnsupportedStructure * `40` - Submitted * `43` - ReadyToCapturePayment * `49` - PendingClosure * `50` - ClosureDenied * `55` - Cancelled DisplayStatus: type: string description: The display status string description. DateOfLoss: type: string description: Date of loss for the report claim (mm/dd/yyyy). Empty if not available. DeliveryFilesAvailable: type: array description: List of files that are available for delivery (e.g., image files used in the report, diagrams, etc.). items: $ref: '#/components/schemas/DeliveryFilesAvailable' AdditionalRecipients: type: string description: List of additional emails to include for delivery. TotalCost: type: number description: Total cost of the report. PaymentType: type: string description: List of additional emails to include for delivery. MeasurementByStructure: type: array description: Gets the list of measurements by structure. items: $ref: '#/components/schemas/StructureMeasurement' PrimaryProductDisplayName: type: string description: The display name of the primary product. AddOnProducts: type: array description: Details of the AddOn products. items: $ref: '#/components/schemas/AddOnProductDetailsModel' TypeOfStructure: type: integer description: > Available AddOnProductIds. * `0` - NotSet * `1` - Residential * `2` - Commercial * `3` - MultiFamily ProductSubstitution: type: object properties: From: type: object $ref: '#/components/schemas/ProductSubstitutionDetails' description: Product details for the initial product of the report. To: type: object $ref: '#/components/schemas/ProductSubstitutionDetails' description: Product details for the new product of the report. TotalMeasurements: type: object $ref: '#/components/schemas/StructureMeasurement' description: Total combined measurements for all structures. JobName: type: string CanEditReportInformation: type: boolean SuggestedWasteFactorAvailable: type: boolean ProductSubstitutionDetails: type: object properties: PrimaryProductId: type: integer description: Primary product Id. PrimaryProductDisplayName: type: string description: Display name of the primary product Id. TypeOfStructure: type: integer description: > Available AddOnProductIds. * `0` - NotSet * `1` - Residential * `2` - Commercial * `3` - MultiFamily AddOnProductDetailsModel: type: object properties: DisplayName: type: string description: The display name of the product. ProductId: type: integer description: > Available AddOnProductIds. * `19` - EagleViewXML * `33` - Walls * `54` - WallsLite StructureMeasurement: type: object properties: BuildingName: type: string description: Name of the building. Area: type: string description: Total area of the building. PrimaryPitch: type: string description: Primary pitch of the building. LengthRidge: type: string description: Total length of the building's ridges. LengthValley: type: string description: Total length of the buliding's valleys. LengthEave: type: string description: Total length of the building's eaves. LengthRake: type: string description: Total length of the building's rakes. LengthHip: type: string description: Total length of the building's hips. DeliveryFilesAvailable: type: object properties: DeliveryFileTypeId: type: integer description: > Available DeliveryFileTypes. * `2` - Invoice * `3` - PremiumReport * `4` - NeighborhoodReport * `5` - ExclusiveCover * `6` - TopImage * `7` - ParkingLotReport * `8` - SunSiteReport * `12` - PropertyOwner * `13` - PreStandard * `17` - ImagesOnly * `18` - EagleViewXML * `22` - NorthImage * `23` - SouthImage * `24` - EastImage * `25` - WestImage * `26` - AutoCAD * `27` - AppliCAD * `28` - LengthDiagram * `29` - NotesDiagram * `31` - PitchDiagram * `32` - AreaDiagram * `42` - DetailedLengthDiagram * `43` - NotesNoLabelDiagram * `51` - ClaimsReadyReport * `52` - AA3DReport * `53` - AA2DReport * `71` - EC3DReport * `73` - EC2DReport * `75` - ECPremiumReport * `76` - PremiumAWReport * `77` - WallsAddOn * `79` - WallAreaDiagram * `80` - AlternateWallView * `81` - MissingWallDiagram * `82` - NorthElevationDiagram * `83` - SouthElevationDiagram * `84` - EastElevationDiagram * `85` - WestElevationDiagram * `86` - RoofPenetrationDiagram * `87` - WallsOnlyReport * `88` - WallsOnlyMetadata * `89` - RiskManagementMetadata * `90` - LivingAreaDiagram * `91` - WallsNoLabelsDiagram * `92` - AreaViewImage * `93` - PitchRoofPenetrationDiagram * `94` - BldgFootprintDiagram * `95` - SiteMapDiagram * `96` - OutbuildingDiagram * `98` - RoofGeometryReport * `105` - QuickSquaresReport * `107` - EVMeasurementJSON * `109` - GutterReport * `111` - DiagramReport * `116` - QuickSquaresECReport * `118` - EC2DPrePitchReport * `121` - WallsLiteReport * `132` - SunSiteCompleteReport EffectiveDate: type: string description: Date and time which the file was generated. ReportImage: type: object properties: sequenceNumber: type: integer imageId: type: integer ProductId: type: integer description: > Available ProductIds. * `1` - PremiumResidential * `2` - PremiumCommercial * `3` - StandardResidential * `9` - Images * `10` - ParkingLot * `11` - EagleView Inform Essentials+ * `12` - EagleView Inform Essentials+ for Commercial * `13` - ClaimsReadyResidential * `14` - ClaimsReadyCommercial * `15` - AA2D * `16` - AA3DResidential * `17` - SketchOnly * `18` - AA3DCommercial * `20` - InstallerReport * `25` - EC3DResidential * `26` - EC3DCommercial * `27` - EC2DResidential * `28` - EC2DCommercial * `29` - PremiumAWResidential * `30` - PremiumAWCommercial * `31` - ECPremiumResidential * `32` - ECPremiumCommercial * `34` - PremiumResidentialWallonly * `35` - PremiumCommercialWallonly * `37` - RiskManagementResidential * `38` - RiskManagementCommercial * `39` - Estimate * `40` - RoofGeometryResidential * `41` - CarrierEstimate * `44` - QuickSquares * `46` - GutterResidential * `47` - GutterCommercial * `48` - DiagramResidential * `49` - DiagramCommercial * `51` - WallsLite * `55` - QuickSquares-Multi-Family * `62` - EagleView Inform Advanced * `63` - EagleView Inform Advanced for Commercial enum: [ 1,2,3,9,10,11,12,13,14,15,16,17,18,20,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,44,46,47,48,49,51,55,62,63 ] ProductDeliveryId: type: integer description: > Available DeliveryProductIds. * `4` - ExpressDelivery * `7` - ThreeHourDelivery * `8` - RegularDelivery * `45` - QuickDelivery enum: [ 4,7,8,45 ] AddOnProductIds: type: array items: type: integer description: > Available AddOnProductIds * `19` - EagleViewXML * `33` - Walls * `54` - WallsLite enum: [ 19, 33, 54 ] AdditionalEmails: type: string description: Comma separated list of emails to be added as delivery recipients. ClaimNumber: type: string description: Custom claim number field. maxLength: 100 ClaimInfo: type: string description: Custom claim information field. maxLength: 100 PONumber: type: string description: Custom purchase order number field. maxLength: 45 DateOfLoss: type: string description: Date of loss. format: date-time CatId: type: string description: Custom catastrophe Id field. maxLength: 50 getEagleViewOrderUpgradeProducts_resp: type: object properties: AvailableProducts: type: array description: Collection of GetAvailableProductsResponseModel. items: $ref: '#/components/schemas/AvailableProduct' CurrentOrder: $ref: '#/components/schemas/CurrentOrder' description: Details of the current order. AvailableProduct: type: object properties: productID: type: integer description: > Available PrimaryProductIds * `1` - PremiumResidential * `2` - PremiumCommercial * `3` - StandardResidential * `9` - Images * `10` - ParkingLot * `11` - EagleView Inform Essentials+ * `12` - EagleView Inform Essentials+ for Commercial * `13` - ClaimsReadyResidential * `14` - ClaimsReadyCommercial * `15` - AA2D * `16` - AA3DResidential * `17` - SketchOnly * `18` - AA3DCommercial * `20` - InstallerReport * `25` - EC3DResidential * `26` - EC3DCommercial * `27` - EC2DResidential * `28` - EC2DCommercial * `29` - PremiumAWResidential * `30` - PremiumAWCommercial * `31` - ECPremiumResidential * `32` - ECPremiumCommercial * `34` - PremiumResidentialWallonly * `35` - PremiumCommercialWallonly * `37` - RiskManagementResidential * `38` - RiskManagementCommercial * `39` - Estimate * `40` - RoofGeometryResidential * `41` - CarrierEstimate * `44` - QuickSquares * `46` - GutterResidential * `47` - GutterCommercial * `48` - DiagramResidential * `49` - DiagramCommercial * `51` - WallsLite * `55` - QuickSquares-Multi-Family * `62` - EagleView Inform Advanced * `63` - EagleView Inform Advanced for Commercial enum: [ 1,2,3,9,10,11,12,13,14,15,16,17,18,20,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,44,46,47,48,49,51,55,62,63 ] name: type: string description: Product name. description: type: string description: Product description. productGroup: type: string description: Product group name. isTemporarilyUnavailable: type: boolean description: Indicates if the product is temporarily unavailable. priceMin: type: number format: double description: Value of the minimum price. priceMax: type: number format: double description: Value of the maximum price. deliveryProducts: type: array description: List of delivery products. items: $ref: '#/components/schemas/DeliveryProduct' addOnProducts: type: array description: List of AddOn products. items: $ref: '#/components/schemas/DeliveryProduct' measurementInstructionTypes: type: array items: type: integer TypeOfStructure: type: integer description: > Available StructureTypes. * `0` - NotSet * `1` - Residential * `2` - Commercial * `3` - MultiFamily enum: [ 0,1,2,3 ] IsRoofProduct: type: boolean description: Indicates if this is a roof product. SortOrder: type: integer description: Order to display products. AllowsUserSubmittedPhotos: type: boolean description: Determines if this report PDF can display user submitted photos. DetailedDescription: type: string DeliveryProduct: type: object properties: productID: type: integer description: Product Id. name: type: string description: Product name. description: type: string description: Product description. isTemporarilyUnavailable: type: boolean description: Indicates if the product is temporarily unavailable. priceMin: type: number format: double description: Value of the minimum price. priceMax: type: number format: double description: Value of the maximum price. deliveryProductIds: type: array items: type: integer DetailedDescription: type: string AddOnProduct: type: object properties: productID: type: integer description: Product Id. name: type: string description: Product name. description: type: string description: Product description. isTemporarilyUnavailable: type: boolean description: Indicates if the product is temporarily unavailable. priceMin: type: number format: double description: Value of the minimum price. priceMax: type: number format: double description: Value of the maximum price. deliveryProductIds: type: array items: type: integer DetailedDescription: type: string CurrentOrder: type: object properties: ReportId: type: integer description: Report Id. MeasurementRequestTypeId: type: integer description: > Available MeasurementRequestTypes * `1` - PrimaryPlusDetachedGarage * `2` - PrimaryStructureOnly * `3` - AllStructuresOnParcel * `4` - CommercialComplex * `5` - Other enum: [ 1, 2, 3, 4, 5 ] ProductId: type: integer description: > Available PrimaryProductIds * `1` - PremiumResidential * `2` - PremiumCommercial * `3` - StandardResidential * `9` - Images * `10` - ParkingLot * `11` - EagleView Inform Essentials+ * `12` - EagleView Inform Essentials+ for Commercial * `13` - ClaimsReadyResidential * `14` - ClaimsReadyCommercial * `15` - AA2D * `16` - AA3DResidential * `17` - SketchOnly * `18` - AA3DCommercial * `20` - InstallerReport * `25` - EC3DResidential * `26` - EC3DCommercial * `27` - EC2DResidential * `28` - EC2DCommercial * `29` - PremiumAWResidential * `30` - PremiumAWCommercial * `31` - ECPremiumResidential * `32` - ECPremiumCommercial * `34` - PremiumResidentialWallonly * `35` - PremiumCommercialWallonly * `37` - RiskManagementResidential * `38` - RiskManagementCommercial * `39` - Estimate * `40` - RoofGeometryResidential * `41` - CarrierEstimate * `44` - QuickSquares * `46` - GutterResidential * `47` - GutterCommercial * `48` - DiagramResidential * `49` - DiagramCommercial * `51` - WallsLite * `55` - QuickSquares-Multi-Family * `62` - EagleView Inform Advanced * `63` - EagleView Inform Advanced for Commercial enum: [ 1,2,3,9,10,11,12,13,14,15,16,17,18,20,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,44,46,47,48,49,51,55,62,63 ] ProductDeliveryId: type: integer description: > Available PrimaryProductIds * `4` - ExpressDelivery * `7` - ThreeHourDelivery * `8` - RegularDelivery * `45` - QuickDelivery enum: [ 4,7,8,45 ] AddOnProductIds: type: array items: type: integer description: > Available AddOnProductIds * `19` - EagleViewXML * `33` - Walls * `54` - WallsLite enum: [ 19, 33, 54 ] AdditionalEmails: type: string description: Email addresses currently CC'ed for this report. ClaimNumber: type: string description: Claim number. ClaimInfo: type: string description: Claim information. PONumber: type: string description: PO number. DateOfLoss: type: string description: Date of loss. format: date-time CatId: type: string description: Cat Id. JobName: type: string EagleViewOrderProducts: type: integer description: > Available ProductIds. * `1` - PremiumResidential * `2` - PremiumCommercial * `3` - StandardResidential * `9` - Images * `10` - ParkingLot * `11` - EagleView Inform Essentials+ * `12` - EagleView Inform Essentials+ for Commercial * `13` - ClaimsReadyResidential * `14` - ClaimsReadyCommercial * `15` - AA2D * `16` - AA3DResidential * `17` - SketchOnly * `18` - AA3DCommercial * `20` - InstallerReport * `25` - EC3DResidential * `26` - EC3DCommercial * `27` - EC2DResidential * `28` - EC2DCommercial * `29` - PremiumAWResidential * `30` - PremiumAWCommercial * `31` - ECPremiumResidential * `32` - ECPremiumCommercial * `34` - PremiumResidentialWallonly * `35` - PremiumCommercialWallonly * `37` - RiskManagementResidential * `38` - RiskManagementCommercial * `39` - Estimate * `40` - RoofGeometryResidential * `41` - CarrierEstimate * `44` - QuickSquares * `46` - GutterResidential * `47` - GutterCommercial * `48` - DiagramResidential * `49` - DiagramCommercial * `51` - WallsLite * `55` - QuickSquares-Multi-Family * `62` - EagleView Inform Advanced * `63` - EagleView Inform Advanced for Commercial enum: [ 1,2,3,9,10,11,12,13,14,15,16,17,18,20,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,44,46,47,48,49,51,55,62,63 ] EagleViewOrderStatusId: type: string description: > The primary status Id for the report. * `1` - Created * `2` - InProcess * `3` - Pending * `4` - Closed * `5` - Completed enum: [ '1','2','3','4','5' ] EagleViewOrderSubStatusId: type: string description: > The SubStatus Id for the report. * `5` - UnderReview * `6` - ProcessStarted * `8` - NeedToID * `9` - Duplicate * `10` - CanceledByClient * `11` - PoorImages * `12` - NoID * `14` - ReportTypeChange * `15` - NoImages * `16` - Other * `18` - CardRejected * `19` - Sent * `20` - Sent * `21` - CustomerResponse * `24` - WrongHouse * `26` - ReadyToSend * `27` - CreditCardFailure * `28` - UnSketchable * `29` - AddressVerified * `30` - NotSent * `31` - Processing * `32` - MeasurementData * `38` - UnsupportedStructure * `40` - Submitted * `43` - ReadyToCapturePayment * `49` - PendingClosure * `50` - ClosureDenied * `55` - Cancelled enum: [ '5','6','8','9','10','11','12','13','14','15','16','17','18','19','20','21','24','26','27','28','29','31','32','38','40','43','49','50','55' ] GetEagleViewOrderReports_req: type: object properties: productsToFiterBy: type: array items: $ref: '#/components/schemas/EagleViewOrderProducts' statusesToFilterBy: type: array items: $ref: '#/components/schemas/EagleViewOrderStatusId' subStatusToFilterBy: $ref: '#/components/schemas/EagleViewOrderSubStatusId' fieldsToFilterBy: type: array items: type: string description: > The SubStatus Id for the report. * `ID` - Unique identifier generated by EagleView. * `ClaimNumber` - Customer provided claim number. * `CatID` - Customer provided catastrophe ID. * `Address` - Street address. enum: [ 'ID','ClaimNumber','CatID','Address' ] textToFilterBy: type: string description: > Text to apply in the field filter. sortBy: type: string description: > Available SortByFields. * `DatePlaced` - Date the report was placed. * `ID` - Unique identifier generated by EagleView. Used by default. enum: [ 'DatePlaced','ID' ] sortAscending: type: boolean description: > Indicates if the sort can be ascending or descending. referenceId: type: string emailCC: type: string fromDate: type: string format: date toDate: type: string format: date GetEagleViewOrderReports_resp: type: object properties: ReportList: type: array items: $ref: '#/components/schemas/EagleViewOrderReports_report' TotalOfReports: type: integer description: Total number of reports. EagleViewOrderReports_report: type: object properties: Id: type: integer Street1: type: string Street2: type: string City: type: string State: type: string Zip: type: string Country: type: string Latitude: type: number Longitude: type: number ClaimNumber: type: string ClaimInfo: type: string BatchId: type: string CatId: type: string DatePlaced: type: string format: date-time DateCompleted: type: string format: date-time ReportProducts: $ref: '#/components/schemas/EagleViewOrderReports_report_ReportProducts' ReportStatus: $ref: '#/components/schemas/EagleViewOrderReports_report_ReportStatus' ReportDownloadLink: type: string EligibleForUpgrade: type: boolean numberOfImages: type: number addOns: type: array items: $ref: '#/components/schemas/EagleViewOrderReports_report_addOns' AllowsUserSubmittedPhotos: type: boolean CanCancelReport: type: boolean DateOfLoss: type: string format: date-time DeliveryFilesAvailable: type: array description: List of files that are available for delivery (e.g., image files used in the report, diagrams, etc.). items: $ref: '#/components/schemas/DeliveryFilesAvailable' TopDownIsAvailable: type: boolean BuildingId: type: string PrimaryProductDisplayName: type: string AddOnProducts: type: array description: List of AddOn products. items: $ref: '#/components/schemas/EagleViewOrderReports_report_AddOnProducts' TypeOfStructure: type: integer JobName: type: string EmailCC: type: string ReferenceId: type: string privateOrGlobal: type: string description: the value is private or global EagleViewOrderReports_report_ReportProducts: type: object properties: ProductPrimaryId: type: integer description: Primary product Id. ProductPrimary: type: string description: Primary product name. ProductDeliveryId: type: integer description: Delivery product Id. ProductDelivery: type: string description: Delivery product name. EagleViewOrderReports_report_ReportStatus: type: object properties: StatusId: type: integer description: Current status Id of the report. Status: type: string description: Current status name of the report. SubStatusId: type: integer description: Current sub-status Id of the report. SubStatus: type: string description: Current sub-status name of the report. DisplayStatus: type: string description: Current display status of the report. EagleViewOrderReports_report_addOns: type: object properties: ProductID: type: integer description: AddOn Product Id. Name: type: string description: AddOn Product name. Description: type: string description: Product description. EagleViewOrderReports_report_AddOnProducts: type: object properties: ProductId: type: integer DisplayName: type: string UploadOrderRelatedDocument_req: type: object properties: orderId: type: string description: 'The ATG order id, saved order id or quote order id.' relatedDocuments: type: string format: binary description: | The Upload Document File Accepted File Types should be: *.jpg,*.pdf,*.xls(x) File size should between 0KB~5MB File count should between 0-10 DeleteOrderRelatedDocument_req: type: object properties: orderId: type: string description: 'The ATG order id, saved order id or quote order id.' fileNames: description: 'The file name(s) to delete.' type: array items: type: string updateNewUserTourReq: type: object properties: type: type: string firstRecordedTour: type: string format: timestamp lastRecordedTour: type: string format: timestamp optOut: type: boolean optOutOfAllTours: type: boolean UpdateUserTour: type: object properties: type: type: string firstRecordedTour: type: string format: timestamp lastRecordedTour: type: string format: timestamp optOut: type: boolean optOutOfAllTours: type: boolean getNewUserTourResp: type: object properties: homePageTour: $ref: '#/components/schemas/UserTour' templatesLandingTour: $ref: '#/components/schemas/UserTour' templatesDetailTour: $ref: '#/components/schemas/UserTour' orderHistoryLandingTour: $ref: '#/components/schemas/UserTour' orderHistoryDetailTour: $ref: '#/components/schemas/UserTour' shoppingCartLandingTour: $ref: '#/components/schemas/UserTour' checkoutTour: $ref: '#/components/schemas/UserTour' optOutOfAllTours: type: boolean UserTour: type: object properties: firstRecordedTour: type: string format: timestamp lastRecordedTour: type: string format: timestamp nextScheduledTour: type: string format: timestamp optOut: type: boolean deleteMobileDeviceTokenReq: type: object properties: deviceTokens: type: array items: type: string updateMobileDeviceReq: type: object properties: deviceToken: $ref: '#/components/schemas/deviceTokenObj' deviceTokenObj: type: object properties: accountId: type: string tokens: type: array items: type: string email: type: string saveDeliverySettingReq: type: object properties: dtNotificationSettings: type: object properties: received: type: boolean scheduled: type: boolean ordered: type: boolean enRoute: type: boolean arrived: type: boolean disableStatus: type: boolean changeTime: type: string accounts: type: array items: type: string quoteNotificationSettings: type: object properties: readyForReview: type: boolean LocationObj: type: object properties: address: type: string state: type: string city: type: string postcode: type: string ReportObj: type: object properties: reportId: type: string location: $ref: '#/components/schemas/LocationObj' rootArea: type: string lengthEave: type: string lengthRake: type: string lengthRidge: type: string lengthHip: type: string reportDownloadLink: type: string Template: type: object properties: templateId: type: string templateName: type: string Summary: type: object properties: colorSelection: $ref: '#/components/schemas/ColorSelection' recommendQuantity: type: number format: long calculatedQuantity: type: string wasteFactor: type: string dividend: type: string divisor: type: string price: type: number format: double description: unit price uom: type: string ColorSelection: type: object properties: itemNumber: type: string displayName: type: string description: color display name image: type: string description: color image url price: type: number format: double uom: type: string EVItemDetail_variationOption: type: object properties: type: type: string value: type: string EVOrderItemDetail: type: object properties: id: type: string itemNumber: type: string productId: type: string itemName: type: string itemImage: type: string description: sku image url mainCategory: type: string category: $ref: '#/components/schemas/EVItemCategory' wasteFactor: type: string description: item level of waste factor. quantity: type: number format: long manualQuantity: type: boolean support3DMeasurement: type: boolean uom: type: string price: type: number format: double variationOptions: type: array items: $ref: '#/components/schemas/EVItemDetail_variationOption' EVOrderSummaryObj: type: object properties: subTotal: type: string total: type: string EVOrder: type: object properties: evOrderId: type: string userId: type: string completed: type: boolean description: if smart order has been convert to ATG order and also submit to Mincorn, then it be think as completed. template: $ref: '#/components/schemas/Template' report: $ref: '#/components/schemas/ReportObj' baseWasteFactor: type: string description: order level of waste factor. selectedJobNumber: type: string summary: $ref: '#/components/schemas/EVOrderSummaryObj' evItems: type: array items: $ref: '#/components/schemas/EVOrderItemDetail' evOrderListResult: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' evOrders: type: array items: $ref: '#/components/schemas/EVOrder' evOrderListRep: type: object properties: messages: type: string success: type: boolean result: $ref: '#/components/schemas/evOrderListResult' convertEVOrderToAtgOrder_obj: type: object properties: atgOrderId: type: string addEVOrderItem_req: type: object properties: evOrderId: type: string itemNumber: type: string addEVOrderItem_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/EVOrderItemDetail' deleteEVItem_req: type: object properties: evOrderId: type: string itemId: type: string deleteEVItem_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' editEVOrderItem_req: type: object properties: evOrderId: type: string id: type: string description: EV item id itemNumber: type: string wasteFactor: type: string quantity: type: number format: long manualQuantity: type: boolean editEVOrderItem_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/EVOrderItemDetail' editEVOrder_req: type: object required: - evOrderId properties: evOrderId: type: string description: any existed EV orderId templateId: type: string description: gl396520213 / any existed template baseWasteFactor: type: string description: 0-100 / two-decimal is available selectedJobNumber: type: string description: job number convertEVOrderToAtgOrder_req: type: object properties: evOrderId: type: string convertEVOrderToAtgOrder_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/convertEVOrderToAtgOrder_obj' deleteEVOrder_req: type: object properties: evOrderId: type: string editEVOrder_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' getEVOrder_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/EVOrder' createEVOrder_req: type: object required: - reportId properties: reportId: type: string description: 49216847 / can get from EV services createEVOrder_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' evOrderId: type: string deleteEVOrder_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' saveAll_ev_item: type: object required: - productId - itemNumber properties: productId: type: string itemNumber: type: string wasteFactor: type: string quantity: type: number format: long manualQuantity: type: boolean saveAll_req: type: object required: - evOrderId - items properties: evOrderId: type: string description: any exist EV orderId baseWasteFactor: type: string selectedJobNumber: type: string items: type: array items: $ref: '#/components/schemas/saveAll_ev_item' measurementCalculation_req: type: object properties: evOrderId: type: string description: any exist EV orderId evItemId: type: string description: get from the response of getEVOrder named "id" wasteFactor: type: string description: 0-100 / two-decimal is available location: type: string description: It's required for category "Starter Shingles", only can be "Eaves", "Rakes" and "both". inputOverlap: type: string description: The category "Underlayment" need overlap. inputSubtractRidge: type: string description: customer must choose subtracting ridges or using entire length before VENTILATION 3D+ calculation. measurementCalculation_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/Summary' getEVOrderCategory_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: type: array items: $ref: '#/components/schemas/EVCategory' getTemplateCategory_res: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: type: array items: $ref: '#/components/schemas/TemplateCategory' BranchItemQty_BranchInfo: type: object properties: branchId: type: string company: type: string division: type: string region: type: string market: type: string BranchItemQty: type: object properties: itemNumber: type: string uom: type: string totalShipQty30Days: type: string availableQty: type: string avgQty30Days: type: string avgQty7Days: type: string BranchItemQtyResult: type: object properties: items: $ref: '#/components/schemas/BranchItemQty' branchInfo: $ref: '#/components/schemas/BranchItemQty_BranchInfo' queryBranchItemQtyRep: type: object properties: messages: type: string success: type: boolean result: $ref: '#/components/schemas/BranchItemQtyResult' UserNotificationModification_req: type: object properties: userNotifications: type: array items: $ref: '#/components/schemas/UserNotificationModification' UserNotificationModification: type: object properties: userNotificationId: type: string readStatus: type: boolean description: Read status (has customer read notification) true or false. UserNotificationItem: type: object properties: id: type: string accountId: type: string orderId: type: string description: Order number. accountToken: type: string description: Account Token for order. status: type: string description: (Received, Scheduled, Delivered, EnRoute, Arrived). read: type: boolean description: Read status (has customer read notification) true or false. title: type: string subtitle: type: string timestamp: type: number format: long description: Timestamp notification was created. getNotifications_pagination: type: object properties: pagination: $ref: '#/components/schemas/BCPaginationDataObj' userNotifications: type: array items: $ref: '#/components/schemas/UserNotificationItem' getNotifications_rep: type: object properties: success: type: boolean messages: type: string result: $ref: '#/components/schemas/getNotifications_pagination' deleteNotifications_req: type: object properties: deleteNotificationIds: type: string accountOSRAndBMInfo_emailInfoObj: type: object properties: fullName: type: string emailAddess: type: string phoneNumber: type: string accountOSRAndBMInfo: type: object properties: OSRList: type: array items: $ref: '#/components/schemas/accountOSRAndBMInfo_emailInfoObj' BMList: type: array items: $ref: '#/components/schemas/accountOSRAndBMInfo_emailInfoObj' getAccountOSRAndBMInfo_rep: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/accountOSRAndBMInfo' getAssignedEnterpriseAccounts_rep: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: type: array items: $ref: '#/components/schemas/enterpriseAccount' enterpriseAccount: type: object properties: enterpriseAccountLegacyId: type: string enterpriseAccountName: type: string childAccounts: type: array items: type: object properties: accountLegacyId: type: string accountName: type: string balanceInfo: type: object properties: goal: type: number format: double balance: type: number format: double pending: type: number format: double redeemed: type: number format: double earned: type: number format: double rewardInfo: type: object properties: campaignName: type: string currentPurchases: type: string dollars: type: number format: double goalInfo: type: object properties: goalId: type: integer goal: type: number format: double current: type: number format: double percentToGoal: type: number format: double hasGoal: type: boolean isDefault: type: boolean enrollmentId: type: integer userId: type: string loyalUserResult: type: object properties: accountId: type: string firstName: type: string lastName: type: string email: type: string enrollmentDate: type: string format: date isEnrolled: type: boolean isUserActive: type: boolean division: type: string branch: type: string region: type: string status: type: object properties: statusCode: type: string statusMessage: type: string rewards: type: array items: $ref: '#/components/schemas/rewardInfo' balance: $ref: '#/components/schemas/balanceInfo' goals: type: array items: $ref: '#/components/schemas/goalInfo' loyalreward_rep: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/loyalUserResult' orderInvoice: type: object properties: apiSiteId: type: string accountId: type: string accountName: type: string orderNumber: type: string orderPlacedDate: type: string format: date invoiceDate: type: string format: date jobName: type: string jobNumber: type: string purchaseOrderNumber: type: string sales: type: number format: double otherCharges: type: number format: double salesPlusOtherCharges: type: number format: double orderInvoiceRep: type: object properties: invoices: type: array items: $ref: '#/components/schemas/orderInvoice' pagination: $ref: '#/components/schemas/BCPaginationDataObj' invoiceHistoryRes: type: object properties: invoices: type: array items: $ref: '#/components/schemas/orderInvoice' pagination: $ref: '#/components/schemas/BCPaginationDataObj' updateFavorites_req: type: object properties: account: type: string action: type: string description: "action can be 'createItem', 'updateItem' and 'deleteItem'. It's similar to updateTemplate api" categorySort: type: boolean items: type: array items: $ref: '#/components/schemas/updateFavorites_req_item' updateFavorites_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean updateFavorites_req_item: type: object properties: itemId: type: string itemNumber: type: string unitOfMeasure: type: string nickName: type: string quantity: type: integer matchColor: type: string matchMFG: type: string getFavoritesCategories_rep: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/favoritesCategories' favoritesCategories: type: array items: type: object properties: category: type: string description: category name subCategories: type: array items: type: object properties: categoryId: type: string getFavorites_rep: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/favoritesObj' getAccountFavorites_rep: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' favoritesItemsCount: type: integer favoritesItemNumbers: type: array items: type: string favoritesObj: type: object properties: accountName: type: string lastModifiedUser: $ref: '#/components/schemas/profileObj' createdByUser: $ref: '#/components/schemas/profileObj' lastModifiedDate: type: string createdDate: type: string accountLegacyId: type: string isAccountClosed: type: boolean categorySort: type: boolean favoritesItemsCount: type: integer favoritesItems: type: array items: $ref: '#/components/schemas/favoritesItemObj' favoritesItemObj: type: object properties: favoritesItemId: type: string itemNumber: type: string quantity: type: integer nickName: type: string productImageUrl: type: string productOnErrorImageUrl: type: string productOrItemDescription: type: string productOrItemNumber: type: string internalProductName: type: string unitPrice: type: number format: double unitOfMeasure: type: string vendorColorId: type: string available: type: boolean imageUrl: $ref: '#/components/schemas/imageUrlObj' pdpUrl: type: string multiVariationData: $ref: '#/components/schemas/multiVariationDataObj' mainCategory: type: string category: $ref: '#/components/schemas/favoritesItemCategory' favoritesItemCategory: type: object properties: categoryName: type: string categoryId: type: string updateRebateForm_req: type: object properties: rebateInfoId: type: string rebateInfo: type: object properties: companyName: type: string contactName: type: string phoneNumber: type: string email: type: string rebateAddress: type: object properties: address: type: string city: type: string state: type: string zip: type: string rebateCustomInfo: type: object rebateMailingAddress: type: object updateRebateForm_rep: type: object properties: messages: $ref: '#/components/schemas/messagesObj' messageCode: type: integer success: type: boolean getSubmittedRebateForm_rep: type: object properties: success: type: boolean messages: $ref: '#/components/schemas/messagesObj' result: $ref: '#/components/schemas/userRebateInfo' userRebateInfo: type: object properties: rebateInfoId: type: string subscriptionDate: type: string rebateForm: $ref: '#/components/schemas/RebateFromObj' creditpurchase_req: type: object properties: payWithCredit: type: boolean 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 GAFQuickMeasureCallback_req: type: object properties: SubscriberOrderNumber: type: string GAFOrderNumber: type: string SubscriberCustomField1: type: string Subscriber: type: string SubscriberReference: type: string Vendor: type: string VendorReference: type: string RoofMeasurement: $ref: '#/components/schemas/GAFQuickMeasureCallback_req_roofMeasurement' GAFQuickMeasureCallback_req_roofMeasurement: type: object properties: Area: type: number Eaves: type: number Hips: type: number Rakes: type: number Ridges: type: number Valleys: type: number Facets: type: number Pitch: type: string Assets: $ref: '#/components/schemas/GAFQuickMeasureCallback_req_roofMeasurement_Assets' Bends: type: number Flash: type: number Step: type: number DripEdge: type: number LeakBarrier: type: number RidgeCap: type: number Starter: type: number Parapets: type: number CobraExhaustVentFeet: type: string CobraIntakeVentFeet: type: string DeckArmorRolls: type: string HoleArea: type: string HoleCount: type: string HolePerimeter: type: string LibertyBaseRolls: type: string LibertyCapRolls: type: string MasterFlowDomeVents: type: string MasterFlowLouverVents: type: string ProStartBundles: type: string QuickStartRolls: type: string SealARidgeBundles: type: string ShingleMateRolls: type: string StormGuardRolls: type: string SuggestedWaste: type: string TimberCrestBoxes: type: string TimberlineBundles: type: string TimberTexBundles: type: string VersaShieldRolls: type: string WeatherBlockerBundles: type: string WeatherWatchRolls: type: string ZRidgeBundles: type: string PitchToArea: type: string Buildings: type: string AdditionalProduct: $ref: '#/components/schemas/GAFQuickMeasureCallback_req_additionalProduct' TrackingId: type: string ServerResponses: type: array items: $ref: '#/components/schemas/GAFPlaceReportOrder_req_serverRes' ProblemCode: type: string GAFPlaceReportOrder_req_serverRes: type: object properties: Server: type: string ServerReference: type: string Timestamp: type: string Response: $ref: '#/components/schemas/GAFPlaceReportOrder_req_serverRes_res' GAFPlaceReportOrder_req_serverRes_res: type: object properties: TaskId: type: string Done: type: boolean Obstructed: type: boolean Area: type: string Facets: type: string Pitch: type: string Eaves: type: string Hips: type: string Rakes: type: string Ridges: type: string Bends: type: string Flash: type: string Step: type: string DripEdge: type: string LeakBarrier: type: string RidgeCap: type: string Starter: type: string Parapets: type: string Valleys: type: number Problem: type: string ModelUrl: type: string CoverUrl: type: string DiagramUrl: type: string ReportUrl: type: string AcculynxUrl: type: string HomeownerUrl: type: string VerticalImageUrl: type: string NorthImageUrl: type: string EastImageUrl: type: string SouthImageUrl: type: string WestImageUrl: type: string DxfUrl: type: string CobraExhaustVentFeet: type: number CobraIntakeVentFeet: type: number DeckArmorRolls: type: number HoleArea: type: number HoleCount: type: number HolePerimeter: type: number LibertyBaseRolls: type: number LibertyCapRolls: type: number MasterFlowDomeVents: type: number MasterFlowLouverVents: type: number ProStartBundles: type: number QuickStartRolls: type: number SealARidgeBundles: type: number ShingleMateRolls: type: number StormGuardRolls: type: number SuggestedWaste: type: number TimberCrestBoxes: type: number TimberlineBundles: type: number TimberTexBundles: type: number VersaShieldRolls: type: number WeatherBlockerBundles: type: number WeatherWatchRolls: type: number ZRidgeBundles: type: number PitchToArea: type: string Buildings: type: string GAFQuickMeasureCallback_req_additionalProduct: type: object properties: ProductCode: type: string Report: type: string Assets: type: array items: $ref: '#/components/schemas/GAFPlaceReportOrder_req_product' GAFQuickMeasureCallback_req_additionalProduct_assets: type: object properties: ServiceCode: type: string Report: type: string GAFQuickMeasureCallback_req_roofMeasurement_Assets: type: object properties: Report: type: string Cover: type: string Diagram: type: string Acculynx: type: string HomeownerReport: type: string Report3D: type: string DxfUrl: type: string VerticalImage: type: string NorthImage: type: string EastImage: type: string SouthImage: type: string WestImage: type: string GAFPlaceReportOrder_req: type: object properties: accountNumber: type: string subscriberName: type: string subscriberOrderNumber: type: string subscriberCustomField1: type: string emailAddress: type: string productCode: type: string address1: type: string address2: type: string city: type: string stateOrProvince: type: string postalCode: type: string fipscode: type: string county: type: string country: type: string latitude: type: string longitude: type: string fullAddress: type: string recipientEmailAddresses: type: string instructions: type: string isServiceOpen: type: boolean susbcriberId: type: number ignoreCache: type: boolean trackingId: type: string checkForDuplicate: type: boolean products: type: array items: $ref: '#/components/schemas/GAFPlaceReportOrder_req_product' GAFPlaceReportOrder_req_product: type: object properties: productCode: type: string additionalInformation: type: array items: $ref: '#/components/schemas/GAFPlaceReportOrder_req_product_additionalInfo' GAFPlaceReportOrder_req_product_additionalInfo: type: object properties: questioncode: type: string question: type: string answer: type: string GAFPlaceReportOrder_res: type: object properties: messages: $ref: '#/components/schemas/messagesObj' success: type: boolean result: type: object GAFOrderNumber: type: string GAFQuickMeasureCallback_res: type: object properties: messages: $ref: '#/components/schemas/messagesObj' success: type: boolean result: type: object GAFGetStatus_res: type: object properties: messages: $ref: '#/components/schemas/messagesObj' success: type: boolean result: $ref: '#/components/schemas/SiteStatus' SiteStatus: type: object properties: siteStatus: type: string description: "Open or Closed" siteAverageResponseTime: type: number description: current average response time for processing the reports in minutes. siteAverageResponseTimeMFCommercial: type: number securitySchemes: JSESSIONID: type: apiKey in: cookie name: JSESSIONID DYN_USER_ID: type: apiKey in: cookie name: DYN_USER_ID DYN_USER_CONFIRM: type: apiKey in: cookie name: DYN_USER_CONFIRM siteId: type: apiKey in: cookie name: siteId rememberPassword: type: apiKey in: cookie name: siteId paths: /hoverExplicitLogin: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Hover Explicit Login description: | This service can do Hover explicit login for user requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/hoverExplicitLogin_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/hoverExplicitLogin_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getCurrentUserInfo: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get current user details description: | This service returns current user information. `dtAccount` is the deliveryTrackingSettings of current user with last selected account, `roleType` is one of "Master Admin","Admin",and "Site User" `isEVrefreshTokenValid` is one of "true", "false", and "null". If the value is "null", it indicates that the user does not have a private okta token. responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getCurrentUserInfoRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getUserInfo: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get current user computed permissions and custom account info description: | This service returns current user and custom account information. parameters: - in: query name: accountId required: false description: This is optional schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getUserInfoRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /saveCurrentUserInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Save current user details description: | This service can save or update current user information. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/saveCurrentUserInfoReq' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getCurrentUserPermission: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get current user permissions description: | This service will returns all the permissions of current user, the "original" presents the original permission, the "computed" presents the computed permission by one or more original permission. responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getCurrentUserPermissionRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getAddressBook: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get current user address book description: > This service will returns the addressbook of current user by given address book ids(if empty, will return all the address book) parameters: - in: query name: addressBookIds description: 'Address Book ID List, if empty, will return all the address book' schema: type: string - in: query name: pageSize description: Default page size is 20, the value only take affect when filter by searchBy and searchTerm. schema: type: string - in: query name: pageNo description: Default page no is 1, the value only take affect when filter by searchBy and searchTerm. schema: type: string - in: query name: searchBy schema: type: string description: | ##### searchBy enumeration * addressBookIds * accountNumber - in: query name: searchTerm schema: type: string description: | ##### When 'searchBy' is one of the following enumeration, the 'searchTerm' should be populated * addressBookIds * accountNumber responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getAddressBookRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /createAddressBook: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Create new address book description: | This service can create new address book for current user requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/createAddressBookReq' responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/createAddressBookRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateAddressBook: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Update exist address book description: | This service can update exist address book of current user requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateAddressBookReq' responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/updateAddressBookRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /deleteAddressBook: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Delete exist address book description: | This service can delete exist address book of current user requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deleteAddressBookReq' responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/deleteAddressBookRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /changePassword: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Change password description: | This service can change the password of current user requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/changePassword_req' responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/changePassword_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /setPassword: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Set password description: | The service can only set password for new users. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/setPassword_req' responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/setPassword_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /resetPassword: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Reset password description: | This service can reset the password for existing user requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/setPassword_req' responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/setPassword_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /forgotPassword: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Forgot password description: > This service can send forgot password email to current user by user login requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/forgotPassword_req' responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/forgotPassword_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /user: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get user list description: | This service will list all the users. The available values for op field are eq, ne, contains, not_contains, start_with, end_with, not_start_with and not_end_with. Request sample: { "orgId":"100001", "query":{ "or": [{ "op":"eq", "property": "email", "value": "abc@example.com" }, { "op":"end_with", "property": "email", "value": "@example.com" }], "and": [{ "op":"eq", "property": "email", "value": "abc@example.com" }, { "op":"end_with", "property": "email", "value": "@example.com" }], "sortBy":"lastModifiedDate", "sortType":"desc", "pageIndex":1, "pageSize":10 } } requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/user_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/user_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getUserDetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get user detail description: | This service returns user details. parameters: - in: query name: id description: User ID required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getUserDetail_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /createUser: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Create user description: | This service can create user. #### currentTemplate enumeration * "Default Role Template" * "Customized Permission" * any other string value When `currentTemplate` is "Default Role Template", will use the default role permission as user permission values When `currentTemplate` is "Customized Permission", the `permissionValues` field will be required, and will use given "permissionValues" as user permission values When `currentTemplate` is any other string value, the `permissionTemplate.templateId` field will be required, and will use the permissions of given permission template as user permission values #### status enumeration * "Active" * "InActive" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/createUser_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/createUser_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateUser: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Update user description: | This service can update exist user. #### currentTemplate enumeration * "Default Role Template" * "Customized Permission" * any other string value When `currentTemplate` is "Default Role Template", will use the default role permission as user permission values When `currentTemplate` is "Customized Permission", the `permissionValues` field will be required, and will use given "permissionValues" as user permission values When `currentTemplate` is any other string value, the `permissionTemplate.templateId` field will be required, and will use the permissions of given permission template as user permission values #### status enumeration * "Active" * "InActive" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateUser_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /organization: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get organization list description: | This service returns organization list. responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/organization_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /role: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get role list description: | This service returns role list responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/role_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /permissionTemplateList: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get permission template list description: | This service returns permission template list sortBy enum: * name * lastModifiedDate sortType enum: * asc * desc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/permissionTemplateList_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/permissionTemplateList_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getPermissionTemplateDetail: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Get permission template detail description: | This service returns permission template detail parameters: - in: query name: templateId description: Permission Template ID required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getPermissionTemplateDetail_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /createPermissionTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Create permission template description: | This service can create permission template requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/createPermissionTemplate_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/createPermissionTemplate_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updatePermissionTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Update permission template description: | This service can update permission template requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updatePermissionTemplate_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /deletePermissionTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - My Account Services summary: Delete permission template description: | This service can delete permission template requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deletePermissionTemplate_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not have permission to access this API, only master admin user or admin user has permission to access' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /orderhistory: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Order History Services summary: List all the orders in the account description: | This service will list the history orders parameters: - in: query name: accountId description: Account ID required: true schema: type: integer - in: query name: pageSize description: Default page size is 0 schema: type: integer - in: query name: pageNo description: Default page no is 0 schema: type: integer - in: query name: filter description: | ##### Notice The filter value should be URL encoded to avoid special characters issues (e.g. % with numbers) ##### filter enumeration * UPPER(OrderNumber) like UPPER('%XX%') * ShippingAddress1 like '%XXX%' or UPPER(ShippingAddress2) like UPPER('%XXX%') * UPPER(PurchaseOrderNumber) like UPPER('%XX%') or UPPER(ExtendedCustomerPO) like UPPER('%XX%') * UPPER(JobName) like UPPER('%XX%') * UPPER(AtgUUID) like UPPER('%XX%') * UPPER(Ordered) > 'YYYY-MM-DD' and UPPER(Ordered) < 'YYYY-MM-DD' * UPPER(OrderStatusCode) in ('C','K') * UPPER(OrderStatusCode) in ('I') * UPPER(OrderStatusCode) in ('O') * UPPER(OrderStatusCode) in ('N') * UPPER(OrderStatusCode) in ('P','R') * UPPER(ItemOrProductDescription) like UPPER('%XXX%') or ItemNumber like '%XXX%' * UPPER(SourceOfSale) like UPPER('C') or UPPER(SourceOfSale) like UPPER('E') * UPPER(SourceOfSale) in ('C') or UPPER(SourceOfSale) in ('E') * UPPER(SourceOfSale) = 'C' or UPPER(SourceOfSale) = 'E' * UPPER(PaymentStatus) like UPPER('Fully Paid') * UPPER(PaymentStatus) like UPPER('Partially Paid') * UPPER(PaymentStatus) like UPPER('Unpaid') ##### OrderStatusCode mapping * C,K: Processing * I: Invoiced * O: Ready Delivery/Pick up * N: Pending * P,R: Delivered #### SourceOfSale mapping * C: In-Store * E: Online schema: type: string - in: query name: orderBy description: | ### orderBy enumeration * OrderNumber ASC/DESC * ShippingAddress1 ASC/DESC * Total ASC/DESC * OrderStatusCode ASC/DESC * SourceOfSale ASC/DESC schema: type: string - in: query name: queryCompany description: Default queryCompany is true schema: type: boolean responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/orderhistoryRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /orderhistory_v2: get: tags: - Order History Services summary: List all the orders in the account description: | This service will list the history orders parameters: - in: query name: accountId description: Account ID required: true schema: type: integer - in: query name: pageSize description: Default page size is 25 schema: type: integer - in: query name: pageNo description: Default page no is 1 schema: type: integer - in: query name: searchBy schema: type: string description: | ##### searchBy enumeration * JobName * ProductOrSKU * OrderPlacedDate * MincronOrderNumber * OrderStatus * CustPO * IsPROPlusOrder * Street * UUID * PaymentStatus - in: query name: searchTerm schema: type: string description: | ##### When 'searchBy' is one of the following enumeration, the 'searchTerm' should be populated * JobName * ProductOrSKU * MincronOrderNumber * CustPO * Street * UUID * PaymentStatus (searchTerm should be 'Fully Paid' or 'Partially Paid' or 'Unpaid') - in: query name: searchStartDate schema: type: string format: MM-DD-YYYY description: | ##### When 'searchBy' is 'OrderPlacedDate', the 'searchStartDate' should be populated, format should be 'MM-DD-YYYY', e.g. '01-05-2021' - in: query name: searchEndDate schema: type: string format: MM-DD-YYYY description: | ##### When 'searchBy' is 'OrderPlacedDate', the 'searchEndDate' should be populated, format should be 'MM-DD-YYYY', e.g. '01-05-2021' - in: query name: searchEnum schema: type: string description: | ##### When 'searchBy' is 'OrderStatus', the 'searchEnum' should be one of the following enumeration: * Delivered * Invoiced * Pending * Processing * ReadyDeliveryOrPickUp * DeliveredOrInvoiced ##### When 'searchBy' is 'IsPROPlusOrder', the 'searchEnum' should be one of the following enumeration: * No * Yes - in: query name: orderBy description: | ### orderBy enumeration * MincronOrderNumber ASC/DESC * Details ASC/DESC * IsPROPlusOrder ASC/DESC * TotalOrderAmount ASC/DESC * OrderStatus ASC/DESC schema: type: string - in: query name: queryCompany description: Default queryCompany is true schema: type: boolean responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/orderhistoryRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /orderdetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Order History Services summary: Get details of the order by Id description: This service will calls order detail service and return order data. For eagleView order, specialInstruction field in response will be replaced with report address. parameters: - in: query name: orderId description: Order ID required: true schema: type: string - in: query name: accountId description: Account ID required: true schema: type: string - in: query name: accountToken description: Account Token required: false schema: type: string - in: query name: showDT description: flag to show/hide DT order status info, default is true. schema: type: string - in: query name: queryCompany description: Default queryCompany is true schema: type: boolean responses: '200': description: | successful operation refer to *API Uniform Format* If faild to parameter validation, will return null result with error message, refer to *API Response Message Code* content: application/json: schema: $ref: '#/components/schemas/orderdetailRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadBillTrustInvoiceAsPDF: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Bill Trust Services summary: Download bill trust invoice as PDF description: | This service can download bill trust invoice as PDF. parameters: - in: query name: accountId description: | Account ID Example 280381 required: true schema: type: string - in: query name: invoiceNumbers description: | Invoice Numbers Example N20546 or N20546,N20547 required: true schema: type: string responses: '200': content: application/pdf: schema: type: string format: byte description: | successful operation return the PDF file in bytes Failed operation return 'application/json' and refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadOrderDetailAsPDF: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Order History Services summary: Download order detail as PDF description: | This service can download order detail as PDF. parameters: - in: query name: orderId description: Order ID required: true schema: type: string - in: query name: accountId description: Account ID required: true schema: type: string - in: query name: accountToken description: Account Token required: false schema: type: string - in: query name: branchId description: Branch ID schema: type: string - in: query name: showBackToOrderDetailPageLink schema: type: boolean description: show back to order detail page link on download PDF or not - in: query name: showPrice schema: type: boolean description: show price on download PDF or not - in: query name: showShipTips schema: type: boolean description: show shipping tips on download PDF or not - in: query name: enableSwitchOrderQty schema: type: boolean description: if order items quantity is enable to be switched between shipped quantity and ordered quantity - in: query name: showShipQty schema: type: boolean description: show order items shipping quantity on download PDF or not - in: query name: queryCompany description: Default queryCompany is true schema: type: boolean responses: '200': content: application/pdf: schema: type: string format: byte description: | successful operation return the PDF file in bytes Failed operation return 'application/json' and refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getDTOrderDetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Order History Services summary: Get DT order detail by order Id description: This service will calls DT order detail service and return data. parameters: - in: query name: orderId description: Order ID required: true schema: type: string - in: query name: showDT description: flag to show/hide DT order status info, default is true. schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/DTOrderdetailRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /typeAhead: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get type ahead items description: >- This service will get type ahead items information. parameters: - in: query name: accountId required: true schema: type: string - in: query name: filter required: true description: | Search terms This parameter also support the following syntax: * `productId:ID1,ID2...IDn` * Filter by given product ID list, separated by comma. e.g. "productId:C-010001,C-010002,C-010003" schema: type: string - in: query name: maxSearchSuggestions description: Max returned type ahead items size, default is 6 schema: type: number responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/typeAhead_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /itemlist: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get list of items description: >- This service will list all the products for selected account, based on availability. ### Request Parameters: * If recentlyPurchase:true in facetsFilter but accountId is empty, will return no results. parameters: - in: query name: accountId schema: type: string description: Account ID required: true - in: query name: pageSize description: Default page size is 21. Max Page Size can be configured in BCC, maxPageSize default value is 30. If pageSize exceeds maxPageSize, the amount of maxPageSize items return. schema: type: integer format: int32 - in: query name: pageNo description: 'Default page no is 1, the first page' schema: type: integer format: int32 - in: query name: filter description: | Search terms This parameter also support the following syntax: * `productId:ID1,ID2...IDn` * Filter by given product ID list, separated by comma. e.g. "productId:C-010001,C-010002,C-010003" schema: type: string - in: query name: cateFilter description: Category search terms schema: type: string - in: query name: facetsFilter description: > Filter syntax: * `recentlyPurchase:true` * Default is false, if true, will filter the results with recently purchase * `frequentlyPurchase:true` * Default is false, if true, will filter the results with frequently purchase, frequentlyPurchase and recentlyPurchase can not be use together. * Facets search IDs, separated by comma * e.g. "4294965847,4294965836" * Indicate which dimension to search, `:`, separated by comma, case insensitive, ignore white space * e.g. "size:0ft x 2ft,packaging:100 bag,thickness:102mm,style:A Slop,color: Beige" * Special charactors should be URL encoded then append to query string * e.g. raw: 'facetsFilter=Thickness:20_,Thickness:20",Thickness:20mm,Size:"9 x "12,Size:#12,Size:1! x 1!,Size:1-5/8",Size:10" x 15",Size:100' x 200',Size:2-7/8",Size:6> x 500<' * e.g. URL encoded: 'facetsFilter=Thickness%3a20_%2cThickness%3a20%22%2cThickness%3a20mm%2cSize%3a%229+x+%2212%2cSize%3a%2312%2cSize%3a1!+x+1!%2cSize%3a1-5%2f8%22%2cSize%3a10%22+x+15%22%2cSize%3a100%27+x+200%27%2cSize%3a2-7%2f8%22%2cSize%3a6%3e+x+500%3c' * The above syntax can be mixed together * e.g. "size:0ft x 2ft,4294965847,packaging:100 bag,thickness:102mm,4294965836,style:A Slop,color: Beige" schema: type: string - in: query name: showSkuList description: 'if "true", display sku list' schema: type: string - in: query name: enableAutoCorrection description: Default is true, will enable auto correction for `filter` schema: type: string - in: query name: enableDidYouMean description: Default is true, will enable did you mean features for `filter` schema: type: string - in: query name: showFacets description: 'if "false", do not display facets. Default is "true"' schema: type: string - in: query name: showHoverAttrs description: 'if "true", display Hover attributes' schema: type: string - in: query name: hoverSearch description: 'if "true", display Hover version of search' schema: type: string - in: query name: matchMode description: > Usage : * It can combine with parameter "cateFilter" to filter items,only support "all" or "any". * `all` * Default value, returns items that category matches the entire search category term. * `any` * Returns items that category matches at least one category in the search category terms, if exist multi categories, separated by '+'. schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/itemlistRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /itemDetails: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get items details description: This service returns product details based on Product or item Id. parameters: - in: query name: productId schema: type: string description: Product ID - in: query name: itemNumber schema: type: string description: Item number(SKU ID) - in: query name: accountId description: Account ID schema: type: string - in: query name: jobNumber schema: type: string description: Job Number - in: query name: uom schema: type: string description: Unit of Measure - in: query name: showHoverAttrs description: 'if "true", display hover attributes' schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/itemDetailsRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /pricing: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get price and Unit of Measures (UoMs) for multiple line items description: | Returns price and unit of measure for each line item If some of the UoM is empty, will return "EMPTY_UOM" in response e.g. "priceInfo": { { "unitPrice": 10.47, "itemNumber": "397547", "uom": "EMPTY_UOM", "available": true } } parameters: - in: query name: skuIds required: true schema: type: string description: > SKU ID list long string, seperated by commas e.g. "253729,253737,253740" If query with UOM(optional), should add UOM after each sku id and seperated by colon e.g. "253729:BDL,253737,253740:PC" If UOM is empty, will get price of all UOMs for this SKU - in: query name: accountId description: Account ID schema: type: string - in: query name: jobNumber schema: type: string description: Job Number responses: '200': description: | successful operation refer to *API Uniform Format* Response fields explanation: * `priceInfo.`: SKU ID. e.g. `priceInfo["253729"]` * `priceInfo.`: SKU UOM and Price pairs. e.g. `priceInfo["253729"] = {"BDL": 125.67, "PC": 10.86}` * `priceInfo..`: SKU UOM. e.g. `priceInfo["253729"]["BDL"]` * `priceInfo..`: SKU Price of this UOM. e.g. `priceInfo["253729"]["BDL"] = 125.67` The example below presents: * SKU `253729`'s price: `125.67`(with UOM `BDL`) and `10.86`(with UOM `PC`) * SKU `253737`'s price: `3663.22`(with UOM `CTN`) * SKU `253740`'s price: `2384.34`(with UOM `CTN`) and `834.43`(with UOM `PC`) content: application/json: schema: $ref: '#/components/schemas/pricingRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getProductVariation: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get product variation description: This service returns product variations based on productId. parameters: - in: query name: productId required: true schema: type: string - in: query name: skuId description: choosed sku id under product schema: type: string - in: query name: vendorColorId schema: type: string description: the sku choosed vendor color responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/productVarationRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getQuoteProductVariation: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get quote product variation description: This service returns quote product variations based on productId. parameters: - in: query name: productId required: true schema: type: string - in: query name: skuId description: choosed sku id under product schema: type: string - in: query name: vendorColorId schema: type: string description: the sku choosed vendor color - in: query name: quoteOrderId description: quote order id schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/productVarationRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getMultipleProductVariation: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get mutilple product variation description: | This service returns mutilple product variations based on productId. ## Request body: required * productId: required requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/multipleProductVarationReq' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/multipleProductVarationRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getMultipleQuoteProductVariation: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get mutilple product variation description: | This service returns mutilple product variations based on productId. ## Request body: required * productId: required requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/multipleQuoteProductVarationReq' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/multipleProductVarationRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getFavoriteProducts: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get favorite products description: This service returns favorite products based on account ID. parameters: - in: query name: accountId required: true schema: type: string - in: query name: displaySize description: Default is 3, max is 100 schema: type: string - in: query name: checkImageExist schema: type: boolean description: Default is true, will only return the items which images are exists responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getFavoriteProducts_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /categories: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: List categories description: This service list categories parameters: - in: query name: account required: true schema: type: string - in: query name: showSubCategories description: Default is false, will return only one level sub categories, if true, will return all levels sub categories schema: type: boolean - in: query name: categoryNameOrId schema: type: string description: Category Name or ID filter - in: query name: showRecordCount schema: type: string description: Default is false, if true, will return the record count of each category responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/categories_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /submitOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Submit Order Services summary: Submit order description: > This service is used to submit order. #### Request Body Validation * apiSiteId: String, Required * accountId: String, Max Length:6, Required * job.jobName: String, Max Length:15 * job.jobNumber: String, Max Length:7 * purchaseOrderNo: String, Max Length:22 * extendedPO: String, Max Length:50 * shipping.shippingMethod: String, Max Length:1 * shipping.shippingBranch: String, Max Length:4 * shipping.address.address1: String, Max Length:30 * shipping.address.address2: String, Max Length:30 * shipping.address.city: String, Max Length:25 * shipping.address.postalCode: String, Max Length:10 * shipping.address.state: String, Max Length:2 * sellingBranch: String, Max Length:4 * payment.cardInfo.ExpMM: String, The month is a positive integer less than 12, Required * payment.cardInfo.ExpYY: String, Year is 2 digits, Required * payment.cardInfo.Type: String, Required * payment.cardInfo.FullName: String, Optional * payment.encryptionTokenData.LowValueToken: String, Required * payment.addressVerificationData.AVSZIPCode: String, format is xxxxx or xxxxx-xxxx, Required * specialInstruction: String, Max Length:234 * lineItems: Required * lineItems.itemNumber: String, Max Length:6 * lineItems.quantity: Integer, Max Length:10, Required * lineItems.unitOfMeasure: String, Max Length:3 * lineItems.description: String, Max Length:128 * lineItems.lineComments: String, Max Length:2048 * lineItems.productNumber: String, Max Length:40 * lineItems.ATGItemMapping.materialID: String, Max Length:40 * lineItems.ATGItemMapping.branchId: String, Max Length:40 * lineItems.ATGItemMapping.MFRName: String, Max Length:254 * lineItems.ATGItemMapping.itemNumber: String, Max Length:40 * lineItems.ATGItemMapping.integrationName: String, Max Length:254 * pickupDate: String, Format: yyyy-mm-dd * pickupTime: String, Recommended values: ["Morning", "Afternoon", "Anytime", "Special Request"] * UUID: String, Max Length:100 * attachFile.fileName: String, Max Length:40 * attachFile.fileType: String, Max Length:20 * attachFile.attachEncodeFile: Base64, File Max Size:5MB If "checkForAvailability" is "no", will not check availability of lineItems, otherwise will do check availability of lineItems "Payment" is optional. If payment is passed in the parameter, payWithCredit defaults to true, and the credit card process is carried out and verified. If payment is not passed in the parameter, the pay with cash process is carried out. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/submitOrderReq' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: $ref: '#/components/schemas/submitOrderRep' '401': description: 'Unauthorized, user do not login' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /cartItems: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Get items in the cart description: | This service returns existing items in the cart for the user profile and selected account parameters: - in: query name: showItemVariations required: false description: |- Default is false, if "true", display variations of each item item schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/cartItemsFullRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /orderSummary: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Get order summary from current shopping cart description: | This service returns the order summary of current shopping cart responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/orderSummaryRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /clearCart: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Clear all items in the cart description: | This service can clear all the items in the current shopping cart, but '/cartItems' should be called before clearing cart and validate if the commerceItemIds match with both the API to avoid version update exception. responses: '200': description: | successful operation refer to *API Uniform Format* '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /removeItemFromCart: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Remove one item from the cart description: | This service can remove one given item from the current shopping cart requestBody: required: true content: application/json: schema: type: object properties: commerceItemId: type: string responses: '200': description: | successful operation refer to *API Uniform Format* '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateCart: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Update the cart description: | This service can update the quantities of items in current shopping cart requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateCartReq' responses: '200': description: | successful operation refer to *API Uniform Format* '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /proceedToCheckout: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Proceed to checkout page description: | This service can proceed to checkout page, if item in current shopping cart is invalid, will return error message This service returns the checkout page url responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/proceedToCheckoutRep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /addMultipleItemsToOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Add Multiple Items To Order summary: Add item(s) to cart description: | This service is able to add item(s) to cart. The `items.color` format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" itemType can be set Standard item or Custom Steel,if no itemType inputed, default value is Standard item,if itemType = Custom Steel, should input description. parameters: - in: query name: ignoreInvalidItems description: |- if "true", will ignore invalid items and continue add valid items to cart, otherwise will return invalid items schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/addItemsToOrderReq' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/addItemsToOrderRep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /template: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: List all templates and details for the current user description: |- This service is able to list all templates and the details for the current user parameters: - in: query name: account required: false description: 'If not empty, will filter result by given account id' schema: type: string - in: query name: showItems required: false description: 'Default is false, if "true", display template items' schema: type: string - in: query name: showItemVariations required: false description: |- Default is false, if "true", display variations of each template item schema: type: string - in: query name: showPricing description: 'Default is false, if "true", display pricing of each template item' schema: type: string - in: query name: showItemAvailable description: 'Default is true, if "false", do not display item region availability' schema: type: string - in: query name: pageSize description: 'Default is 10, max is 100, record count of each page' schema: type: integer format: int32 - in: query name: pageNo description: 'Default is 1, the first page, page number or page index' schema: type: integer format: int32 - in: query name: filterBy description: | The search key #### filterBy enumeration * templateName * dataLastModified * account * createdBy schema: type: string - in: query name: filter description: | The search terms schema: type: string - in: query name: orderBy description: | Default is 'dataLastModified desc' #### orderBy enumeration * templateName asc/desc * dataLastModified asc/desc * account asc/desc * createdBy asc/desc schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* `color,size etc. are variation` `White,Dover etc. are variation option` `100001, 200002 etc. variation option id.` `600001, 600002 under skusVariation is sku id.` content: application/json: schema: $ref: '#/components/schemas/templatelistRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getTemplateDetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Get template details for a given template description: This service provides templates details for a given template Id. parameters: - in: query name: templateId required: true description: This is required schema: type: string - in: query name: account required: true description: This is required schema: type: string - in: query name: showItems required: false description: 'Default is false, if "true", display template items' schema: type: string - in: query name: showItemVariations required: false description: |- Default is false, if "true", display variations of each template item schema: type: string - in: query name: showPricing description: 'Default is false, if "true", display pricing of each template item' schema: type: string - in: query name: showItemAvailable description: 'Default is true, if "false", do not display item region availability' schema: type: string - in: query name: invokeBy description: 'If value is ''store'', will do the store logic' schema: type: string - in: query name: jobNumber description: THe job number schema: type: string - in: query name: pageSize description: 'Default is 15, record count of each page' schema: type: integer format: int32 - in: query name: pageNo description: 'Default is 1, the first page, page number or page index' schema: type: integer format: int32 - in: query name: pagination description: 'enable pagination for items,default is false' schema: type: boolean responses: '200': description: | successful operation refer to *API Uniform Format* `color,size etc. are variation` `White,Dover etc. are variation option` `100001, 200002 etc. variation option id.` `600001, 600002 under skusVariation is sku id.` content: application/json: schema: $ref: '#/components/schemas/templateDetailRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /createTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Create template for current user description: | This service can create template ### Request body: required * templateName: required * account: required * jobNumber: optional ### Items: optional * itemNumber: required * unitOfMeasure: required if invokeBy is 'store', otherwise this value will be optional * quantity: required * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional parameters: - in: query name: invokeBy description: 'If value is ''store'', will do the store logic' schema: type: string - in: query name: ignoreInvalidItems description: |- if "true", will ignore invalid items and continue add valid items to cart, otherwise will return invalid items schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/createTemplateReq' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/createTemplateRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getTemplateCategories: get: tags: - Template Services summary: Get given template categories responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/getTemplateCategory_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /updateTemplateItemDisplayOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Update template item of display order description: | The 'templateItems' is an array, it must contain all template items and its new display positions. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateTemplateItemDisplayOrderReq' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Update template description: | This service can update template such as changing tempate name or modifying template items. ### Request body: required * templateId: required * account: required * templateName: required * jobNumber: optional * action: optional ### items: optional ##### action is 'createItem' * itemNumber: required * unitOfMeasure: optional if invokeBy is 'store', otherwise this value will be required * quantity: required * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional ##### action is 'updateItem' * templateItemId: required * itemNumber: required * unitOfMeasure: optional if invokeBy is 'store', otherwise this value will be required * quantity: required * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional ##### action is 'deleteItem' * templateItemId: required other fields not listed above will be ignored. parameters: - in: query name: invokeBy description: 'If value is ''store'', will do the store logic' schema: type: string - in: query name: ignoreInvalidItems description: |- if "true", will ignore invalid items and continue add valid items to cart, otherwise will return invalid items schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateTemptemItemReq' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/updateTemptemItemRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /deleteTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Delete template description: This service can delete template(s) for current user. parameters: - in: query name: templateId required: true description: |- The template Id list, separated by comma, e.g. "gl35140002,gl35140003,gl35140004" schema: type: string - in: query name: account required: true description: The account Id schema: type: string - in: query name: invokeBy description: 'If value is "store", will do the store logic' schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /copyTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Copy template description: This service can copy template(s) to the current account. parameters: - in: query name: templateId required: true description: |- The template Id list, separated by comma, e.g. "gl35140002,gl35140003,gl35140004" schema: type: string - in: query name: account required: true description: The account Id schema: type: string - in: query name: invokeBy description: 'If value is "store", will do the store logic' schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /addPerfectOrderToTemplate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Create a template of Perfect Order description: >- This service can create a new template and add perfect order items to the newly created template. parameters: - in: query name: templateName required: true description: The template Name schema: type: string - in: query name: account required: true description: The account Id schema: type: string - in: query name: perfectOrderId required: true description: >- The main product id for product template or product style id for product style schema: type: string - in: query name: brandName required: true description: The brand name schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/addPerfectOrderToTemplateRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateSingleTemplateLineItem: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Update single template line item description: | This service can update template line item such as changing template name or modifying single template line item. ### Request body: required * templateId: required * account: required * templateName: required * jobNumber: optional ### item: required * templateItemId: required * itemNumber: required * unitOfMeasure: optional * quantity: required * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional other fields not listed above will be ignored. parameters: - in: query name: ignoreInvalidItems description: |- if "true", will ignore invalid items and continue add valid items to cart, otherwise will return invalid items schema: type: boolean - in: query name: showItemVariations description: |- Default is false, if "true", display variations for line item schema: type: string - in: query name: showPricing description: 'Default is false, if "true", display pricing for line item' schema: type: string - in: query name: showItemAvailable description: 'Default is true, if "false", do not display item region availability' schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateSingleTemplateLineItemReq' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/updateSingleTemplateLineItemRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /validateTemplateItems: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Template Services summary: Validate template items description: This service can validate the items of given template parameters: - in: query name: invokeBy description: 'If value is ''store'', will do the store logic' schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/validateTemplateItems_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/validateTemplateItems_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getProductBranchOrRegionAvailability: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get Product Branch Or Region Availability description: This service returns products' childSKUs' with flag isSKUAvailableAtBranch/isSKUAvailableAtRegion parameters: - in: query name: productIds required: true description: product ids,seperated by comma schema: type: string - in: query name: branchId required: false description: >- branch legacy number schema: type: string - in: query name: regionId required: false description: region legacy number schema: type: string - in: query name: marketId required: false description: market ID schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "result": null, "success": false, "messages": [ { "code": 1001, "type": "error", "value": "productIds is required.", "key": null } ] } content: application/json: schema: $ref: '#/components/schemas/getProductBranchOrRegionAvailabilityRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getSKUBranchOrRegionAvailability: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get SKU Branch Or Region Availability description: This service returns skus with flag isSKUAvailableAtBranch/isSKUAvailableAtRegion parameters: - in: query name: skuIds required: true description: sku ids,seperated by comma schema: type: string - in: query name: branchId required: false description: >- branch legacy number schema: type: string - in: query name: regionId required: false description: region legacy number schema: type: string - in: query name: marketId required: false description: market ID schema: type: string - in: query name: templateId required: false description: Template ID schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "result": null, "success": false, "messages": [ { "code": 1001, "type": "error", "value": "skuIds is required.", "key": null } ] } content: application/json: schema: $ref: '#/components/schemas/getSKUBranchOrRegionAvailabilityRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getATGItemMapping: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get ATG Item Mapping description: | This service returns ATG item mapping The query condition in request body can be in any combination e.g. ``` { "materialID": "string", "MFRName": "string", "branchId": "string" } ``` ``` { "materialID": "string", "accountId": "string" } ``` ``` { "accountId": "string", "description": "string" } ``` If cannot find the uniqueness result based on the query condition, will return error code with message requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ATGItemMapping_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getATGItemMapping_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateOrderAlert: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Update order alert description: | This service update order alert The query condition in request body can be in any combination, alertType can be one of email,sms,emailAndsms and none e.g. ``` { "orderId ": "string", "alertType": "email", "phoneNumber": "string", "emailAddress": "string", "saveToProfile": "true" } ``` ``` { "orderNumber": "string", "alertType": "sms", "phoneNumber": "string", "emailAddress": "string", "saveToProfile": "false" } ``` ``` { "savedOrderId": "string", "alertType": "emailAndsms", "phoneNumber": "string", "emailAddress": "string", "saveToProfile": "true" } ``` If cannot find the uniqueness result based on the query condition, will return error code with message requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrderAlert_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /uploadOrderRelatedDocuments: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Upload order related documents. description: > This service can upload order related documents. requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadOrderRelatedDocument_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /deleteOrderRelatedDocuments: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Delete order related documents. description: > This service can delete order related documents. requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteOrderRelatedDocument_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadOrderDocument: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Download order related document description: | This service can download order document. parameters: - in: query name: orderId description: It can support mincron order id, saved order id, atg order id and quote order id. required: true schema: type: string - in: query name: documentName description: Document Name. e.g JT80814.pdf required: true schema: type: string responses: '200': content: application/pdf: schema: type: string format: byte application/x-xls: schema: type: string format: byte application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: schema: type: string format: byte image/png: schema: type: string format: byte image/jpeg: schema: type: string format: byte description: | successful operation return the PDF file in bytes Failed operation return 'application/json' and refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getGenericBrands: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Catalog ITEM Services summary: Get Catalog all brands description: This service returns Catalog all available brands responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: type: object properties: brands: type: array items: type: string '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getPerfectOrderDetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Perfect Order Services summary: Get perfect order details description: This service returns perfect order details based on perfect order Id. parameters: - in: query name: account required: true description: The account Id schema: type: string - in: query name: perfectOrderId required: true description: >- The main product id for product template or product style id for product style schema: type: string - in: query name: brandName required: true description: | The brand name support multiple brands,separated by "||" (should be url encoded: "%7C%7C") example: brandName=xxx%7C%7Cyyy schema: type: string - in: query name: jobNumber description: 'The job number, default is empty' schema: type: string - in: query name: showPricing description: 'Default is false, if "true", display pricing of each item' schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getPerfectOrderDetailRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getPerfectOrderBrands: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Perfect Order Services summary: Get perfect order brands description: This service returns perfect order all available brands responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getPerfectOrderBrandsRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getPerfectOrderLanding: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Perfect Order Services summary: Get product templates to render product template landing page. description: This service returns products for perfect order landing page. parameters: - in: query name: brandName required: true description: The brand name schema: type: string - in: query name: pageNo required: true description: >- page index, default is 1 schema: type: integer - in: query name: pageSize required: true description: The numbers of product can be returned for one page, default is 3 schema: type: integer responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example {"result":{"pagination":{"next":{"available":false,"label":"Next","page":-1},"previous":{"available":true,"label":"Previous","page":3},"pageSize":4,"currentPage":4,"totalCount":14,"results":[{"enable":true,"page":1,"currentPage":false,"type":"page"},{"enable":true,"page":2,"currentPage":false,"type":"page"},{"enable":true,"page":3,"currentPage":false,"type":"page"},{"enable":true,"page":4,"currentPage":true,"type":"page"}]},"items":[{"imgUrl":"/images/large/C-487445_default_small.jpg","landingRank":null,"displayName":"GAF Timberline® Cool Series® Shingles","id":"C-487445"},{"imgUrl":"/images/large/C-499398_default_small.jpg","landingRank":null,"displayName":"GAF Timberline® HD® Reflector Series™ Shingles","id":"C-499398"}]},"success":true,"messages":null} content: application/json: schema: $ref: '#/components/schemas/getPerfectOrderLandingRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getPerfectStyleGroups: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Perfect Order Services summary: Get product styles to render product style landing page. description: This service returns product styles based on brand. parameters: - in: query name: brand required: true description: The product brand name schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getPerfectStyleGroupsRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /saveOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Create new saved order and save current cart to this order description: | This service can create a new saved order and add current shopping cart items to the newly created saved order. po, jobName, jobNumber , additionalRecipients are optional requestBody: required: true content: application/json: schema: type: object properties: savedOrderName: type: string po: type: string jobName: type: string jobNumber: type: string emptyCart: type: boolean description: A flag whether empty user current shopping cart, it's true or empty value, empty cart, else keep current cart. additionalRecipients: type: array items: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/saveOrderRep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getOrderApprovalList: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: List saved/pending orders description: | This service is able to list saved or pending orders. If approverId is empty, it will be treat as Get Saved/Pending Order list If approverId not empty, it will be treat as get 'Pending Order by Approver' 1.sortBy value Pending Order:displayName,accountNumber,createdUser,submittedDate Saved Order:displayName,accountNumber,lastModifiedDate,status,creationDate,submittedDate 2.status value: Pending Order: READY_FOR_APPROVAL Saved Order:READY_FOR_SUBMISSION Rejected Order: REJECTED_ORDER 3.searchBy value Pending Order:displayName,accountNumber,createdUser.email,submittedDate Saved Order:displayName,accountNumber,creationDate,createdUser.name,createdUser.email,lastModifiedDate,lastModifiedUser.name,lastModifiedUser.email,submittedDate,submittedUser.name,submittedUser.email 4.searchBy 'submittedDate' or 'creationDate' its format value is 'MM-dd-yyyy'.eg,07-30-2019 5.'sortBy' 'searchBy' are not required. But if set value, it's limited by the given values. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/getOrderApprovalList_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getOrderApprovalList_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getOrderApprovalDetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Get saved/pending order detail, also use this service to render order confirmation page for submitter. description: | This service provides saved or pending order details for a given saved order Id. parameters: - in: query name: orderId schema: type: string required: true description: Saved Order ID - in: query name: editable schema: type: boolean required: true - in: query name: validate schema: type: boolean responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getOrderApprovalDetail_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /rejectSavedOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Reject pending order description: | This service can reject pending order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/rejectSavedOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /deleteSavedOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Delete saved orders description: | This service can delete saved order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deleteSavedOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateSavedOrderItems: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Update saved/pending order items description: | This service can update the items of given saved or pending order The `items.color` format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateSavedOrderItems_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/updateSavedOrderItems_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getSavedOrderShippingInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Get saved/pending order shipping info description: | This service provides saved or pending order shipping information for a given saved order Id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/getSavedOrderShippingInfo_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getSavedOrderShippingInfo_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateSavedOrderShippingInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Update saved/pending order shipping info description: | This service can update saved or pending order shipping information for a given saved order Id. deliveryOption: "scheduled" or "onHold", when "scheduled", "deliveryDate" and "deliveryTime" is needed shippingMethod: "Ship_to" or "Pick_up" Ship_to example : ``` { "orderId":"33400002", "deliveryOption":"onHold", "shippingMethod":"Ship_to", "shippingAddress":{ "address1":"testaddress", "address2":"", "city":"test city", "state":"AZ", "states":null, "postalCode":"12345", "country":"USA" }, "contactInfo":{ "phoneNumber":"1234567990", "firstName":"", "lastName":"testolivia", "nickName":"testolivia" }, "instructions":"ppererr111" } ``` Pick_up example : ``` { "orderId":"33400002", "deliveryOption":"scheduled", "deliveryDate":"06-28-2018", "deliveryTime":"Afternoon", "shippingMethod":"Pick_up", "shippingAddress":{ "displayName":"DENVER BRANCH", "address1":"DENVER BRANCH - STATEWIDE", "address2":"1205 S PLATTE RIVER DR.", "city":"DENVER", "state":"CO", "postalCode":"80223-3100", "phoneNumber":"3037447111", "address3":"" }, "branchName":"", "contactInfo":{ "firstName":"", "lastName":"", "nickName":"", "phoneNumber":"3037447111" }, "instructions":"pppdd" } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateSavedOrderShippingInfo_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getSavedOrderReviewInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Get saved/pending order review info description: | This service provides saved or pending order review information for a given saved order Id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/getSavedOrderReviewInfo_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getSavedOrderReviewInfo_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateSavedOrderReviewInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Save saved order review info. description: | Save saved order review info in order review page. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateSavedOrderReviewInfo_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /submitSavedOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Submit/Revise saved order for approval for submmitter user. description: | This service can submit the save order for approval with a given saved order Id. Please note, it's just converted save order to pending order. Only can call this API to submit order for approval/Revise pending order for the user who doesn't have submit order permission. po, jobName, jobNumber , additionalRecipients are optional requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/submitSavedOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/submitSavedOrder_res' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /approveSavedOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Approve saved/pending order description: | This service can approve the submitted saved/pending order for a given saved order Id. apiSiteId, po, jobName, jobNumber , additionalRecipients are optional requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/approveSavedOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getSavedOrderConfirmationInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Get saved/pending order confirmation info description: | This service provides saved or pending order confirmation information for a given saved order Id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/getSavedOrderConfirmationInfo_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getSavedOrderConfirmationInfo_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /saveOrderValidate: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Validate the saved/pending order description: | This service provides saved or pending order validation, such as shipping method/delivery option, shipping/delivery pickup date/time. parameters: - in: query name: id schema: type: string required: true description: Saved Order ID responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /approver: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: List saved order approvers description: | This service will list all the approvers for current user. parameters: - in: query name: hasPendingOrders schema: type: string description: 'If true, will only returns the approvers which has pending orders' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/approver_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadSavedOrderAsPDF: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Saved Order Services summary: Download saved order as PDF description: This service can download saved order as PDF. parameters: - in: query name: orderId description: Order ID required: true schema: type: string - in: query name: showPrice schema: type: boolean description: show price on download PDF or not responses: '200': content: application/pdf: schema: type: string format: byte description: | successful operation return the PDF file in bytes Failed operation return 'application/json' and refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateStatusChange: post: tags: - Delivery Tracking Service summary: delivery status change notification (Non-App) description: >- The actions is to update user receive delivery tracking notification 1. Requested,Scheduled,Enroute,Arrived,Delivered,Cancelled,Missed value should be one of "none","email","sms","emailAndsms"; 2.`dtStatusChangeNotification` presents current user status change notification; 3. `dtAdminStatusChangeNotification` presents other user status change notification with same account of current user; 4. `dtAccountStatusChangeNotification` presents current user with account mapping status change notification; this is new to configure DT setting per account.If "dtAccountStatusChangeNotification" is empty, system will send notification by setting of "dtAdminStatusChangeNotification" or "dtStatusChangeNotification" requestBody: content: application/json: schema: $ref: '#/components/schemas/statusChangeNotification_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/statusChangeNotification_rep' '403': description: Unauthorized user or invalid input content: application/json: schema: $ref: '#/components/schemas/statusChangeNotification_rep' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception content: application/json: schema: $ref: '#/components/schemas/statusChangeNotification_rep' /getStatusChange: get: tags: - Delivery Tracking Service summary: get delivery status change notification description: > If query parameter is empty, return profile level status change notification; `accountId` is optional, if not in the parameter, will return all account mapping items. In response `dtStatusChangeNotification` presents current user status change notification; `dtAdminStatusChangeNotification` presents other user status change notification with same account of current user; `dtAccountStatusChangeNotification` presents current user with account mapping status change notification; this is new to configure DT setting per account.If "dtAccountStatusChangeNotification" is empty, system will send notification by setting of "dtAdminStatusChangeNotification" or "dtStatusChangeNotification" If `orderId` or `orderNumber` or `savedOrderId` is not empty, return order level status change notification; In response `dtOrderStatusChangeNotification` presents current order status change notification parameters: - in: query name: orderId schema: type: string description: ATG Order ID - in: query name: orderNumber schema: type: string description: Order ID - in: query name: savedOrderId schema: type: string description: Saved Order ID - in: query name: accountId schema: type: string description: Account Legacy Number responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/getStatusChangeNotification_rep' '403': description: Unauthorized user or invalid input content: application/json: schema: $ref: '#/components/schemas/statusChangeNotification_rep' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception content: application/json: schema: $ref: '#/components/schemas/statusChangeNotification_rep' /upcomingDeliveries: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Delivery Tracking Service summary: Get upcoming deliveries description: This service will calls DT salesforce service to get upcoming deliveries data. parameters: - in: query name: accountId description: Account ID required: true schema: type: string - in: query name: startDate description: The startDate for the delivery tracking schema: type: string - in: query name: endDate description: The endDate for the delivery tracking schema: type: string - in: query name: pageSize description: Default page size is 100 schema: type: integer - in: query name: page description: Default page number is 1 schema: type: integer responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/UpcomingDeliveriesRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /quote: get: tags: - Quote Services summary: List all quotes for the current user description: | This service is able to list all quotes for the current user parameters: - in: query name: account required: true schema: type: string description: Account ID - in: query name: quoteType description: > The quote type you want to query, if empty, will return all types of quote #### quoteType enumeration * draft * inProcess * received schema: type: string - in: query name: pageSize schema: type: string description: 'Default is 10, max is 100, record count of each page' - in: query name: pageNo schema: type: string description: 'Default is 1, the first page, page number or page index' - in: query name: filterBy description: | The search key #### filterBy enumeration * quoteId * quoteName * creationDate * status * jobName schema: type: string - in: query name: filter description: | The search terms When filterBy is 'status', filter should be one of enumeration below #### filter status enumeration * Open * InProgress * Revised * Ready for Review * Approved * Ordered * Closed schema: type: string - in: query name: jobName schema: type: string - in: query name: orderBy description: | Default is 'creationDate desc' #### orderBy enumeration * quoteId asc/desc * quoteName asc/desc * creationDate asc/desc * status asc/desc * createdBy asc/desc schema: type: string responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/quote_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getMincronQuoteDetail: post: tags: - Quote Services summary: Get quote details for a given template description: | This service provides quotes details for a given quote Id. parameters: - in: query name: quoteId required: true schema: type: string description: Quote ID - in: query name: account schema: type: string description: Account ID responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getQuoteDetail_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getAtgQuoteDetail: get: tags: - Quote Services summary: Get Atg quote details for a given template description: | This service provides quotes details for a given quote Id. parameters: - in: query name: quoteId required: true schema: type: string description: Quote ID - in: query name: account schema: type: string description: Account ID responses: '200': description: > successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getQuoteDetail_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /createQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Create quote for current user description: | This service can create quote ### quoteItems: * itemType: * 'I': Internal quote item * 'E': External quote item, color and dimensions only support E type requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/createQuote_req' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/createQuote_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Update quote description: | This service can update quote and modifying quote items. ### items: * action: * UPDATE_QUOTE * CREATE_ITEM * UPDATE_ITEM * DELETE_ITEM UPDATE_QUOTE example: { "id":"29600002", "quoteName":"test quote", "phoneNumber":"12345678901", "address1":"test address1", "address2":"test address2", "city":"test city", "state":"Alabama", "jobNumber":"RSGD", "jobName":"ECONE APARTMENT", "workType":"R", "quoteNotes":"test quote notes", "mailingAddress1": "test mailing address1", "mailingAddress2": "test mailing address2", "mailingAddress3": "test mailing address3", "mailingState": "Alabama", "mailingCity": "test mailing city 001", "mailingZip": "90207", "expires": "test expires", "action":"UPDATE_QUOTE" } CREATE_ITEM example: { "id":"28400006", "quoteItems":[ { "itemNumber":"412023", "itemType":"I", "uom":"CTN", "quantity":22, "displayName":"test display name" }, { "itemNumber":"368238", "itemType":"E", "uom":"CTN", "quantity":22, "displayName":"test display name", "matchColor": "red", "dimensions": "dd" } ], "action":"CREATE_ITEM" } UPDATE_ITEM example: { "id":"29600002", "quoteName":"jason test quote", "quoteItems":[{ "id":"36300005", "quantity":3 }], "action":"UPDATE_ITEM" DELETE_ITEM example: { "id":"29600002", "deleteItems":[ "36300005" ], "action":"DELETE_ITEM" } requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateQuote_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /deleteQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Delete quote description: | This service can delete quote(s) for current user. ### Request body: required * quoteId: required requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deleteQuote_req' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /submitQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Submit quote description: > This service can submit quote for current user. There two situations as below: 1. quoteId is null: will create quote at first, then submit quote, if failed, rollback 2. quoteId is not null: will query quote by quoteId, if quote exists then submit quote. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/submitQuote_req' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/submitQuote_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /submitDelegatedQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Submit Delegated quote description: > This service can submit quote for delegated accountId on behalf of current user. There two situations as below: 1. quoteId is null: will create quote at first, then submit quote, if failed, rollback 2. quoteId is not null: will query quote by quoteId, if quote exists then submit quote. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/submitDelegatedQuote_req' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/submitQuote_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /submitQuoteForm: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Submit quote form description: > This service can submit quote form for current user. requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/submitQuoteForm_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /approveQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Approve quote description: | This service can approve quote. 1. Quote ID invalid 2. Quote ID empty, shows quote ID is required. 3. Quote ID valid, able to approve the quote, and webstore will send out email. 4. Quote Status != ready for review, System will show message requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/approveQuote_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /reviseQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Revise quote description: | This service can revise quote. 1. Quote ID invalid or empty: will show error message. 2. Quote ID valid: able to revise the Quote. and store will send out email. 3. Quote status != ready for review, will show error message. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/reviseQuote_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /rejectQuote: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Reject quote description: | This service can reject quote. 1. Quote ID invalid or empty: will show error message. 2. Quote ID valid: able to revise the Quote. and store will send out email. 3. Quote status != ready for review, will show error message. 4. The reason value should be one of 'Price is Too High', 'Lost Bid', 'Product Not Available', 'Product Will Arrive Late' and 'Other'. 5. The additionalReason only works when the reject reason is 'Other' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/rejectQuote_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadQuoteAsPDF: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Services summary: Download quote as PDF description: | This service can download quote as PDF. parameters: - in: query name: quoteId required: true schema: type: string description: Quote ID - in: query name: showPrice schema: type: boolean description: show price on download PDF or not - in: query name: receivedQuote schema: type: boolean description: received quote or not ,defualt true, for draft and inProcess quote pass it value to false. - in: query name: showBackToQuouteDetailPageLink schema: type: boolean description: show back to quote detail page link on download PDF or not responses: '200': content: application/pdf: schema: type: string format: byte description: | successful operation return the PDF file in bytes Failed operation return 'application/json' and refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /rebateLanding: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Get Rebates Landing description: | This service will list all the landing rebates for current user. responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/rebateLanding_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getRebateRedeemedSummaryItems: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Get Redeemed Rebates Summary description: | This service will list all the redeemed rebates summary info for current user. parameters: - in: query name: searchBy schema: type: string description: | ##### searchBy enumeration * year * brandName - in: query name: searchTerm schema: type: string description: | ##### When 'searchBy' is one of the following enumeration, the 'searchTerm' should be populated * year - example: 2023 * brandName - example: GAF - in: query name: filter schema: type: string description: | ##### If you need to query multiple conditions at the same time, it is recommended to use this example. ##### (Also note that filter and searchBy cannot be used at the same time) * search by year and brandName - example: year=2023,brandName=GAF responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getRebateRedeemedSummaryItems_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getRebateRedeemedItemDetail: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Get Redeemed Rebates Details description: | This service returns redeemed rebateitem details of given rebate id. 'rebateId' is required field, optional fields include 'searchKey','searchValue','searchStartDate','searchEndDate','pageNum','pageSize'. param 'searchKey' should be one of values ['invoiceDate','invoiceDateRange','orderNumber','category','itemDesc']. If the parameter "pageSize" has a value of -1, all redeemed details are returned. Please use with caution. invoiceDate its format should be 'MM-dd-yyyy',sample data is '07-16-2019'. invoiceDateRange is a date range, it gives the customer two calendar options(searchStartDate and searchEndDate) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/getRebateRedeemedItemDetail_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getRebateRedeemedItemDetail_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadRebateRedeemedItemDetail: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Download Redeemed Rebates Details description: | This service returns redeemed rebate item details csv file by given redeem id/ids, rebateId and accountId. 'redeemedRebateIds' is required field, sample data is 'redeem16600001' or 'redeem16600001,redeem16600002' 'rebateId' is required field, sample data is 'rebates3000001' 'accountId' is optional fields, if it's null we will use your last selected account legacy id instead. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/downloadRebateRedeemedItemDetail_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: text/csv: schema: type: string format: byte '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadRebateRedeemedDetailAsPDF: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Download Redeemed Rebates Details As PDF description: | This service returns redeemed rebate details pdf file by given redeem id/ids, rebateId, submitRebateInfoId and accountId. - 'redeemedRebateIds' is optional field: - download all: pass in null value to download data for the current rebate year, sample data is ``` "redeemedRebateIds": "" ``` ``` "redeemedRebateIds": null ``` ``` "redeemedRebateIds": " " ``` - download selection: pass in a string, sample data is ``` "redeemedRebateIds": "redeem16600001" ``` ``` "redeemedRebateIds": "redeem16600001,redeem16600002" ``` - 'rebateId' is required field, sample data is 'rebates3000001' - 'submitRebateInfoId' is required field, sample data is '20400002' ### Example - download all: ``` { "redeemedRebateIds": "" "rebateId": "rebates3000001", "submitRebateInfoId": "20400002" } ``` - download selection: ``` { "redeemedRebateIds": "redeem16600001,redeem16600002", "rebateId": "rebates3000001", "submitRebateInfoId": "20400002" } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/downloadRebateRedeemedDetailAsPDF_req' responses: '200': description: | successful operation return the PDF file in bytes Failed operation return 'application/json' and refer to *API Uniform Format* content: text/pdf: schema: type: string format: byte '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getRebateForm: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Get Rebate From parameters: - in: query name: rebateId description: RebateId Id required: true schema: type: string - in: query name: invokeBy description: invokeBy can be one of api, store required: false schema: type: string description: | This service will list rebate from responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getRebateFrom_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /submitRebate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Apply for Rebates description: | This service can apply/submit rebate according to getRebateForm api When prepare submit json,according to the field.name and find the group which value is one of (rebateInfo,rebateAddress,rebateCustomInfo,rebateMailingAddress) also,the field contains lable,type,placeHolder,value(default value) and some restriction zip,phone,startWith,pattern then the requst body would like this: ``` { "rebateId": "rebate5016", "rebateInfo": { "companyName": "CompanyN", "contactName": "beckya hua", "phoneNumber": "1234567891", "email": "beckyhu@aaxischina.com" }, "rebateAddress": { "address": "10875 Arney Rd SWa", "city": "Navarrea", "state": "AR", "zip": "44662" }, "rebateCustomInfo": { "ContractorIDTest": "123456" } } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/submitRebate_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateRebateForm: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Update Rebate Form Once description: | This service can update rebate When prepare submit json,according to the field.name and find the group which value is one of (rebateInfo,rebateAddress,rebateCustomInfo,rebateMailingAddress) also,the field contains lable,type,placeHolder,value(default value) and some restriction zip,phone,startWith,pattern then the requst body would like this: ``` { "rebateInfoId": "101800001", "rebateInfo": { "companyName": "CompanyN", "contactName": "beckya hua", "phoneNumber": "1234567891", "email": "beckyhu@aaxischina.com" }, "rebateAddress": { "address": "10875 Arney Rd SWa", "city": "Navarrea", "state": "AR", "zip": "44662" }, "rebateCustomInfo": { "ContractorIDTest": "123456" } } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateRebateForm_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/updateRebateForm_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getSubmittedRebateForm: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Get Submitted Rebate Form parameters: - in: query name: accountId description: AccountId Id required: true schema: type: string - in: query name: submittedRebateInfoId required: true description: Submitted rebate info id schema: type: string description: | This service will query submitted rebate form detail responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getSubmittedRebateForm_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /unenrollRebate: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Rebate Services summary: Uneroll Rebate description: | This service will unenroll rebate parameters: - in: query name: rebateId description: Rebate Id required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateCurrentOrderJobNumber: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Update current order job number description: | This service can change job number of the current order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateCurrentOrderJobNumberReq' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getOrderShippingInfo: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Get current order shipping info description: | This service returns the current order shipping info responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getOrderShippingInfo_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /addOrderShippingInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Add/Update current order shipping info description: | This service can Add/Update the current order shipping info ### deliveryOptionValue enum: * SCHEDULED * ONHOLD ### shippingMethodValue enum: * PICK_UP * SHIP_TO ## Examples: ### SCHEDULED, PICK_UP: ``` { "deliveryOptionValue":"SCHEDULED", "deliveryDate":"08-20-2020", "deliveryTime":"13", "shippingMethodValue":"PICK_UP", "changeShippingAddressLocation":true, "shippingAddress":{ "branchName": "a", "address1":"b", "city":"c", "stateValue":"LA", "postalCode": 11111, "phoneNumber":1234567890 }, "specialInstruction":"a" } ``` ### ONHOLD, SHIP_TO, not Save to Address Book in Profile: ``` { "deliveryOptionValue":"ONHOLD", "shippingMethodValue":"SHIP_TO", "shippingAddress":{ "nickName":"1", "firstName":"2", "lastName":"3", "address1":"4", "address2":"5", "city":"6", "stateValue":"AK", "postalCode":11111, "countryValue":"8", "phoneNumber":1234567890 }, "specialInstruction":"a" } ``` ### ONHOLD, SHIP_TO, save to Address Book in Profile: ``` { "deliveryOptionValue":"onHold", "shippingMethodValue":"SHIP_TO", "shippingAddress":{ "addressBookId":"41840007", "nickName":"asdasdas", "firstName":"2", "lastName":"3", "address1":"4", "address2":"5", "city":"6", "stateValue":"AK", "postalCode":11111, "countryValue":"8", "phoneNumber":1234567890 }, "saveShippingAddressToAddressBook":true, "specialInstruction":"a" } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/addOrderShippingInfo_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getCurrentOrderReview: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Get current order review info description: |

1. This service returns the current order review info

2. Job name and number combination rule:

1). Job Account Drop Down: the option is selected in drop-down will be filled into job number field when when invoking /submitCurrentOrder endpoint.
2). Job name text field: the value will be filled into job name field when invoking /submitCurrentOrder endpoint.

Condition

Display Rule

showJobName

jobNameRequired

showJobNumber

jobNumberRequired

Job Account Drop Down

Job Name Text Field

N N Y Y Show Job Account Drop Down, option values are retrieved from jobs array in the response payload. It is a required field Hide Job Name Text Field
Y Y N N Hide Job Account Drop Down Show Job Name Text Field, customer is able to enter job name freely, and it's required
Y N N N Hide Job Account Drop Down Show Job Name Text Field, but it is optional
Y Y Y N Show Job Account Drop Down, but it is optional Show Job Name Text Field, and it is required. Customer is able to enter job name freely, or choose an option from job account drop down, but job name text field will be auto filled once job account selected
Y N Y N Show Job Account Drop Down, but it is optional Show Job Name Text Field, and it is optional. Customer is able to enter job name freely, or choose an option from job account drop down, but job name text field will be auto filled once job account selected
### PONumber and ExtendedPO Rule: 1. The [shownExtendedPO, extendedPORequired, poRequired] fields can be obtained from '/jobs', '/getCurrentOrderReview'. 2. If shownExtendedPO is Yes, only the extended PO needs to be displayed, and extendedPORequired is used to verify whether the extended PO is Required. 3. If shownExtendedPO is NO, only the regular PO needs to be displayed, and poRequired is used to verify whether the regular PO is Required.

Required

shownExtendedPO

extendedPORequired

poRequired

Display Rule

Y Y / Only show Extended PO Text Field, and it is required.
Y N / Only show Extended PO Text Field, but it is optional.
N / Y Only show PO Text Field, and it is required.
N / N Only show PO Text Field, but it is optional.
responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getCurrentOrderReviewInfo_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /submitCurrentOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Submit current order description: | This service can submit current order apiSiteId is optional. ## Examples: ### For input po job ``` { "apiSiteId":"PWR", "poName":"poTest", "jobNumber":"SHOP" } ``` ### For submit order for approver ``` { "savedOrderName":"myTestSaveorder1", "approverId":"####", } ``` requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/submitCurrentOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/submitCurrentOrder_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getSubmitOrderResult: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Get submit order result description: | This service can get submit order result requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/getSubmitOrderResult_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getSubmitOrderResult_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /validateOrderByLocation: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: validate order pick up location inventory description: | This service can validate order pick up location inventory.
Request sample 1: Search with SkuIds and branchId combination
/v2/rest/com/becn/validateOrderByLocation?skuIds=10001:15,10002:3,10003:1&branchId=181&address=&apiSiteId=
Request sample 2: Search with orderId and branchId combination
/v2/rest/com/becn/validateOrderByLocation?orderId=o31435120&branchId=181&address=&apiSiteId=
Request sample 3: Search with branch's address and postcode
/v2/rest/com/becn/validateOrderByLocation?orderId=o31435120&address=14200%20E%20MONCRIEFF%20PLACE&postCode=90230&apiSiteId=&
OR
/v2/rest/com/becn/validateOrderByLocation?skuIds=10001:15,10002:3,10003:1&address=14200%20E%20MONCRIEFF%20PLACE&postCode=90230&apiSiteId=&
parameters: - in: query name: orderId description: ATG Order ID, or Saved Order ID, or Quote Order ID. Either orderId or skuIds is required. schema: type: string - in: query name: skuIds description: itemNumber:Quantity. e.g. skIds=10001:15,10002:3,10003:1. Either orderId or skuIds is required. schema: type: string - in: query name: branchId description: Branch legacy id schema: type: string - in: query name: address description: Branch address2 schema: type: string - in: query name: postCode description: Branch address postCode schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: type: string '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateOrderCCBillingAddress: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Checkout summary: Update Order CC Billing Address Info description: | Update order CC billing address information and send a request to the Credit Purchase API. FE needs to obtain the token from LVT and pass in Expiration Date. Customers can choose/switch which payment method to use to submit their order. The Back-end will verify the credit card information only if the customer selects "payWithCredit": true, otherwise the customer does not need to send credit card information. ## Examples: #### payWithCredit = true ``` { "payWithCredit": true, -- required, submitted by credit card "cardInfo": { "ExpMM": "string", -- required, the month is a positive integer less than 12 "ExpYY": "string", -- required, the year is 2 digits "Type": "string", -- required "FullName": "string" -- optional }, "encryptionTokenData": { "LowValueToken": "string" -- required, length <= 30 }, "addressVerificationData": { "AVSZIPCode": "string" -- optional, format is xxxxx or xxxxx-xxxx } } ``` #### payWithCredit = false ``` { "payWithCredit": false -- required, submitted by cash } ``` requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/creditpurchase_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /suggestiveSelling: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Suggestive Selling summary: Get suggestive selling info description: > This service is able to get suggestive selling info The templateId or itemNumber to be an optional parameter but either of them should be available. parameters: - in: query name: account required: false description: 'If not empty, will filter result by given account id' schema: type: string - in: query name: brandName required: false description: 'The brand name, default is ''TRI-BUILT''' schema: type: string - in: query name: templateId required: false description: 'Template ID, if empty, the ''itemNumber'' is required' schema: type: string - in: query name: itemNumber required: false description: >- Item Number, separated by comma, e.g. "241177,900612", if empty, the 'templateId' is required schema: type: string - in: query name: excludeCategory required: false description: 'Exclude category names or dimension IDs, separated by `###`, default is empty' schema: type: string - in: query name: excludeBrand required: false description: 'Exclude brand names or dimension IDs, separated by `###`, default is empty' schema: type: string - in: query name: jobNumber required: false description: The job number schema: type: string - in: query name: showItemDetails required: false description: If true, will show item details. If false, will show item number. default is true. schema: type: boolean - in: query name: showPrice required: false description: | If true, will show the newest price. If false, will show 0. default is true. If showItemDetails is false, it will be set as false. schema: type: boolean - in: query name: pageSize required: false description: The page size, default is 3 schema: type: string - in: query name: pageNo required: false description: The page number, default is 3 schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/suggestiveSelling_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getHoverJobList: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Hover Job Services summary: List hover jobs description: > This service will list the hover jobs parameters: - in: query name: pageSize description: Default page size is 1 schema: type: integer - in: query name: pageNo description: Default page no is 20 schema: type: integer - in: query name: filter description: Search filter/terms schema: type: string - in: query name: orderBy description: | Default is 'updated_at asc' ### orderBy enumeration * created_at asc/desc * updated_at asc/desc schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getHoverJobList_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getHoverJobListImage: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Hover Job Services summary: Get hover job image description: > This service will return the hover job image parameters: - in: query name: jobId description: Job ID required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getHoverJobListImage_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getHoverJobDetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Hover Job Services summary: Get hover detail description: > This service will return the hover job detail parameters: - in: query name: jobId description: Job ID required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getHoverJobDetail_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /downloadBeacon3DplusApp: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - SMS Services summary: Send SMS to end user. description: > This service will send message to user though SMS. parameters: - in: query name: phoneNumber description: phone number required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getHoverJobDetailImage: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Hover Job Services summary: Get hover job detail image description: > This service will return the hover job detail image parameters: - in: query name: imageId description: Image ID required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getHoverJobDetailImage_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getUserRegisterToken: get: tags: - User Register Services summary: Get token for user register description: > This service can return the token for user register responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/UserRegisterResponse_getUserRegisterToken' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /validateUserByEmail: post: tags: - User Register Services summary: Validate user by email description: > This service can validate the user info by email parameters: - in: header name: X-User-Register-Token schema: type: string required: true description: The token from the response of endpoint '/getUserRegisterToken' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValidateUserRegRequest_validateUserByEmail' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/UserRegisterResponse_validateUserByEmail' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /validateUserByAccount: post: tags: - User Register Services summary: Validate user by account description: > This service can validate the user info by account parameters: - in: header name: X-User-Register-Token schema: type: string required: true description: The token from the response of endpoint '/getUserRegisterToken' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ValidateUserRegRequest_validateUserByAccount' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/UserRegisterResponse_validateUserByAccount' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /register: post: tags: - User Register Services summary: Register user description: > This service can register user parameters: - in: header name: X-User-Register-Token schema: type: string required: true description: The token from the response of endpoint '/getUserRegisterToken' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserRegInfo' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/UserRegisterResponse_register' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /queryQuoteStatus: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Quote Order Services summary: Query quote status description: > This service can get quote status, includes 'expires','quoteNotesEditable','rejectEnable','reviseEnable','copyOrderEnable','approveEnable','finalizeOrderEnable' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/queryQuoteStatus_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/queryQuoteStatus_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /convertQuoteOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Quote Order Services summary: Convert quote to quote order description: > This service can convert quote to quote order parameters: - in: query name: quoteId description: Mincron quote id required: true schema: type: string - in: query name: mergeWithUpdate description: Decide copy from original or keep the update with passing this flag. It’s true by default schema: type: boolean responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: type: string '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getQuoteOrderDetail: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Quote Order Services summary: Get quote order detail description: > This service can get quote order detail parameters: - in: query name: orderId description: Quote order id required: true schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getQuoteOrderDetail_req' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateQuoteOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Quote Order Services summary: Update quote order description: > This service can update quote order, such as modifying quote order items. ## Request body: required * id: required, ATG quote order id * action: required ## items: required ### action is 'CREATE_ITEM' * itemNumber: required * quantity: required * uom: optional * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional ### Example: { "id":"27200001", "action":"create_item", "commerceItems":[ { "quantity":11, "itemNumber":"292490", "uom":"AB", "matchColor":"", "matchMFG":"" }, { "quantity":22, "itemNumber":"292490", "uom":"AB", "matchColor":"", "matchMFG":"" }, { "quantity":123, "itemNumber":"473295", "uom":"CD", "matchColor":"", "matchMFG":"" } ] } ### action is 'UPDATE_ITEM' * id: required, ATG quote order item id * itemNumber: optional * quantity: optional * uom: optional * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional * for additional item only quantity can be changed ### Example: { "id":"27200001", "displayName": "GAF Z-Ridge", "action":"update_item", "commerceItems":[ { "id":600001, "quantity":444, "itemNumber":"292490", "uom":"AB1", "matchColor":"", "matchMFG":"" }, { "id":600002, "quantity":555, "itemNumber":"473295", "uom":"CD2", "matchColor":"", "matchMFG":"" }, { "id":600003, "quantity":555 } ] } ### action is 'DELETE_ITEM' * id: required, ATG quote order item id ### Example: { "id":"27200001", "action":"delete_item", "commerceItems":[ { "id":600001 }, { "id":600002 } ] } other fields not listed above will be ignored. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateQuoteOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/updateQuoteOrder_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /updateQuoteOrderShippingInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Quote Order Services summary: Update quote order shipping information description: > This service can update quote order shipping information ## Request body: required * id: required, ATG quote order id * deliveryOption: "scheduled" or "onHold", when "scheduled", "deliveryDate" and "deliveryTime" is needed * shippingMethod: "Ship_to" or "Pick_up" ## `scheduled` & `Pick_up` example : { "id":"27200001", "deliveryOption":"scheduled", "deliveryDate":"04-14-2020", "deliveryTime":"12", "shippingMethod":"Pick_up", "shippingAddress":{ "postalCode":"11111", "state":"CA", "address1":"a", "address2":"b", "address3":"c", "country":"d", "city":"e" }, "branchName":"f", "contactInfo":{ "firstName":"g", "lastName":"h", "nickName":"i", "phoneNumber":"1234567890" }, "instructions":"orderNotes" } ## `onHold` & `Ship_to` example : { "id":"27200001", "deliveryOption":"onHold", "deliveryDate":"03-01-2018", "deliveryTime":"Anytime", "shippingMethod":"Ship_to", "shippingAddress":{ "postalCode":"11111", "state":"CA", "address1":"a", "address2":"b", "address3":"c", "country":"", "city":"e" }, "branchName":"f", "contactInfo":{ "firstName":"g", "lastName":"h", "nickName":"i", "phoneNumber":"1234567890" }, "instructions":"orderNotes" } other fields not listed above will be ignored. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateQuoteOrderShippingInfo_req' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getQuoteOrderPrice: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Quote Order Services summary: Get quote order price description: > This service can update quote order price parameters: - in: query name: orderId description: ATG Quote Order ID required: true schema: type: string - in: query name: jobNumber description: Job Number schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getQuoteOrderPrice_rep' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /placeQuoteOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Quote Order Services summary: Place quote order description: > This service can convert quote order to atg order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/placeQuoteOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: type: string '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getCurrentUserLastSelectedJobInfo: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Job Service summary: Get last selected job info of current user description: >- This service returns the last selected job info of current user parameters: - in: query name: jobNumber description: Job Number, optional, if empty, will return profile last selected job number info; if not empty, will return this given job number info schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: $ref: '#/components/schemas/getCurrentUserLastSelectedJobInfoRep' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /placeEagleViewOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: Create the eagle view order description: >- This service is the primary mechanism of the eagle view ordering process, as it will actually create the order. A successful PlaceOrder call will return a unique Report Id, which can then be used in other method calls. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/eagleViewPlaceOrder_req' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: $ref: '#/components/schemas/eagleViewPlaceOrder_resp' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /placeEagleViewUpgradeOrder: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: Upgrading a report to a premium report. description: >- This service is used for upgrading a report to a premium report. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/eagleViewPlaceUpgradeOrder_req' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: $ref: '#/components/schemas/eagleViewPlaceUpgradeOrder_resp' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getEagleViewOrderReport: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: Get eagle view order report description: >- This service will return information about a single report. parameters: - in: query name: reportId description: Report Id. required: true schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: $ref: '#/components/schemas/getEagleViewOrderReport_resp' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getEagleViewOrderUpgradeProducts: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: Get eagle view order upgrade products. description: >- This service is useful in determining to which products the specified report can be upgraded. parameters: - in: query name: reportId description: Report Id. required: true schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: $ref: '#/components/schemas/getEagleViewOrderUpgradeProducts_resp' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getEagleViewOrderReportV3: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: Get eagle view order report use v3 description: >- This service will return information about a single report. parameters: - in: query name: reportId description: Report Id. required: true schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: $ref: '#/components/schemas/getEagleViewOrderReportV3_resp' '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /submitQuoteOrderForApproval: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Quote Order Services summary: Convert quote order to a saved order and submit saved order for approval description: | This service can convert quote order to a saved order and submit saved order to approver. orderId is a required field and it's quoteOrderId that is generated when quote coverted to order. savedOrderName is a required field. ATG will generate save order with it. So, it doesn't need to invoke saveOrder service to create save order. approverId is a required field. Please Retrieve approverList by endpoint "/approver". ## Examples: ### ``` { "orderId":"qo9200001", "savedOrderName":"test", "approverId":"user41240006", "poName": "string", "jobName": "string", "jobNumber": "string", "additionalRecipients": [ "string" ] } ``` requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/submitQuoteOrderForApproval_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/submitQuoteOrderForApproval_resp' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /getOktaEagleViewLoginUrl: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: Generate Current user okta eagle view redirect url description: >- This service will return okta eagle view redirect url responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: type: object properties: oktaLoginLink: type: string '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /exchangeOktaEagleViewAuthorizationCode: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Eagle View Order summary: Exchange token by authorizationCode description: | This service exchange access token by authorizationCode ## Examples: ### ``` { "code":"xxxxx", "state":"xxxxxxx", "error":"xxxxx", "errorDescription":"xxxxx" } ``` requestBody: required: true content: application/json: schema: type: object properties: code: type: string state: type: string error: type: string errorDescription: type: string responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /unlinkEVAccount: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: unlink current user private eagle view token description: >- This service will unlink okta eagle view token responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getEagleViewOrderReports: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] tags: - Eagle View Order summary: Get specific pieces of data for a range of reports description: | This service is generally used as a means of searching reports on the authenticated user's account. parameters: - in: query name: page description: Page number. required: true schema: type: integer default: 1 - in: query name: count description: Count of reports to return. required: true schema: type: integer default: 10 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GetEagleViewOrderReports_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/GetEagleViewOrderReports_resp' '401': description: 'Unauthorized, the authorization bearer token is invalid' '403': description: 'Forbidden, user do not has permission to access this API' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '419': description: 'Unauthorized, the authorization bearer token is expired' '500': description: Internal exception /healthCheck: get: tags: - Health Check summary: Site health check description: | Check if site is up responses: '200': description: | Successful operation, site is up. '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getEagleViewOrderReportFileAnyFormat (under development): get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Eagle View Order summary: This service allows the authenticating user to retrieve files generated for a report. description: >- This service allows the authenticating user to retrieve files generated for a report.Please note that a report file can only be retrieved if it has been generated parameters: - in: query name: reportId description: ReportId of the order placed. required: true schema: type: string - in: query name: fileType required: true schema: type: integer description: > Available DeliveryFileTypes. * `2` - Invoice of the order. * `3` - Premium report. * `4` - Neighborhood report. * `5` - Exclusive cover page. * `6` - Top image of the property. * `7` - Parking lot report. * `8` - SunSite report. * `12` - Property owner report. * `13` - Pre-standard report. * `17` - Images only report. * `18` - EagleView xml. * `22` - North image of the property. * `23` - South image of the property. * `24` - East image of the property. * `25` - West image of the property. * `26` - Autodesk DXF file. * `27` - Applicad Roof Exchange Format file (RXF). * `28` - Length diagram from the report. * `29` - Notes diagram from the report. * `31` - Pitch diagram from the report. * `32` - Area diagram from the report. * `42` - Detailed length diagram from the report. * `43` - Notes diagram with no labels from the report. * `51` - ClaimsReady report. * `52` - AA3D report. * `53` - AA2D report. * `71` - EC3D report. * `73` - EC2D report. * `75` - EC Premium report. * `76` - Premium AW report. * `77` - Walls add-on report. * `79` - Wall area diagram from the report. * `80` - Alternate wall view from the report. * `81` - Missing wall diagram from the report. * `82` - North elevation diagram from the report. * `83` - South elevation diagram from the report. * `84` - East elevation diagram from the report. * `85` - West elevation diagram from the report. * `86` - Roof penetration diagram from the report. * `87` - WallsOnly report. * `88` - WallsOnly meta data. * `89` - Risk Management meta data. * `90` - Living area diagram from the report. * `91` - Walls diagram with no labels from the report. * `92` - Area view image from the report. * `93` - Pitch roof penetration diagram from the report. * `94` - Building footprint diagram from the report. * `95` - Sitemap diagram from the report. * `96` - Outbuilding diagram from the report. * `98` - Roof geometry report. * `105` - QuickSquares report. * `107` - EagleView measurement JSON. * `109` - Gutter report. * `111` - Diagram report. * `116` - QuickSquares EC report. * `118` - EC2D Pre-pitch Report. * `121` - WallsLite report. * `132` - SunSite Complete Report. responses: '200': content: application/*: schema: type: object format: byte description: | Example { ByteArrayContent of the file } description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "message": "Validation exception" } '400': description: 'Bad Request, accountId is invalid' '401': description: 'Unauthorized, user do not login' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /updateNewUserTour: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - User Tour Services summary: collect user tour requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateNewUserTourReq' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getNewUserTour: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - User Tour Services summary: get user tour responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getNewUserTourResp' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /updateMobileDevice: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - My Account Services summary: update user account mobile device token requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateMobileDeviceReq' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /deleteMobileDevice: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - My Account Services summary: Delete user account mobile device token requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deleteMobileDeviceTokenReq' responses: '200': description: | successful operation refer to *API Uniform Format* '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /saveDeliverySetting: post: tags: - Delivery Tracking Service summary: save Delivery Notification Setting (Mobile) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/saveDeliverySettingReq' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/saveDeliverySetting_rep' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getDeliverySetting: get: tags: - Delivery Tracking Service summary: get Delivery Notification Setting responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/getDeliverySetting_rep' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /createEVOrder: post: tags: - EV Measurement to Order summary: Create a new EV order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/createEVOrder_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/createEVOrder_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getEVOrderCategories: get: tags: - EV Measurement to Order summary: Get given categories responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/getEVOrderCategory_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /getEVOrder: get: tags: - EV Measurement to Order summary: Get given EV order parameters: - in: query name: evOrderId schema: type: string required: true description: EV Order ID responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/getEVOrder_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /editEVOrder: post: tags: - EV Measurement to Order summary: Edit user given EV order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/editEVOrder_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/editEVOrder_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /deleteEVOrder: post: tags: - EV Measurement to Order summary: Delete given EV order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deleteEVOrder_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/deleteEVOrder_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /deleteEVOrderItem: post: tags: - EV Measurement to Order summary: Delete exist item from given order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deleteEVItem_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/deleteEVItem_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /addEVOrderItem: post: tags: - EV Measurement to Order summary: Add EV item to given order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/addEVOrderItem_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/addEVOrderItem_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /editEVOrderItem: post: tags: - EV Measurement to Order summary: Edit exist item for given order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/editEVOrderItem_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/editEVOrderItem_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /doMeasurementCalculation: post: tags: - EV Measurement to Order summary: Get recommend quantity by measurement data requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/measurementCalculation_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/measurementCalculation_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /saveAllToEVOrder: post: tags: - EV Measurement to Order summary: Save all items to EV order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/saveAll_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/getEVOrder_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /EVOrderList: get: tags: - EV Measurement to Order summary: Get all EV orders of current user parameters: - in: query name: searchBy schema: type: string description: | ##### searchBy enumeration * isCompleted - in: query name: searchTerm schema: type: string description: | ##### When 'searchBy' is one of the following enumeration, the 'searchTerm' should be populated. * isCompleted ##### When 'searchBy' is 'isCompleted', the searchTerm must be true or false. - in: query name: pageSize schema: type: string description: Default page size is 20 - in: query name: pageNo schema: type: string description: Default page No is 1 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/evOrderListRep' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /convertEVOrderToATGOrder: post: tags: - EV Measurement to Order summary: Convert EV order to atg order requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/convertEVOrderToAtgOrder_req' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/convertEVOrderToAtgOrder_res' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /deleteAccount: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - My Account Services summary: Delete account requestBody: required: true content: application/json: schema: type: object properties: name: type: string email: type: string phoneNumber: type: string accountNumber: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to messageCode doc. Example { "messageCode": "1001", "message": "Validation exception" } content: application/json: schema: type: object properties: messageInfo: type: string example: Delete account successful '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /getNotifications: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Delivery Tracking Service summary: Get user notifications parameters: - in: query name: pageSize description: Default page size is 10 schema: type: integer - in: query name: pageNo description: Default page no is 1 schema: type: integer - in: query name: accountID description: Account number schema: type: string - in: query name: isRead description: query all notifications when isRead is null and query the corresponding notifications when isRead is true or false schema: type: boolean responses: '200': description: | successful operation content: application/json: schema: $ref: '#/components/schemas/getNotifications_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /modifyReadStatus: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Delivery Tracking Service summary: Modify notification read status requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserNotificationModification_req' responses: '200': description: | successful operation refer to *API Uniform Format* '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /deleteNotifications: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Delivery Tracking Service summary: Delete Notifications requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/deleteNotifications_req' responses: '200': description: | successful operation refer to *API Uniform Format* '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /deleteAllNotifications: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Delivery Tracking Service summary: Delete All Notifications responses: '200': description: | successful operation refer to *API Uniform Format* '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /invoiceHistory: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Order History Services summary: Get invoice history for the given account parameters: - in: query name: apiSiteId description: Site Id schema: type: string - in: query name: accountId description: Account ID required: true schema: type: string - in: query name: company description: Company Number required: true schema: type: string - in: query name: branchNumber description: Branch number required: true schema: type: string - in: query name: pageSize description: Default page size is 25, max 100 schema: type: integer - in: query name: pageNo description: Default page no is 1 schema: type: integer - in: query name: searchBy schema: type: string description: | searchBy enumeration * OrderPlacedDate * OrderNumber * OrderStatus * UUID * OrderId - in: query name: searchTerm schema: type: string description: | When 'searchBy' is one of the following enumeration, the 'searchTerm' should be populated * OrderNumber * UUID * OrderId - in: query name: searchStartDate schema: type: string format: MM-DD-YYYY description: | When 'searchBy' is 'OrderPlacedDate', the 'searchStartDate' should be populated, format should be 'MM-DD-YYYY', e.g. '01-05-2021',the searchStartDate limit to the past year. - in: query name: searchEndDate schema: type: string format: MM-DD-YYYY description: | When 'searchBy' is 'OrderPlacedDate', the 'searchEndDate' should be populated, format should be 'MM-DD-YYYY', e.g. '01-05-2021' - in: query name: searchEnum schema: type: string description: | When 'searchBy' is 'OrderStatus', the 'searchEnum' should be one of the following enumeration: * Delivered * Invoiced * Pending * Processing * ReadyDeliveryOrPickUp * DeliveredOrInvoiced - in: query name: queryCompany description: Default queryCompany is true schema: type: boolean responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/invoiceHistoryRes' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /shareDeliveryPhotos: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - My Account Services summary: Share Delivery Photos to gaven emails requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/shareDeliveryPhotos_req' responses: '200': description: | successful operation refer to *API Uniform Format* '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /getAccountOSRAndBMInfo: post: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - My Account Services summary: Get the OSR and BM info for the given account parameters: - in: query name: accountId required: true description: Account ID schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getAccountOSRAndBMInfo_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /getAssignedEnterpriseAccounts: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - My Account Services summary: Get the assigned enterprise accounts responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/getAssignedEnterpriseAccounts_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: 'Internal exception' /updateFavorites: post: tags: - Favorites Services summary: This service can update favorites items. description: | This service can update favorites items. ### Request body: required * account: required * action: required * categorySort: optional (when action is 'updateItem') ### items: required ##### action is 'createItem' * itemNumber: required * unitOfMeasure: optional (will query default uom for sku when request value is null) * quantity: required * nickName: optional * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional ##### action is 'updateItem' * itemId: required * itemNumber: required * unitOfMeasure: optional (will query default uom for sku when request value is null) * quantity: required * nickName: optional * matchColor: optional, format: "vendor color name(code)", e.g. "Gunmetal Grey(010)" or just "vendor color name", e.g. "Gunmetal Grey" * matchMFG: optional ##### action is 'deleteItem' * itemId: optional (any one of itemId or itemNumber is required) * itemNumber: optional (any one of itemId or itemNumber is required) * unitOfMeasure: optional (if value is not empty, will combine itemNumber to delete favorites item) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/updateFavorites_req' responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/updateFavorites_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: 'Internal exception' /getFavoritesCategories: get: tags: - Favorites Services summary: This service can get categories of favorites items. responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getFavoritesCategories_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: 'Internal exception' /getFavorites: get: tags: - Favorites Services summary: This service can get favorites items. parameters: - in: query name: account required: true description: This is required schema: type: string - in: query name: jobNumber description: Job Number schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getFavorites_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: 'Internal exception' /getAccountFavorites: get: tags: - Favorites Services summary: This service can get account favorites item numbers. parameters: - in: query name: accountId required: false description: This is optional schema: type: string responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/getAccountFavorites_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: 'Internal exception' /getBranchItemQty: get: tags: - Catalog ITEM Services summary: query branch item quantity parameters: - in: query name: itemNumbers schema: type: string description: one or more item number, mutil value should separate by comma required: true - in: query name: accountId schema: type: string - in: query name: branchId schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/queryBranchItemQtyRep' '401': description: 'Unauthorized, the authorization token is invalid' '405': description: 'Method not allowed, the request method is not valid for this API or this API is not available.' '500': description: Internal exception /loyalreward: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - Loyal Reward Services summary: Get the loyal info for the given account parameters: - in: query name: accountId required: false description: Account ID - Optional, it will get the Last Selected Account from profile if the parameter accountId is absent schema: type: string responses: '200': description: | successful operation If failed, return messageCode, refer to *API Response Message Code*. Example { "messageCode": "1001", "messages": [{"type":"error", "value": "Validation exception", "code":"1001"}], "success":false } content: application/json: schema: $ref: '#/components/schemas/loyalreward_rep' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: Internal exception /quickMeasure/placeReportOrder: post: tags: - GAF Quick Measure Services summary: This service use for submit report order to GAF. description: | ### Request body: required * emailAddress: required * productCode: required * address1: required * city: required * stateOrProvince: required * postalCode: required * country: required * latitude: required * longitude: required * fullAddress: required, e.g. "3530 Tuxedo Park NW, Atlanta, GA 30305, USA" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GAFPlaceReportOrder_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/GAFPlaceReportOrder_res' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: 'Internal exception' /quickMeasure/callback: post: tags: - GAF Quick Measure Services summary: This service use for receive a report. description: | This API can only be called using the token from the IDP server. IDP BASE URL: [ PROD BASE URL: *https://identity.becn.com/auth/realms/master/protocol/openid-connect/token* ] [ UAT BASE URL: *https://identity-uat.becn.com/auth/realms/master/protocol/openid-connect/token* ] [ DEV BASE URL: *https://identity-dev.becn.com/auth/realms/master/protocol/openid-connect/token* ] ### Request body: required * GAFOrderNumber: required requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GAFQuickMeasureCallback_req' responses: '200': description: | successful operation refer to *API Uniform Format* content: application/json: schema: $ref: '#/components/schemas/GAFQuickMeasureCallback_res' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized, user do not login' '500': description: 'Internal exception' /quickMeasure/siteStatus: get: security: - JSESSIONID: [ ] DYN_USER_ID: [ ] DYN_USER_CONFIRM: [ ] siteId: [ ] rememberPassword: [ ] tags: - GAF Quick Measure Services summary: Get the GAF site status responses: '200': description: | successful operation content: application/json: schema: $ref: '#/components/schemas/GAFGetStatus_res' '400': description: 'Bad Request, the request method is not valid' '401': description: 'Unauthorized' '500': description: Internal exception