openapi: 3.0.1 info: version: 1.0.0 title: OneRail Operation Dashboard description: Defines Operations Dashboard APIs license: name: UNLICENSED url: '' servers: - url: / description: Default relative server URL security: - bearer: [] paths: /: x-exegesis-controller: Home get: summary: Health check operationId: index security: [] tags: - Home responses: '200': description: Success content: application/json: schema: type: object head: operationId: healthCheck responses: default: description: Health check passed. security: [] summary: Health check tags: - HealthCheck /health/ready: x-exegesis-controller: ReadinessCheck get: summary: Readiness check operationId: getReadinessCheck security: [] tags: - Readiness Check responses: '200': description: Service is ready. content: application/json: schema: type: object '503': description: Service is not ready content: application/json: schema: type: object /v1/login/ord-sso-assert-and-login/{organizationId}: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Authentication summary: Post assert SAML data to OneRail then generate Access Token operationId: ordSsoAssertAndLogin tags: - Authentication security: [] requestBody: required: true content: application/json: schema: type: object description: User's authentication response. properties: accessToken: type: string description: User's JWT token refreshToken: type: string description: Token client can use to refresh access token id: type: string description: User's ID emailAddress: type: string description: User's Email address firstName: type: string description: User's Firstname lastName: type: string description: User's Lastname organizationId: type: string description: User's Organization ID redirectUrl: type: string description: SSO Redirect URL responses: '200': description: Redirect default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/login: post: x-exegesis-controller: Authentication summary: Login User. operationId: login tags: - Authentication security: [] requestBody: required: true content: application/json: schema: type: object required: - emailAddress - password properties: emailAddress: $ref: '#/paths/~1v1~1reset-password/post/requestBody/content/application~1json/schema/properties/emailAddress' password: type: string description: Password format: password responses: '200': description: User Authentication Payload content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1refresh-token/post/responses/200/content/application~1json/schema' - type: object description: User required: - emailAddress - firstName - lastName - organizationId properties: id: type: string createdById: type: string emailAddress: type: string format: email firstName: type: string lastName: type: string phoneNumber: type: string nullable: true active: type: boolean driver: description: Driver type: object nullable: true default: null properties: id: type: string format: uuid nullable: true enableDriverPayout: type: boolean nullable: true driverPayoutBaseRate: type: number format: float driverPayoutUseDefault: type: boolean nullable: true title: type: string nullable: true organizationId: type: string format: uuid teamIds: type: array items: type: string format: uuid roles: type: array items: type: object description: Role required: - id - name properties: id: type: string format: uuid name: type: string employeeId: type: string nullable: true fleetId: type: string nullable: true mvrCertified: type: boolean nullable: false default: false organizations: type: array items: type: string preferences: $ref: '#/paths/~1v1~1preferences~1%7BcontextId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/login/sso-token: post: x-exegesis-controller: Authentication summary: Login User with a single sign on token. operationId: loginWithSsoToken tags: - Authentication security: [] requestBody: required: true content: application/json: schema: type: object required: - ssoToken properties: ssoToken: type: string emailAddress: $ref: '#/paths/~1v1~1reset-password/post/requestBody/content/application~1json/schema/properties/emailAddress' responses: '200': description: User Authentication Payload content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1refresh-token/post/responses/200/content/application~1json/schema' - $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/verify-email: get: x-exegesis-controller: Authentication summary: Verify a FedEx SSO merchant email address. operationId: verifyEmail tags: - Authentication security: [] parameters: - name: verificationToken in: query required: true schema: type: string description: JWT verification token from the email verification link. responses: '302': description: Redirects to the FedEx frontend with either ssoToken or emailVerificationError query params. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/refresh-token: post: x-exegesis-controller: Authentication summary: Refresh JWT token description: Refreshes JWT token operationId: refreshToken tags: - Authentication security: [] requestBody: required: true content: application/json: schema: required: - refreshToken properties: refreshToken: type: string description: Token client can use to refresh access token responses: '200': description: Refreshed access token content: application/json: schema: type: object description: User's authentication payload. required: - accessToken - refreshToken properties: accessToken: type: string description: User's JWT token refreshToken: type: string description: Token client can use to refresh access token default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/reset-password: post: x-exegesis-controller: Authentication summary: Reset user password description: Kicks off user's password reset process and sends an email operationId: resetPassword security: [] tags: - Authentication requestBody: required: true content: application/json: schema: type: object required: - emailAddress properties: emailAddress: type: string description: Email address format: email uiRedesign: type: boolean description: Set to true for redesign link default: false responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' /v1/reset-token-valid: post: x-exegesis-controller: Authentication summary: Check validity of reset token description: Check validity of reset token operationId: validateResetToken tags: - Authentication security: [] requestBody: required: true content: application/json: schema: required: - resetToken properties: resetToken: type: string description: Token client can use to reset password responses: '200': description: is Reset token valid content: application/json: schema: type: object properties: success: type: boolean description: True if operation was successful default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/update-password: post: x-exegesis-controller: Authentication summary: Updates user's password. operationId: updatePassword security: [] tags: - Authentication requestBody: required: true content: application/json: schema: type: object required: - resetToken - newPassword properties: resetToken: type: string description: reset token newPassword: description: User's new password $ref: '#/paths/~1v1~1login/post/requestBody/content/application~1json/schema/properties/password' responses: '200': description: access and refresh tokens content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1refresh-token/post/responses/200/content/application~1json/schema' - $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/check-sso: post: x-exegesis-controller: Authentication summary: Check user if part of single sign on org. operationId: checkSSO tags: - Authentication security: [] requestBody: required: true content: application/json: schema: type: object required: - emailAddress properties: emailAddress: $ref: '#/paths/~1v1~1reset-password/post/requestBody/content/application~1json/schema/properties/emailAddress' organizationId: type: string description: Optional organization ID to bypass email-domain lookup (e.g. for dedicated client login pages). responses: '200': description: Returns array of redirect URLs if they exist content: application/json: schema: type: array items: type: object description: Array of user organization redirect URLs for single sign on, or empty array. properties: redirectUrl: type: string description: URL to organizations single sign on. organizationName: type: string description: Name of the organization default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/zendesk-sso: get: x-exegesis-controller: Authentication summary: Check user and returns Zendesk KH Auth token operationId: zendeskSSOToken tags: - Authentication responses: '200': description: Returns token content: application/json: schema: type: object properties: token: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/sso-multi-organizations: post: x-exegesis-controller: Authentication summary: Get list of related organizations that share an ssoEmailSuffix. operationId: ssoMultiOrganizations tags: - Authentication security: [] requestBody: required: true content: application/json: schema: type: object required: - emailAddress properties: emailAddress: $ref: '#/paths/~1v1~1reset-password/post/requestBody/content/application~1json/schema/properties/emailAddress' responses: '200': description: Returns array of organizations matching the provided ssoEmailSuffix if they exist content: application/json: schema: type: array items: type: object description: Array of organizations that share an ssoEmailSuffix. properties: id: type: string description: Organization's ID name: type: string description: Name of the organization default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/assert/{organizationId}: parameters: - name: organizationId in: path required: true description: 'Organization id for SAML ACS. For FedEx **customer (child org)** SSO, this is the same value as the integration doc’s `userCheck` segment (child org id in OneRail). FedEx IdP has no org concept; OneRail still routes the POST using the child org id encoded in this path. ' schema: type: string post: x-exegesis-controller: Authentication summary: Post assert SAML data to OneRail operationId: assert tags: - Authentication security: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object application/json: schema: type: object responses: '200': description: Redirect default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/saml/{organizationId}/metadata.xml: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Authentication summary: Get organization saml metadata.xml operationId: getOrganizationSaml tags: - Authentication security: [] responses: '200': description: SAML XML default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organizations: get: x-exegesis-controller: Organization summary: Get all organizations user has access to operationId: getAllOrganizations tags: - Organization parameters: - name: name in: query description: Partial Organization name required: false schema: type: string minLength: 3 - name: active in: query required: false description: Filter by active status schema: type: boolean - name: type in: query required: false description: Shipper or LP schema: type: string enum: - LP - SHIPPER - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC responses: '200': description: Organization Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v2/organizations: get: x-exegesis-controller: Organization summary: Get all organizations user has access to, with reduced payload operationId: getAllV2 tags: - Organization parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: search in: query description: Search term required: false schema: type: string - name: active in: query description: Filter by activeness status (optional) required: false schema: type: boolean responses: '200': description: Organization Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: Organization properties: id: type: string format: uuid name: type: string active: type: boolean organizationTypes: type: array items: type: string organizationTree: $ref: '#/paths/~1v1~1organization/post/responses/200/content/application~1json/schema/properties/organizationTree' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v3/organizations: post: x-exegesis-controller: Organization summary: Get all organizations user has access to, with reduced payload operationId: listOrganizationsV3 tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Query parameters for listing organizations required: - offset - limit properties: offset: type: integer minimum: 0 default: 0 description: Number of items to skip before returning the results. limit: type: integer minimum: 1 default: 20 description: Maximum number of items to return. sortby: type: string description: Field to sort by order: type: string default: DESC enum: - ASC - DESC description: Sort order search: type: string description: Search term active: type: boolean description: Filter by activeness status (optional) organizationIds: type: array items: type: string format: uuid description: 'Inclusive allowlist of organization IDs to return. Results are still constrained by the caller’s access permissions. ' organizationTypes: type: array items: type: string format: uuid description: Filter by organization types IDs (optional) parentOrganization: type: string format: uuid description: Filter by parent organization ID (optional) dateCreated: type: object properties: from: type: string format: date description: Start date (YYYY-MM-DD) to: type: string format: date description: End date (YYYY-MM-DD) description: Filter by creation date range (optional) onboardingStatus: type: string enum: - discovery - in progress - completed description: Filter by onboarding status (optional) responses: '200': description: Organization Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object additionalProperties: false required: - data properties: data: type: array items: type: object description: Organization (V3 reduced payload) additionalProperties: false required: - id - name - active - organizationTypes properties: id: type: string format: uuid name: type: string active: type: boolean createdAt: type: string format: date-time onboardingStatus: type: string nullable: true organizationTypes: type: array nullable: true items: type: string organizationTree: type: object description: Organization tree summary (V3) additionalProperties: false required: - id properties: id: type: string format: uuid name: type: string description: Organization name (tree context) parentOrganization: $ref: '#/paths/~1v3~1organizations/post/responses/200/content/application~1json/schema/allOf/1/properties/data/items/properties/organizationTree/properties/rootOrganization' rootOrganization: type: object description: Parent organization summary (V3) additionalProperties: false required: - id properties: id: type: string format: uuid name: type: string nullable: true description: Parent organization name (may be null if not resolved) default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organizations/users: post: x-exegesis-controller: Organization summary: Search Users in different organizations operationId: searchUsers tags: - Organization requestBody: required: true content: application/json: schema: type: object required: - offset - limit properties: offset: description: Number of items to skip before returning the results. type: integer minimum: 0 example: 0 limit: description: Maximum number of items to return. type: integer minimum: 1 example: 20 sortby: description: Field to sort by type: string order: description: Sort order type: string default: DESC enum: - ASC - DESC search: description: String to search type: string organizationId: description: organizationId to check permission for type: string format: uuid nullable: true permission: description: Restrict results to users holding this permission in the organization. type: string nullable: true filter: description: Filters to apply type: array items: type: object required: - field - value properties: field: type: string enum: - emailAddress - firstName - lastName value: type: string responses: '200': description: User Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: User required: - emailAddress - firstName - lastName - organizationId properties: id: type: string createdById: type: string emailAddress: type: string format: email firstName: type: string lastName: type: string phoneNumber: type: string nullable: true active: type: boolean driver: $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1/properties/driver' title: type: string nullable: true organizationId: type: string format: uuid roles: type: array items: $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1/properties/roles/items' employeeId: type: string nullable: true fleetId: type: string nullable: true mvrCertified: type: boolean nullable: false default: false organizations: type: array items: $ref: '#/paths/~1v1~1organization/post/responses/200/content/application~1json/schema/properties/organizationTree' locationIds: type: array items: type: string format: uuid teamIds: type: array items: type: string format: uuid lastKnownDriverLocation: type: object nullable: true properties: latitude: type: number longitude: type: number default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization: post: x-exegesis-controller: Organization summary: Creates a new Organization operationId: createOrganization tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Organization required: - name - onboardingStatus - active - entityTypeId - organizationTypes - insuranceAndCompliance properties: name: type: string logoImageURL: type: string nullable: true federalTaxId: type: string nullable: true supportEmail: type: string nullable: true websiteURL: type: string nullable: true onboardingStatus: type: string enum: - discovery - in progress - completed hoursOfOperation: type: object active: type: boolean dot: type: string nullable: true demandSignals: type: string nullable: true lpGig: type: boolean nullable: true certificationOfInsuranceURL: type: string nullable: true w9FormURL: type: string nullable: true primaryContactId: type: string nullable: true operationsContactId: type: string nullable: true technicalContactId: type: string nullable: true billingContactId: type: string nullable: true organizationTypes: type: array items: type: string entityTypeId: type: string dispatchPlatformId: type: string nullable: true locationId: type: string nullable: true ach: type: string nullable: true mc_mx_ff: type: string nullable: true carrierCode: type: string nullable: true fmcsa: type: string enum: - active - inactive - suspended - null nullable: true insuranceAndCompliance: $ref: '#/paths/~1v1~1lp-market/post/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' dynamicPriceLp: type: boolean nullable: true autoDispatchDeliveries: type: boolean default: false ignoreFromLocation: type: boolean default: false outOfNetworkCapable: type: boolean default: false autoAssignDriver: type: boolean default: false organizationTree: type: object properties: parentOrganizationId: type: string format: uuid nullable: true providesShippingLabels: type: boolean default: false displayBarcode: type: boolean default: false barcodeType: type: string enum: - code128 - qrcode - azteccode - azteccodecompact - codablockf - code16k - code39ext - code93ext - codeone - datamatrix - datamatrixrectangular - datamatrixrectangularextension - dotcode - hanxin - maxicode - micropdf417 - pdf417 - pdf417compact - posicode - swissqrcode - telepen - ultracode barcodeAttribute: type: string enum: - Order Id - Route Id - Shipment Id - Container Id - Tracking Number - Item Identifier podAiFilterLevel: type: number nullable: true preferences: $ref: '#/paths/~1v1~1preferences~1default/get/responses/200/content/application~1json/schema' faviconImageUrl: type: string nullable: true accountManager: type: string format: uuid nullable: true clientServiceManager: type: string format: uuid nullable: true privacyPolicyApproverUserId: type: string format: uuid nullable: true accountManagementNotes: type: string nullable: true maxLength: 10000 dotNumber: type: number nullable: true organizationHazmatSettings: nullable: true type: object description: Organization Hazmat Settings Create payload required: - isShippingEnabled properties: isShippingEnabled: type: boolean classes: type: array items: type: string enum: - '1.1' - '1.2' - '1.3' - '1.4' - '1.5' - '1.6' - '2.1' - '2.2' - '2.3' - '3' - '4.1' - '4.2' - '4.3' - '5.1' - '5.2' - '6.1' - '6.2' - '7' - '8' - '9' maxRouteWeight: type: number default: 0 minItemValueCent: type: number default: 0 maxItemValueCent: type: number default: 0 minItemWeightLb: type: number default: 0 maxItemWeightLb: type: number default: 0 minItemCubicVolumeFt: type: number default: 0 maxItemCubicVolumeFt: type: number default: 0 minItemLengthIn: type: number default: 0 maxItemLengthIn: type: number default: 0 minItemWidthIn: type: number default: 0 maxItemWidthIn: type: number default: 0 minItemHeightIn: type: number default: 0 maxItemHeightIn: type: number default: 0 maxWattHours: type: number default: 0 enableColumnMapping: type: boolean nullable: true enableDriverPayout: type: boolean nullable: true enableForEmployeeDrivers: type: boolean nullable: true enableForFreelanceDrivers: type: boolean nullable: true driverPayoutRate: type: number ean: type: string nullable: true columnMappings: type: array items: type: object properties: id: type: string nullable: true isEnabled: type: boolean inputFieldName: type: string mappedToColumn: type: string enum: - customColumn_1 - customColumn_2 - customColumn_3 - customColumn_4 - customColumn_5 - customColumn_6 - customColumn_7 - customColumn_8 - customColumn_9 - customColumn_10 responses: '200': description: Organization content: application/json: schema: type: object description: Organization properties: id: type: string format: uuid name: type: string logoImageURL: type: string nullable: true federalTaxId: type: string nullable: true supportEmail: type: string nullable: true websiteURL: type: string nullable: true onboardingStatus: type: string enum: - discovery - in progress - completed hoursOfOperation: type: object active: type: boolean dot: type: string nullable: true demandSignals: type: string nullable: true lpGig: type: boolean nullable: true certificationOfInsuranceURL: type: string nullable: true w9FormURL: type: string nullable: true primaryContactId: type: string nullable: true operationsContactId: type: string nullable: true technicalContactId: type: string nullable: true billingContactId: type: string nullable: true organizationTypes: type: array items: type: string entityTypeId: type: string dispatchPlatformId: type: string nullable: true locationId: type: string nullable: true ach: type: string nullable: true mc_mx_ff: type: string nullable: true carrierCode: type: string nullable: true fmcsa: type: string enum: - active - inactive - suspended - null nullable: true insuranceAndCompliance: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' dynamicPriceLp: type: boolean nullable: true autoDispatchDeliveries: type: boolean ignoreFromLocation: type: boolean outOfNetworkCapable: type: boolean autoAssignDriver: type: boolean organizationTree: type: object description: Organization tree required: - id - parentOrganizationId - rootOrganizationId - name properties: id: type: string format: uuid parentOrganization: type: object description: Parent organization properties: id: type: string format: uuid name: type: string rootOrganization: type: object description: Root organization properties: id: type: string format: uuid name: type: string name: description: Organization name (its only on organizationTree response) type: string providesShippingLabels: type: boolean displayBarcode: type: boolean barcodeType: type: string enum: - code128 - qrcode - azteccode - azteccodecompact - codablockf - code16k - code39ext - code93ext - codeone - datamatrix - datamatrixrectangular - datamatrixrectangularextension - dotcode - hanxin - maxicode - micropdf417 - pdf417 - pdf417compact - posicode - swissqrcode - telepen - ultracode barcodeAttribute: type: string enum: - Order Id - Route Id - Shipment Id - Container Id - Tracking Number - Item Identifier podAiFilterLevel: type: number nullable: true accountManager: type: string format: uuid nullable: true clientServiceManager: type: string format: uuid nullable: true accountManagementNotes: type: string nullable: true maxLength: 10000 accountManagerUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string clientServiceManagerUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string preferences: $ref: '#/paths/~1v1~1preferences~1%7BcontextId%7D/get/responses/200/content/application~1json/schema' ean: type: string nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/preferences/api: get: x-exegesis-controller: Organization security: - ApiKey: [] AppId: [] summary: Get organization preferences by api key and appId operationId: getPreferenceViaApi tags: - Organization responses: '200': $ref: '#/paths/~1v1~1preferences~1%7BcontextId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization by id operationId: getOrganization tags: - Organization responses: '200': description: Organization Record content: application/json: schema: type: object description: Organization properties: id: type: string format: uuid name: type: string logoImageURL: type: string nullable: true federalTaxId: type: string nullable: true supportEmail: type: string nullable: true websiteURL: type: string nullable: true onboardingStatus: type: string enum: - discovery - in progress - completed hoursOfOperation: type: object active: type: boolean dot: type: string nullable: true demandSignals: type: string nullable: true lpGig: type: boolean nullable: true certificationOfInsuranceURL: type: string nullable: true w9FormURL: type: string nullable: true primaryContactId: type: string nullable: true operationsContactId: type: string nullable: true technicalContactId: type: string nullable: true billingContactId: type: string nullable: true organizationTypes: type: array items: type: string entityTypeId: type: string dispatchPlatformId: type: string nullable: true locationId: type: string nullable: true ach: type: string nullable: true mc_mx_ff: type: string nullable: true carrierCode: type: string nullable: true fmcsa: type: string enum: - active - inactive - suspended - null nullable: true insuranceAndCompliance: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' autoDispatchDeliveries: type: boolean ignoreFromLocation: type: boolean outOfNetworkCapable: type: boolean autoAssignDriver: type: boolean organizationTree: $ref: '#/paths/~1v1~1organization/post/responses/200/content/application~1json/schema/properties/organizationTree' providesShippingLabels: type: boolean rejectBadAddresses: type: boolean requiresIndividualPolicyAccept: type: boolean preferences: $ref: '#/paths/~1v1~1preferences~1%7BcontextId%7D/get/responses/200/content/application~1json/schema' showHiddenSubscriptionPlans: type: boolean displayBarcode: type: boolean barcodeType: type: string enum: - code128 - qrcode - azteccode - azteccodecompact - codablockf - code16k - code39ext - code93ext - codeone - datamatrix - datamatrixrectangular - datamatrixrectangularextension - dotcode - hanxin - maxicode - micropdf417 - pdf417 - pdf417compact - posicode - swissqrcode - telepen - ultracode barcodeAttribute: type: string enum: - Order Id - Route Id - Shipment Id - Container Id - Tracking Number - Item Identifier podAiFilterLevel: type: number nullable: true accountManager: type: string format: uuid nullable: true clientServiceManager: type: string format: uuid nullable: true privacyPolicyApproverUserId: type: string format: uuid nullable: true accountManagementNotes: type: string nullable: true maxLength: 10000 accountManagerUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string clientServiceManagerUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string privacyPolicyApproverUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string enableDriverPayout: type: boolean nullable: true enableForEmployeeDrivers: type: boolean nullable: true enableForFreelanceDrivers: type: boolean nullable: true driverPayoutBaseRate: type: number nullable: true organizationDOT: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1dot/post/responses/200/content/application~1json/schema' organizationHazmatSettings: type: object description: Organization Hazmat Settings properties: id: type: string format: uuid organizationId: type: string format: uuid nullable: true isShippingEnabled: type: boolean classes: type: array items: type: string enum: - '1.1' - '1.2' - '1.3' - '1.4' - '1.5' - '1.6' - '2.1' - '2.2' - '2.3' - '3' - '4.1' - '4.2' - '4.3' - '5.1' - '5.2' - '6.1' - '6.2' - '7' - '8' - '9' nullable: true maxRouteWeight: type: number minItemValueCent: type: number maxItemValueCent: type: number minItemWeightLb: type: number maxItemWeightLb: type: number minItemCubicVolumeFt: type: number maxItemCubicVolumeFt: type: number minItemLengthIn: type: number maxItemLengthIn: type: number minItemWidthIn: type: number maxItemWidthIn: type: number minItemHeightIn: type: number maxItemHeightIn: type: number maxWattHours: type: number createdAt: type: string format: date-time nullable: true updatedAt: type: string format: date-time ean: type: string nullable: true '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Organization summary: Updates Organization operationId: updateOrganization tags: - Organization requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1organization/post/requestBody/content/application~1json/schema' responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' patch: x-exegesis-controller: Organization summary: Partial Updates Organization operationId: partialUpdate tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Organization properties: onboardingStatus: type: string enum: - discovery - in progress - completed enableColumnMapping: type: boolean nullable: true enableDriverPayout: type: boolean default: false description: Whether driver payout is enabled for this organization. enableForEmployeeDrivers: type: boolean default: false description: Whether employee drivers are enabled for this organization. enableForFreelanceDrivers: type: boolean default: false description: Whether freelance drivers are enabled for this organization. driverPayoutBaseRate: type: number default: 0 description: The base rate for driver payout for this organization. columnMappings: type: array items: $ref: '#/paths/~1v1~1organization/post/requestBody/content/application~1json/schema/properties/columnMappings/items' responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/api: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization by id (API) security: - ApiKey: [] AppId: [] operationId: getApi tags: - Organization responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/shippers: parameters: - name: organizationId in: path required: true schema: type: string - name: pickupLocationId in: query required: false schema: type: string - name: originLocationId in: query required: false schema: type: string get: x-exegesis-controller: Organization summary: Gets children organizations of the given Organization Id operationId: getShipperOrganizations tags: - Organization responses: '200': description: LP Organization Record content: application/json: schema: type: array description: LP Shipper Organizations items: type: object properties: id: type: string format: uuid name: type: string logoImageURL: type: string nullable: true federalTaxId: type: string nullable: true supportEmail: type: string nullable: true websiteURL: type: string nullable: true onboardingStatus: type: string enum: - discovery - in progress - completed hoursOfOperation: type: object active: type: boolean dot: type: string nullable: true demandSignals: type: string nullable: true lpGig: type: boolean nullable: true certificationOfInsuranceURL: type: string nullable: true w9FormURL: type: string nullable: true primaryContactId: type: string nullable: true operationsContactId: type: string nullable: true technicalContactId: type: string nullable: true billingContactId: type: string nullable: true organizationTypes: type: array items: type: string entityTypeId: type: string dispatchPlatformId: type: string nullable: true locationId: type: string nullable: true ach: type: string nullable: true mc_mx_ff: type: string nullable: true carrierCode: type: string nullable: true fmcsa: type: string enum: - active - inactive - suspended - null nullable: true insuranceAndCompliance: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' autoDispatchDeliveries: type: boolean ignoreFromLocation: type: boolean outOfNetworkCapable: type: boolean autoAssignDriver: type: boolean organizationTree: $ref: '#/paths/~1v1~1organization/post/responses/200/content/application~1json/schema/properties/organizationTree' providesShippingLabels: type: boolean accountManager: type: string format: uuid nullable: true clientServiceManager: type: string format: uuid nullable: true accountManagementNotes: type: string nullable: true maxLength: 10000 accountManagerUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string clientServiceManagerUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/locations: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's locations operationId: getLocations parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: canDispatchDeliveries in: query description: If true, returns only locations that can dispatch deliveries. required: false schema: type: boolean - name: filter in: query description: 'JSON string { search: string, storeNumber: string }' required: false schema: type: string - name: isLpShipper in: query description: Determines whether the caller is an LP Shipper user or not required: false schema: type: boolean tags: - Organization responses: '200': $ref: '#/paths/~1v1~1order~1control-tower~1locations/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/primary-location: parameters: - name: organizationId in: path required: true description: Organization ID schema: type: string post: x-exegesis-controller: Organization summary: Creates or updates organization primary location operationId: updatePrimaryLocation tags: - Organization requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema' responses: '200': description: Location content: application/json: schema: $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/inactivate: parameters: - name: organizationId in: path required: true schema: type: string patch: x-exegesis-controller: Organization summary: Sets organization as inactive operationId: setInactive tags: - Organization requestBody: content: application/json: schema: type: object responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/webhook-url: parameters: - name: organizationId in: path required: true schema: type: string patch: x-exegesis-controller: Organization summary: Update organization webhook URL operationId: updateWebhookUrl tags: - Organization requestBody: required: true content: application/json: schema: type: object properties: webhookUrl: type: string nullable: true description: The webhook URL for the organization. Set to null to remove it. responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/dot: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Update organization DOT information operationId: updateDot tags: - Organization requestBody: description: Update organization DOT information content: application/json: schema: type: object required: - dotNumber properties: dotNumber: type: number description: DOT number responses: '200': description: DOT information updated successfully content: application/json: schema: type: object description: Organization DOT information properties: id: type: string format: uuid organizationId: type: string format: uuid nullable: true dotNumber: type: number status: type: string enum: - ACTIVE - INACTIVE - OUT-OF-SERVICE authorityStatus: type: string enum: - AUTHORIZED - NOT-AUTHORIZED - OUT-OF-SERVICE carrierOperationStatus: type: string enum: - INTERSTATE - INTRASTATE-ONLY-HM - INTRASTATE-ONLY-NON-HM nullable: true operationsClassifications: type: array items: type: string enum: - AUTH_FOR_HIRE - EXEMPT_FOR_HIRE - PRIVATE_PROPERTY - PRIVATE_PASS_BUSINESS - PRIVATE_PASS_NON_BUSINESS - MIGRANT - US_MAIL - FED_GOVT - STATE_GOVT - LOCAL_GOVT - INDIAN_NATION nullable: true cargoClasses: type: array items: type: string enum: - GENERAL_FREIGHT - HOUSEHOLD_GOODS - METAL_SHEETS_COILS_ROLLS - MOTOR_VEHICLES - DRIVE_TOW_AWAY - LOGS_POLES_BEAMS_LUMBER - BUILDING_MATERIALS - MOBILE_HOMES - MACHINERY_LARGE_OBJECTS - FRESH_PRODUCE - LIQUIDS_GASES - INTERMODAL_CONT - PASSENGERS - OILFIELD_EQUIPMENT - LIVESTOCK - GRAIN_FEED_HAY - COAL_COKE - MEAT - GARBAGE_REFUSE - US_MAIL - CHEMICALS - COMMODITIES_DRY_BULK - REFRIGERATED_FOOD - BEVERAGES - PAPER_PRODUCTS - UTILITIES - AGRICULTURAL_FARM_SUPPLIES - CONSTRUCTION - WATER_WELL nullable: true mcmxff: type: string createdAt: type: string format: date-time nullable: true updatedAt: type: string format: date-time deletedAt: type: string format: date-time nullable: true '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/users: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's users operationId: getUsers parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { search: string, ids: string[] }' required: false schema: type: string tags: - Organization responses: '200': $ref: '#/paths/~1v1~1organizations~1users/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/drivers: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's users operationId: getOrganizationDrivers parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { availability: DriverAvailability[], teamIds: string[], lpMarketIds: string[], includePickupLocationIds: boolean }' required: false schema: type: string - name: fromIds in: query description: JSON array of location ids, optional required: false schema: type: array items: type: string tags: - Organization responses: '200': description: Driver Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: User Driver properties: id: type: string emailAddress: type: string format: email firstName: type: string lastName: type: string phoneNumber: type: string nullable: true active: type: boolean title: type: string nullable: true employeeId: type: string nullable: true mvrCertified: type: boolean nullable: false default: false fleetId: type: string nullable: true roles: type: array items: $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1/properties/roles/items' pickupLocationIds: type: array items: type: string format: uuid lpMarkets: type: array items: type: object properties: id: type: string format: uuid name: type: string pickUpLocationId: type: string format: uuid nullable: true driver: type: object nullable: true properties: id: type: string availability: type: string ownFleetVehicleId: type: string ownFleetVehicle: type: object nullable: true properties: id: type: string name: type: string fleetVehicle: type: object nullable: true properties: name: type: string vehicleType: type: string lastKnownDriverLocation: type: object nullable: true properties: latitude: type: number longitude: type: number '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/column-mappings: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization by id operationId: getOrganizationColumnMappings tags: - Organization responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/teams: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Team summary: Get organization's teams operationId: getAllTeams parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { lpMarketIds: string[], userIds: string[] }' required: false schema: type: string tags: - Team responses: '200': description: Team Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1teams/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Team summary: Creates a new Team operationId: createTeam tags: - Team requestBody: required: true content: application/json: schema: type: object description: Team required: - name properties: name: type: string address: type: object email: type: string nullable: true phoneNumber: type: string nullable: true primaryContactId: type: string nullable: true organizationId: type: string format: uuid lpMarketIds: type: array nullable: true items: type: string userIds: type: array nullable: true items: type: string responses: '200': description: Team content: application/json: schema: type: object description: Team required: - name properties: id: type: string name: type: string address: type: string email: type: string primaryContactId: type: string lpMarketIds: type: array items: type: string nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/teams/{teamId}: parameters: - name: organizationId in: path required: true schema: type: string - name: teamId in: path required: true schema: type: string get: x-exegesis-controller: Team summary: Get team by id operationId: getTeam tags: - Team responses: '200': description: Team content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1teams/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Team summary: Updates Team operationId: updateTeam tags: - Team requestBody: required: true content: application/json: schema: type: object description: Team properties: name: type: string address: type: object phoneNumber: type: string nullable: true email: type: string nullable: true lpMarketIds: type: array nullable: true items: type: string userIds: type: array nullable: true items: type: string responses: '200': description: Team content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1teams/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Team summary: Remove team operationId: removeTeam tags: - Team responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/driver/{driverId}/tooltip: parameters: - name: organizationId in: path required: true schema: type: string - name: driverId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get driver tooltip info operationId: getDriverTooltip tags: - Organization responses: '200': description: Driver tooltip information content: application/json: schema: type: object properties: deliveriesCount: type: number '404': $ref: '#/paths/~1v1~1routes/get/responses/404' '512': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/user/distances: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: get distance between users and first route pickup operationId: getUserDistances requestBody: required: true content: application/json: schema: type: object required: - type - userIds - resourceId properties: type: type: string enum: - route - delivery resourceId: type: string format: uuid userIds: type: array items: type: string format: uuid minItems: 1 tags: - Organization responses: '200': description: Array of successful associations content: application/json: schema: type: array items: type: object properties: userId: type: string miles: type: number etaTimestamp: type: string travelTimeSec: type: number '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/user/status: get: x-exegesis-controller: Organization summary: Gets driver status operationId: getUserStatus parameters: - name: organizationId in: path description: Organization Id required: true schema: type: string format: uuid - name: userIds in: query description: Array of userId's required: true schema: type: array items: type: string format: uuid - name: locationId in: query description: Location Id required: false schema: type: string format: uuid tags: - User responses: '200': description: User Status content: application/json: schema: type: array items: type: object description: User Status required: - id - status properties: id: type: string status: type: number default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/user/{userId}/locations: parameters: - name: organizationId in: path required: true schema: type: string - name: userId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Organization summary: Get organization user's locations operationId: getUserLocations parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Organization responses: '200': $ref: '#/paths/~1v1~1order~1control-tower~1locations/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/available-lp-contracts: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get Available Lp Contracts for a Org ID operationId: getAvailableLpContracts parameters: - name: total in: query description: Total number of items that returned required: true schema: type: integer minimum: 1 default: 1 - name: limit in: query description: Maximum number of items to return required: true schema: type: integer minimum: 1 default: 20 - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 tags: - Organization responses: '200': description: Available LP Contracts content: application/json: schema: type: object properties: total: type: integer limit: type: integer offset: type: integer data: type: array items: type: object properties: id: type: string format: uuid declined: type: boolean lpSignatureId: type: string format: uuid active: type: boolean createdAt: type: string format: date-time shipperContract: type: object properties: name: type: string organization: type: object properties: name: type: string shipperContractSla: type: object properties: id: type: string format: uuid serviceLevel: type: object properties: name: type: string pickUpSpeed: type: object properties: name: type: string value: type: number dropOffSpeed: type: object properties: name: type: string value: type: number '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/roles: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's roles operationId: getRoles parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Organization responses: '200': description: Role Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1role/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/assignable-roles: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get roles that loggin user has the ability to assign. operationId: getAssignableRoles tags: - Organization responses: '200': description: Role Records content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1role/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/fleet-assets: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's fleet assets operationId: getFleetAssets tags: - Organization responses: '200': description: Fleet Asset Records content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1fleet-assets/put/requestBody/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Organization summary: Create Fleet Assets for an Organization at the global level operationId: createFleetAssets tags: - Organization requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1fleet-assets/put/requestBody/content/application~1json/schema' responses: '200': description: Fleet Assets record $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1fleet-assets/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Organization summary: Update Fleet Assets for an Organization at the global level operationId: updateFleetAssets tags: - Organization requestBody: required: true content: application/json: schema: description: Organization Fleet Asset data type: object properties: fleetVehicles: type: array items: type: object properties: id: type: string count: type: number minimum: 0 pickUpSlaId: type: string dropOffSlaId: type: string capabilityTags: type: array items: type: object properties: id: type: string format: uuid responses: '200': description: Fleet Assets record $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1fleet-assets/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/external-fleet-assets: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's External fleet assets operationId: getExternalFleetAssets tags: - Organization responses: '200': description: Fleet Asset Records content: application/json: schema: description: Organization Fleet Asset data type: object properties: fleetVehicles: type: array items: type: object properties: id: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Organization summary: Create External Fleet Assets for an Organization operationId: createExternalFleetAsset tags: - Organization requestBody: required: true content: application/json: schema: type: object properties: fleetVehicleId: type: string responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/external-fleet-assets/{fleetVehicleId}/remove: parameters: - name: organizationId in: path required: true schema: type: string - name: fleetVehicleId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: remove External Fleet Assets for an Organization operationId: removeExternalFleetAssets tags: - Organization responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/bulk-users: parameters: - name: organizationId in: path required: true schema: type: string put: x-exegesis-controller: User summary: Bulk update users by passing in an array of users with attributes to update and either an ID or an employeeId to help identify the user (if both are included in a user, employeeId will be updated) operationId: bulkUpdate tags: - Organization requestBody: content: application/json: schema: type: array items: type: object description: User properties: emailAddress: type: string format: email firstName: type: string lastName: type: string phoneNumber: type: string nullable: true active: type: boolean title: type: string nullable: true employeeId: type: string nullable: true mvrCertified: type: boolean nullable: false default: false responses: '200': description: Bulk user update results content: application/json: schema: type: array items: type: object description: User properties: id: type: string format: uuid employeeId: type: string status: type: string error: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: User summary: Creates users from a CSV file operationId: bulkCreate tags: - Organization requestBody: $ref: '#/paths/~1v1~1product~1bulk/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lp-markets: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's LP Markets operationId: getLPMarkets parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { name: string }' required: false schema: type: string tags: - Organization responses: '200': description: Markets content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1lp-market/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/shipper-contracts: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's Shipper Contracts operationId: getShipperContracts parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Organization responses: '200': description: Shipper Contracts content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1shipper-contract/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lp-contracts: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get all shipper contracts of all generated lp contract slas for this orgnization operationId: getLPContracts parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Organization responses: '200': description: LP Contracts content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: Shipper Contract properties: id: type: string format: uuid organizationName: type: string name: type: string description: type: string itemsDescription: type: string avgDeliveriesPerWk: type: number maxWeight: type: number organizationId: type: string format: uuid createdAt: type: string format: date lpContractSlas: type: array items: type: object description: LP Contract SLA properties: id: type: string format: uuid organizationId: type: string format: uuid description: Reference to Organization shipperContractSlaTemplateIds: type: array items: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/shipper-contract-with-slas: get: x-exegesis-controller: Organization summary: Get organization's Shipper Contracts that have at least 1 sla operationId: getShipperContractWithSlas parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Organization responses: '200': description: Shipper Contracts content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: Shipper Contract properties: id: type: string format: uuid organizationName: type: string name: type: string description: type: string itemsDescription: type: string avgDeliveriesPerWk: type: number maxWeight: type: number organizationId: type: string format: uuid createdAt: type: string format: date shipperContractSlaTemplateIds: type: array items: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/related: get: x-exegesis-controller: Organization summary: Data for creating a new Organization operationId: related tags: - Organization responses: '200': description: Organization Related Data content: application/json: schema: type: object properties: entityTypes: type: object description: A form display object properties: id: type: string name: type: string required: - id dispatchPlatforms: $ref: '#/paths/~1v1~1organization~1related/get/responses/200/content/application~1json/schema/properties/entityTypes' organizationTypes: $ref: '#/paths/~1v1~1organization~1related/get/responses/200/content/application~1json/schema/properties/entityTypes' holidays: type: array items: type: object properties: id: type: string format: uuid holidayName: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/deliveries: parameters: - name: organizationId in: path required: true schema: type: string - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { state: DeliveryState[], shipperIds: string[], lpIds: string[], fromIds: string[], search: string, searchOrderId: string, searchShipmentId: string }' required: false schema: type: string - name: leaderId in: query description: Delivery ID of leader to filter and return all follower deliveries required: false schema: type: string - name: searchShipmentId in: query description: Text to search for partial match in the shipmentId field required: false schema: type: string - name: lpIds in: query description: Filter and return orders with LP IDs in the list of lpIds provided. Treated as an array, more than one instance of lpIds can be provided required: false schema: type: array items: type: string - name: template in: query required: false description: Filter out some of the returned response data needed for a page schema: type: string default: default enum: - default - dashboard - needs-attention - control-tower - deliveries - name: customField in: query description: Filter's by custom fields specific to each shipper. The parameter is provided as `customField=fieldName:value`. Can be provided more than once for multiple values or fields. required: false schema: type: array items: type: string get: x-exegesis-controller: Organization summary: Get organization's deliveries operationId: getOrganizationDeliveries tags: - Organization responses: '200': $ref: '#/paths/~1v1~1deliveries/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/delivery: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Creates a new delivery for the organization operationId: createDelivery tags: - Organization requestBody: $ref: '#/paths/~1v1~1delivery~1api/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1delivery~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/delivery/{deliveryId}: parameters: - name: organizationId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Organization summary: Get a delivery for the organization operationId: getOrganizationDelivery tags: - Organization responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Organization summary: Updates a delivery for the organization operationId: updateDelivery tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Delivery required: - from - to - order - deliveryType - deliverySpeedMin properties: from: description: Pick up location. Pass in the id, or address info, or store number to look up the location type: object properties: id: type: string format: uuid address: type: object nullable: true properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number to: description: Drop off location. Pass in complete location info. Lat/Long are optional and will be populated if not passed. type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number deliveryType: description: Select if delivery is for a BUSINESS or RESIDENTIAL type: string enum: - BUSINESS - RESIDENTIAL deliveryOptions: description: Optional list of delivery options type: array items: type: string uniqueItems: true example: - REQUIRE_SIGNATURE - REQUIRE_OVER_21 - HIPAA - REQUEST_PARCEL_PICKUP - REQUEST_PROOF_OF_PICKUP notes: type: string maxLength: 255 nullable: true description: Optional delivery notes isReturn: type: boolean description: Is it a return delivery? order: description: Order items for the delivery type: object required: - orderId - orderItems properties: id: type: string format: uuid orderId: description: Unique order id identifying this order type: string netAmountCent: type: number description: Net Amount, in cents nullable: true barCode: type: string nullable: true status: type: string description: Order's status. enum: - PICKING - PACKING - SHIPPING orderItems: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' capabilityTags: type: array items: type: string format: uuid description: List of capability IDs shipperContractSlaId: type: string format: uuid description: Shipper Contract SLA ID nullable: true deliverySpeedMin: type: number description: Delivery Speed, in minutes state: type: string description: State of the delivery order. shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true creationReason: type: string enum: - BOOKED - CLUB - SPLIT default: BOOKED shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null dispatchAt: type: string description: datetime in ISO format format: date-time nullable: true responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' patch: x-exegesis-controller: Organization summary: Patches a delivery for the organization operationId: patchDelivery tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Delivery properties: from: description: Pick up location. Pass in the id, or address info, or store number to look up the location type: object properties: id: type: string format: uuid address: type: object nullable: true properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number physicalLocation: type: object nullable: true description: Alternate pickup location properties: altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' to: description: Drop off location. Pass in complete location info. Lat/Long are optional and will be populated if not passed. type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number physicalLocation: type: object nullable: true description: Alternate dropoff location properties: altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' deliveryType: description: Select if delivery is for a BUSINESS or RESIDENTIAL type: string enum: - BUSINESS - RESIDENTIAL deliveryOptions: description: Optional list of delivery options type: array items: type: string uniqueItems: true example: - REQUIRE_SIGNATURE - REQUIRE_OVER_21 - HIPAA - REQUEST_PARCEL_PICKUP - REQUEST_PROOF_OF_PICKUP notes: type: string maxLength: 255 nullable: true description: Optional delivery notes isReturn: type: boolean description: Is it a return delivery? order: description: Properties of the order associated with this delivery that need to be updated type: object properties: id: type: string format: uuid orderId: description: Unique order id identifying this order type: string netAmountCent: type: number description: Net Amount, in cents nullable: true barCode: type: string nullable: true status: type: string description: Order's status. enum: - PICKING - PACKING - SHIPPING orderItems: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' capabilityTags: type: array items: type: string format: uuid description: List of capability IDs shipperContractSlaId: type: string format: uuid description: Shipper Contract SLA ID nullable: true deliverySpeedMin: type: number description: Delivery Speed, in minutes state: type: string description: State of the delivery order. shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true creationReason: type: string enum: - BOOKED - CLUB - SPLIT default: BOOKED shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null dispatchAt: type: string description: datetime in ISO format format: date-time nullable: true responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/delivery/{deliveryId}/image: parameters: - name: organizationId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Organization summary: Uploads a proof of delivery image operationId: deliveryImage tags: - Organization requestBody: content: multipart/form-data: schema: type: object description: Set URL to image or upload the image required: - type properties: type: type: string description: Type of delivery image enum: - POD - Signature - POP - PickupSignature default: POD url: type: string description: URL to the image fileData: type: string format: binary description: binary image upload responses: '200': description: Successful response. content: application/json: schema: properties: URL: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/delivery/{deliveryId}/images-download: parameters: - name: organizationId in: path required: true description: organization id schema: type: string - name: deliveryId in: path required: true description: Delivery id schema: type: string post: x-exegesis-controller: Organization summary: Get all POP or POD images for delivery operationId: getDeliveryProofImages tags: - Organization requestBody: $ref: '#/paths/~1v1~1carrier~1%7BcarrierId%7D~1delivery~1%7BdeliveryId%7D~1images-download/post/requestBody' responses: '200': description: Successful response. content: application/zip: schema: description: Zip file of requested images type: string format: binary default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/delivery/{deliveryId}/images-delete: parameters: - name: organizationId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Organization summary: Soft delete proof images (POP/POD) for a delivery operationId: deleteDeliveryProofImages tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Select proof images to delete required: - type properties: type: type: string description: Type of delivery image to delete enum: - POD - Signature - POP - PickupSignature imageUrl: type: string description: 'Optional specific image URL to delete. If not provided, all images of the specified type will be deleted. ' example: https://example.com/assets/image123.jpg responses: '200': description: Successful response (will always be true, since any error won't return 200) content: application/json: schema: type: boolean example: true '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/delivery/{deliveryId}/delivery-attempts: parameters: - name: organizationId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Organization summary: Get a delivery's attempts operationId: getDeliveryAttempts tags: - Organization responses: '200': $ref: '#/paths/~1v2~1organization~1delivery~1%7BdeliveryId%7D~1delivery-attempts-api/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v2/organization/{organizationId}/delivery/{deliveryId}/delivery-attempts: parameters: - name: organizationId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid - name: limit description: Only get the limit value of delivery attempts to retreive from a delivery in: query required: true schema: type: integer minimum: 1 default: 10 - name: offset description: Get delivery attepts starting at the offset value (assuming you start your count at 0) in: query required: true schema: type: integer minimum: 0 default: 0 get: x-exegesis-controller: Organization summary: Get a delivery's attempts operationId: getDeliveryAttemptsWithLimit tags: - Organization responses: '200': $ref: '#/paths/~1v2~1organization~1delivery~1%7BdeliveryId%7D~1delivery-attempts-api/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v2/organization/delivery/{deliveryId}/delivery-attempts-api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid - name: limit description: Only get the limit value of delivery attempts to retreive from a delivery in: query required: true schema: type: integer minimum: 1 default: 10 - name: offset description: Get delivery attempts starting at the offset value (assuming you start your count at 0) in: query required: true schema: type: integer minimum: 0 default: 0 get: x-exegesis-controller: Organization summary: Get a delivery's attempts with api key and app Id operationId: getDeliveryAttemptsWithLimitApi security: - ApiKey: [] AppId: [] tags: - Organization responses: '200': description: Delivery Record content: application/json: schema: type: object properties: delivery: type: object properties: state: type: string mappedState: type: string deliveryAttemptId: type: string format: uuid deliveryAttempts: type: array items: type: object properties: id: type: string format: uuid state: type: string failureReason: type: string shipperBillable: type: boolean lpPayable: type: boolean durationMin: type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time deliveryStatus: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryAttempt/properties/deliveryStatus' deliveryStateChanges: type: array items: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryAttempt/properties/deliveryStateChanges/items' deliveryCost: type: object nullable: true properties: id: type: integer format: uuid computedCostCent: type: integer description: Optional LP computed cost, in cents actualCostCent: type: integer nullable: true description: Actual LP cost, in cents createdAt: type: string format: date-time updatedAt: type: string format: date-time lpContractSla: type: object description: LP Contract SLA properties: id: type: string format: uuid organization: type: object properties: id: type: string format: uuid name: type: string description: Reference to Organization createdBy: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/file-uploads: parameters: - name: organizationId in: path description: organization id required: true schema: type: string - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: status in: query description: status filter required: false schema: type: array items: type: string enum: - partial - failed - succeeded - name: rangeType in: query description: date range type required: false schema: type: string - name: startOn in: query description: daterange starts on required: false schema: type: string - name: endOn in: query description: date range ends on required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: entityType in: query description: Entity type to show required: false schema: type: array items: type: string enum: - order - product - marketModifier - location - customerLocation get: x-exegesis-controller: Organization summary: Gets the file uploads in relation to a provided organization id operationId: getAllFileUploadsForOrganization tags: - Bulk Uploads - Organization responses: '200': description: Success. content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1file-upload~1%7BfileUploadId%7D/get/responses/200/headers/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/bulk-products-delete: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Delete organization's Products operationId: deleteOrgProducts tags: - Organization requestBody: required: true content: application/json: schema: type: object description: List of product ids properties: products: type: array items: type: string format: uuid responses: '200': description: Products content: application/json: schema: type: array items: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/bulk-products-restore: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Restore organization's Products operationId: restoreOrgProducts tags: - Organization requestBody: required: true content: application/json: schema: type: object description: List of product ids properties: products: type: array items: type: string format: uuid responses: '200': description: Products content: application/json: schema: type: array items: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/product/{productId}: parameters: - name: organizationId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Organization summary: Get product for oganization operationId: getSingleProduct tags: - Organization responses: '200': description: Product Records content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1product~1%7BproductId%7D/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Organization summary: Edit organization's Product operationId: editOrgProduct requestBody: content: application/json: schema: type: object description: Product properties: identifier: type: string description: Unique identifier description: type: string description: Item's description priceCent: type: number description: Price in cents lengthIn: description: Item length in inches. Smallest value is an inch. Float values are rounded up type: number widthIn: description: item width in inches. Smallest value is an inch. Float values are rounded up type: number heightIn: description: item height in inches. Smallest value is an inch. Float values are rounded up type: number weightLbs: description: Item weight in pounds type: number tags: - Organization responses: '200': description: Product content: application/json: schema: type: object description: Product properties: id: type: string format: uuid identifier: type: string description: Unique identifier description: type: string description: Item's description priceCent: type: number description: Price in cents lengthIn: description: Item length in inches. Smallest value is an inch. Float values are rounded up type: number widthIn: description: item width in inches. Smallest value is an inch. Float values are rounded up type: number heightIn: description: item height in inches. Smallest value is an inch. Float values are rounded up type: number weightLbs: description: Item weight in pounds type: number doNotRotate: description: Whether the item must not be rotated when packed type: boolean doNotStack: description: Whether the item must not be stacked when packed type: boolean createdAt: description: Timestamp when the product was created type: string format: date-time updatedAt: description: Timestamp when the product was last updated type: string format: date-time deletedAt: description: Timestamp when the product was archived (soft deleted), if applicable type: string format: date-time nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/product: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Product summary: Creates a new Product operationId: createProduct tags: - Product requestBody: content: application/json: schema: type: object properties: description: type: string identifier: type: string priceCent: type: number lengthIn: type: number widthIn: type: number heightIn: type: number weightLbs: type: number required: - description - identifier - priceCent - lengthIn - widthIn - heightIn - weightLbs responses: '200': description: Product successfuly created content: application/json: schema: type: object properties: id: type: string description: type: string identifier: type: string priceCent: type: number lengthIn: type: number widthIn: type: number heightIn: type: number weightLbs: type: number default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/products: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's Products operationId: getProducts parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 250 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { search: string }' required: false schema: type: string tags: - Organization responses: '200': description: Products content: application/json: schema: $ref: '#/paths/~1v1~1carrier~1%7BcarrierId%7D~1products/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/boxes: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's boxes operationId: getBoxes parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Organization responses: '200': description: Boxes content: application/json: schema: $ref: '#/paths/~1v1~1organization~1boxes~1api/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/deliveryfile/{deliveryFileId}: parameters: - name: organizationId in: path required: true description: organization id schema: type: string format: uuid - name: deliveryFileId in: path required: true description: delivery file id schema: type: string format: uuid - name: indexToDelete in: query description: Index of the file to delete on JSON delivery files required: false schema: type: integer minimum: 0 delete: x-exegesis-controller: DeliveryFile summary: Delete delivery file by ID operationId: softDelete security: - ApiKey: [] AppId: [] - bearer: [] tags: - Delivery responses: '200': description: DeliveryFile successfully deleted content: application/json: schema: type: object properties: deliveryFileId: type: string description: The ID of the deleted file deleted: type: boolean description: Whether the file was marked as deleted required: - deliveryFileId - deleted default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/boxes/api: get: x-exegesis-controller: Organization security: - ApiKey: [] AppId: [] summary: Get organization's boxes via api operationId: getBoxesApi parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Organization responses: '200': description: Boxes content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1box/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/service-levels: parameters: - name: organizationId in: path required: true schema: type: string - name: active in: query required: false schema: type: boolean get: x-exegesis-controller: Organization summary: Get organization's service levels security: - ApiKey: [] AppId: [] - bearer: [] operationId: getServiceLevels tags: - Organization responses: '200': description: Service Level content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1service-level/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organizations/service-levels: post: x-exegesis-controller: Organization summary: Get one or more organization's service levels operationId: getOrgsServiceLevels tags: - Organization requestBody: required: true content: application/json: schema: type: array items: type: string responses: '200': description: Service Level content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1service-level/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/service-levels/api: get: x-exegesis-controller: Organization summary: Get organization's service levels using api security: - ApiKey: [] AppId: [] operationId: getServiceLevelsApi tags: - Organization responses: '200': description: Service Level content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1service-level/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/service-level: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Create organization's service level operationId: createServiceLevel tags: - Organization requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string timeDesc: type: string nullable: true pickUpSpeedId: type: string format: uuid dropOffSpeedId: type: string format: uuid endOfDayMinutes: type: integer default: 0 cutOffTimeMins: type: integer nullable: true description: Cut off time in minutes since midnight enableClubbing: type: boolean description: If deliveries should be batched default: false serviceLevelClubTriggers: nullable: true type: array items: $ref: '#/paths/~1v1~1service-level~1%7BserviceLevelId%7D~1trigger/post/requestBody/content/application~1json/schema' revokeTimeMins: type: integer description: Time in minutes before delivery is auto revoked. 0 = do not revoke enableConsolidation: type: boolean description: If enabling consolidation default: false enableOptimization: type: boolean description: If enabling optimizing default: false requireWindows: type: boolean default: false nullable: true description: If requireWindow is enabled requireImmediateDispatch: type: boolean default: false nullable: true description: To ignore pickup closed and cutoff time ignoreRevokes: type: boolean default: false nullable: true description: If requireWindow is enabled scheduleExpressPickup: type: boolean default: false nullable: false description: If scheduleExpressPickup is enabled rateShopByDeliveryDate: type: boolean default: false nullable: true description: If downgrading logic can be used to find a lower service level with a cheaper price but still acceptable delivery date active: type: boolean default: true nullable: false description: when disabled, the service level can't be used in new orders lpSpecificRevokeTimes: nullable: true type: array items: type: object required: - organizationId - revokeTimeMins properties: organizationId: type: string format: uuid description: The LP organization ID to set a specific revoke time for revokeTimeMins: type: integer description: Time in minutes before delivery is auto revoked for this specific LP organization ignoreLTLRevokes: type: boolean default: false nullable: false description: when disabled, deliveries using this service level will not be auto revoked responses: '200': description: Service Level content: application/json: schema: type: object required: - name properties: id: type: string format: uuid name: type: string timeDesc: type: string nullable: true pickUpSpeedId: type: string format: uuid dropOffSpeedId: type: string format: uuid endOfDayMinutes: type: integer cutOffTimeMins: type: integer nullable: true description: cut off time in minutes since midnight enableClubbing: type: boolean description: If deliveries should be batched revokeTimeMins: type: integer description: Time in minutes before delivery is auto revoked. 0 = do not revoke enableConsolidation: type: boolean description: If consolidation is enabled enableOptimization: type: boolean description: If optimizing is enabled requireWindows: type: boolean default: false nullable: true description: If requireWindow is enabled requireImmediateDispatch: type: boolean default: false nullable: true description: To ignore pickup closed and cutoff time ignoreRevokes: type: boolean default: false nullable: true description: If ignoreRevokes is enabled scheduleExpressPickup: type: boolean default: false nullable: false description: If scheduleExpressPickup is enabled rateShopByDeliveryDate: type: boolean default: false nullable: true description: If downgrading logic can be used to find a lower service level with a cheaper price but still acceptable delivery date useOwnRateCard: type: boolean default: true nullable: false description: Flag for Own-rate-card usage allowRestock: type: boolean default: false nullable: false description: driver service mode shipperLpConfigurations: type: array items: $ref: '#/paths/~1v1~1organization~1shipper-lp-configuration/post/requestBody/content/application~1json/schema/properties/shipperLpConfigurations/items' lpSpecificRevokeTimes: type: array items: type: object properties: organizationId: type: string format: uuid revokeTimeMins: type: integer description: Time in minutes before delivery is auto revoked for this specific LP organization createdAt: type: string updatedAt: type: string active: type: boolean default: true nullable: false description: when disabled, the service level can't be used in new orders '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/service-level/{serviceLevelId}: parameters: - name: organizationId in: path required: true schema: type: string - name: serviceLevelId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get service level details operationId: getServiceLevelDetails tags: - Organization responses: '200': description: Service Level content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1service-level/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Organization summary: update organization's service level operationId: updateServiceLevel tags: - Organization requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1service-level/post/requestBody/content/application~1json/schema' responses: '200': description: Service Level content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1service-level/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Organization summary: Get service level details operationId: destroyServiceLevel tags: - Organization responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/service-level/{serviceLevelId}/set-active-state: parameters: - name: organizationId in: path required: true schema: type: string - name: serviceLevelId in: path required: true schema: type: string - name: deactivateSla in: query description: Will inactivate all active SLAs associated with this service level required: true schema: type: boolean put: x-exegesis-controller: Organization summary: update organization's service level active state operationId: updateServiceLevelActiveState requestBody: required: true content: application/json: schema: type: object required: - active properties: active: type: boolean responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/delivery-state-mapping: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's delivery state mapping operationId: getDeliveryStateMapping tags: - Organization responses: '200': description: Delivery State content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid state: type: string enum: - DISPATCHING - ASSIGNED - ACCEPTED_BY_LP - DRIVER_ASSIGNED - EN_ROUTE_TO_PICKUP - ARRIVED_FOR_PICKUP - PICKED_UP - EN_ROUTE_TO_DELIVERY - ARRIVED_FOR_DELIVERY - DELIVERED - DISPATCH_ERROR - INCOMPLETE - ONERAIL_PROCESSING - CANCELED_BY_LP - REVOKED_BY_ONERAIL - CANCELED_BY_SHIPPER - ROUTED mappedState: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/order: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Creates a new order for the organization with one or more deliveries operationId: createOrder tags: - Organization requestBody: $ref: '#/paths/~1v1~1order~1api/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/order/{orderId}/add-deliveries: parameters: - name: organizationId in: path required: true schema: type: string - name: orderId in: path required: true schema: type: string - name: copy in: query required: false schema: type: string post: x-exegesis-controller: Organization summary: Adds one or more deliveries to an existing order for the organization operationId: addDeliveriesToOrder tags: - Organization requestBody: $ref: '#/paths/~1v1~1order~1add-returns-api/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/order/{orderId}/add-returns: parameters: - name: organizationId in: path required: true schema: type: string - name: orderId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Adds one or more returns to an existing order for the organization operationId: addReturnsToOrder tags: - Organization requestBody: $ref: '#/paths/~1v1~1order~1add-returns-api/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/order/{orderId}/add-returns/{deliveryId}: parameters: - name: organizationId in: path required: true schema: type: string - name: orderId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Organization summary: Adds one or more returns to an existing order for the organization operationId: addReturnsToOrderAndUpdateDelivery tags: - Organization requestBody: $ref: '#/paths/~1v1~1order~1add-returns-api/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/own-fleet: parameters: - name: organizationId in: path required: true schema: type: string - name: activeOnly in: query schema: type: boolean post: x-exegesis-controller: Organization summary: Create Fleet Assets for an Organization at the global level operationId: getOwnFleetByOrgId tags: - Organization requestBody: required: true content: application/json: schema: description: Organization Fleet Asset data type: object properties: pickupLocationIds: type: array items: type: string responses: '200': description: LP Contracts content: application/json: schema: $ref: '#/paths/~1v1~1own-fleet-vehicle~1%7BownFleetVehicleId%7D/get/responses/200/content/application~1json/schema' /v1/organization/{organizationId}/carriers: get: x-exegesis-controller: Organization summary: List of carriers (LPs) with signed contracts with th organizationId provided operationId: carriers tags: - Organization parameters: - name: organizationId in: path required: true schema: type: string responses: '200': $ref: '#/paths/~1v1~1organizations~1lps/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/client-user/{employeeId}: get: x-exegesis-controller: ClientUser summary: Retrieve all users with employeeId as listed operationId: getClientUsers tags: - Client Users parameters: - name: organizationId in: path required: true schema: type: string - name: employeeId in: path required: true schema: type: string responses: '200': description: Client Users content: application/json: schema: allOf: - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organizations/shippers: get: x-exegesis-controller: Organization summary: List of shippers operationId: shippers tags: - Organization parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 responses: '200': $ref: '#/paths/~1v1~1organizations~1lps/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organizations/lps: get: x-exegesis-controller: Organization summary: List of LP orgs operationId: lps tags: - Organization parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 responses: '200': description: Shippers content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string active: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/tree: parameters: - name: organizationId description: Organization Id in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Organization summary: Get organization tree by id. operationId: getOrganizationTree tags: - Organization responses: '200': description: Organization tree record content: application/json: schema: type: object properties: organizationTree: type: object description: Organization properties: id: type: string format: uuid parentOrganization: type: object properties: id: type: string format: uuid name: type: string rootOrganization: type: object properties: id: type: string format: uuid name: type: string childOrganizations: type: array items: type: object properties: id: type: string format: uuid name: type: string deliveryViewOrgIds: type: array items: type: string description: Organization IDs for which the current user has the permission to view deliveries default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/season-pricing: parameters: - name: organizationId description: Organization Id in: path required: true schema: type: string format: uuid get: x-exegesis-controller: SeasonPricing summary: Get SeasonPricings operationId: getAllSeasonPricing tags: - Organization responses: '200': description: SeasonPricings content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string startDateSelectorId: type: string format: uuid startDateSelector: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1season-pricing/get/responses/200/content/application~1json/schema/properties/data/items/properties/endDateSelector' endDateSelectorId: type: string format: uuid endDateSelector: type: object properties: id: type: string format: uuid exactDate: type: boolean month: type: number minimum: 0 maximum: 11 nullable: true day: type: number minimum: 1 maximum: 31 nullable: true holidayName: type: string nullable: true dayOffset: type: number nullable: true relativeDirection: type: string enum: - BEFORE - AFTER nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time nullable: true deliveryAddnlPercentage: type: number returnAddnlPercentage: type: number organizationId: type: string format: uuid startDateISO: type: string endDateISO: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time nullable: true shipperContractSlas: type: array items: type: object properties: id: type: string format: uuid shipperContractId: type: string format: uuid shipperContract: type: object properties: name: type: string shipperContractSlaSeasonPricings: type: object properties: shipperContractSlaId: type: string format: uuid seasonPricingId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: SeasonPricing summary: Create SeasonPricing operationId: createSeasonPricing tags: - Organization requestBody: required: true content: application/json: schema: type: object required: - name - startDate - endDate - deliveryAddnlPercentage - returnAddnlPercentage properties: name: type: string startDate: type: object required: - exactDate properties: exactDate: type: boolean month: type: number minimum: 0 maximum: 11 nullable: true day: type: number minimum: 1 maximum: 31 nullable: true holidayName: type: string nullable: true dayOffset: type: number nullable: true relativeDirection: type: string enum: - BEFORE - AFTER nullable: true endDate: type: object required: - exactDate properties: exactDate: type: boolean month: type: number minimum: 0 maximum: 11 nullable: true day: type: number minimum: 1 maximum: 31 nullable: true holidayName: type: string nullable: true dayOffset: type: number nullable: true relativeDirection: type: string enum: - BEFORE - AFTER nullable: true deliveryAddnlPercentage: type: number minimum: 0 maximum: 100 returnAddnlPercentage: type: number minimum: 0 maximum: 100 responses: '200': description: SeasonPricings content: application/json: schema: type: object required: - name - startDate - endDate - deliveryAddnlPercentage - returnAddnlPercentage properties: id: type: string format: uuid name: type: string startDateSelectorId: type: string format: uuid endDateSelectorId: type: string format: uuid deliveryAddnlPercentage: type: number minimum: 0 maximum: 100 returnAddnlPercentage: type: number minimum: 0 maximum: 100 organizationId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/season-pricing/{seasonPricingId}: parameters: - name: organizationId description: Organization Id in: path required: true schema: type: string format: uuid - name: seasonPricingId description: SeasonPricing Id in: path required: true schema: type: string format: uuid put: x-exegesis-controller: SeasonPricing summary: Update SeasonPricing operationId: updateSeasonPricing tags: - Organization requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1season-pricing/post/requestBody/content/application~1json/schema' responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: SeasonPricing summary: Remove SeasonPricing operationId: removeSeasonPricing tags: - Organization responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/holiday/list: parameters: - name: organizationId description: Organization Id in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Holiday summary: Holiday operationId: getList tags: - Organization responses: '200': description: Response data content: application/json: schema: type: object properties: data: type: array items: type: object properties: name: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/holiday/{holidayId}: parameters: - name: holidayId description: Holiday Id in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Holiday summary: Get holiday date for a specific year operationId: getHolidayDate security: - ApiKey: [] AppId: [] tags: - Holiday parameters: - name: year description: Year to get the holiday date for in: query required: true schema: type: integer responses: '200': description: Response data content: application/json: schema: type: object required: - data properties: data: type: object required: - id - name - year - start - end properties: id: type: string format: uuid name: type: string year: type: integer start: type: string format: date-time end: type: string format: date-time '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/blob: parameters: - name: organizationId in: path required: true description: organization id schema: type: string get: x-exegesis-controller: Blob summary: Get the blob names in an organization operationId: getAllBlobs tags: - Blob Storage API responses: '200': description: blob metadata content: application/json: schema: description: Get blobNames from the organization's blob storage container. type: array items: type: object properties: name: type: string lastUpdatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/blob/{blobName}: parameters: - name: organizationId in: path required: true description: organization id schema: type: string - name: blobName in: path description: blob name required: true schema: type: string get: x-exegesis-controller: Blob summary: Get the blob file with the given name operationId: getBlob tags: - Blob Storage API responses: '200': description: blob file content: application/json: schema: description: Get blob with the given blob name type: object properties: success: type: string lastUpdatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Blob summary: Update the blob file with the given name operationId: put tags: - Blob Storage API requestBody: content: multipart/form-data: schema: type: object description: Put data for the blob update. required: - secure properties: secure: type: boolean description: If the image should be stored securely default: true fileData: type: string format: binary description: binary file upload responses: '200': description: blob success status content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/blob/organizations: parameters: - name: organizationId in: path required: true description: organization id schema: type: string get: x-exegesis-controller: Blob summary: Get the organization IDs which use blob storage operationId: organizations tags: - Blob Storage API responses: '200': description: organizations with file APIs content: application/json: schema: description: array of organization ids type: array items: type: object properties: id: type: string name: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lp-settings: parameters: - name: organizationId in: path required: true schema: type: string put: x-exegesis-controller: Organization summary: Update LP settings operationId: updateLpSettings tags: - Organization requestBody: required: true content: application/json: schema: type: object description: LP settings properties: POD: type: object properties: notes: type: string enum: - optional - 'off' - required signature: type: string enum: - optional - 'off' - required images: type: string enum: - optional - 'off' - required scans: type: string enum: - optional - 'off' - required POP: type: object properties: notes: type: string enum: - optional - 'off' - required signature: type: string enum: - optional - 'off' - required images: type: string enum: - optional - 'off' - required scans: type: string enum: - optional - 'off' - required responses: '200': description: Current LP settings after update content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1lp-settings/put/requestBody/content/application~1json/schema' get: x-exegesis-controller: Organization summary: Get LP settings operationId: getLpSettings tags: - Organization responses: '200': description: Current LP settings content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1lp-settings/put/requestBody/content/application~1json/schema' /v1/organization/{organizationId}/custom-settings: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization security: - bearer: [] - ApiKey: [] AppId: [] summary: Get organization custom settings operationId: getCustomSettings tags: - Organization responses: '200': description: Current organization custom settings content: application/json: schema: description: 'Parsed JSON from Organization.ordCustomSettings as stored. Null when the column is empty or the value is not valid JSON. ' nullable: true type: object additionalProperties: true '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Organization security: - bearer: [] - ApiKey: [] AppId: [] summary: Update organization custom settings operationId: updateCustomSettings tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Organization custom settings stored in Organization.ordCustomSettings required: - showPickupTime - onOffDutySetting - allowDriverToCancelAnOrder - verbiage - mapApplicationToUse - showOnDutyToggle - cancellationReasons properties: showPickupTime: type: boolean receivePushNotificationEveryTransaction: type: boolean showShipmentId: type: boolean branding: type: object required: - organization properties: organization: type: string additionalProperties: true onOffDutySetting: type: object required: - driverIsOffDutyByDefault - showPromptWhenOffDuty - showPromptWhenOnDuty - allowDriverToOffDutyWhenHasIncompleteOrder - allowDriverToOnDutyWhenHasIncompleteOrder - offDutyPrompt - onDutyPrompt properties: driverIsOffDutyByDefault: type: boolean showPromptWhenOffDuty: type: boolean showPromptWhenOnDuty: type: boolean allowDriverToOffDutyWhenHasIncompleteOrder: type: boolean allowDriverToOnDutyWhenHasIncompleteOrder: type: boolean offDutyPrompt: type: string onDutyPrompt: type: string additionalProperties: true askForCancellationReason: type: boolean allowDriverToCancelAnOrder: type: boolean verbiage: type: object required: - decline - cancel properties: decline: type: string cancel: type: string additionalProperties: true mapApplicationToUse: type: string showOnDutyToggle: type: boolean cancellationReasons: type: array items: type: object required: - id - title - deliveryBillableToShipper - deliveryPayableToLp - shipperSlaWaived - lpSlaWaived properties: id: type: string title: type: string deliveryBillableToShipper: type: boolean deliveryPayableToLp: type: boolean shipperSlaWaived: type: boolean lpSlaWaived: type: boolean additionalProperties: true additionalProperties: true responses: '200': description: Updated organization custom settings content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1custom-settings/put/requestBody/content/application~1json/schema' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/get-lp-deliveries: parameters: - name: organizationId in: path required: true schema: type: string - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { state: string, fromId: string, serviceLevelId: string }' required: false schema: type: string get: x-exegesis-controller: Delivery summary: Get an LP's deliveries operationId: getDeliveriesForLP tags: - Organization responses: '200': description: LP Records content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid fromId: type: string format: uuid deliveryAttemptId: type: string format: uuid to: description: Drop off location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' deliveryType: type: string notes: type: string triggeredBy: type: string state: type: string deliveryAttempts: type: array items: type: object properties: state: type: string updatedAt: type: string format: date-time lpContractSlaId: type: string format: uuid deliveryStatus: type: object properties: eta: type: string format: date-time updatedAt: type: string format: date-time lpContractSla: allOf: - type: object description: LP Contract SLA properties: id: type: string format: uuid approvedBy: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string approvedOn: type: string format: date-time createdAt: type: string format: date-time organization: type: object properties: id: type: string format: uuid name: type: string description: Reference to Organization lpSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' oneRailSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' - type: object properties: shipperContractSla: properties: id: type: string format: uuid pickUpSla: type: object properties: value: type: integer dropOffSla: type: object properties: value: type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true contractedShipperCostCent: type: integer actualShipperCostCent: type: integer slaPickupBufferMinute: type: number slaDropoffBufferMinute: type: number computedDistanceMile: type: number creationReason: type: string forceCreateDestinationLocation: type: boolean shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true mileage: type: integer contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lp-features: parameters: - name: organizationId in: path required: true schema: type: string put: x-exegesis-controller: Organization summary: Update LP features operationId: updateLpFeatures tags: - Organization requestBody: required: true content: application/json: schema: type: object description: LP settings properties: geoFencing: type: boolean displayDriverPayout: type: boolean claimRouteByQR: type: boolean autoOptimizeAndRoute: type: boolean allowAssignmentToOfflineDrivers: type: boolean responses: '200': description: Current LP features after update content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1lp-features/put/requestBody/content/application~1json/schema' get: x-exegesis-controller: Organization summary: Get LP features operationId: getLpFeatures tags: - Organization responses: '200': description: Current LP features content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1lp-features/put/requestBody/content/application~1json/schema' /v1/organization/{organizationId}/contracts-by-service-levels: parameters: - name: organizationId in: path required: true schema: type: string - name: serviceLevels in: query description: Service level ids. required: true schema: type: array items: type: string get: x-exegesis-controller: Organization summary: Get contracts associated from the service levels ids operationId: getContractsByServiceLevels tags: - Organization responses: '200': description: Organization Contracts by service level content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1available-lp-contracts/get/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/create-lp-shipper: post: x-exegesis-controller: Organization summary: Create LP Shippers operationId: createLPShippers tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Organization required: - shipperOrganization - location - serviceLevel - contract - serviceLevelAgreement properties: shipperOrganization: type: object required: - name - active - entityTypeId - organizationTree properties: name: type: string logoImageURL: type: string supportEmail: type: string websiteURL: type: string active: type: boolean default: true entityTypeId: type: string format: uuid autoDispatchDeliveries: type: boolean default: true ignoreFromLocation: type: boolean default: false onboardingStatus: type: string enum: - discovery - in progress - completed default: completed canDispatchDeliveries: type: boolean default: true federalTaxId: type: string default: '' organizationTree: type: object properties: parentOrganizationId: type: string format: uuid nullable: true rootOrganizationId: type: string format: uuid nullable: true location: type: object required: - name - address - phoneNumber - location properties: name: type: string nullable: false address: type: object properties: address1: type: string address2: type: string city: type: string state: type: string postalCode: type: string country: type: string phoneNumber: type: string location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' canDispatchDeliveries: type: boolean default: true cutOffTimeMins: type: number default: 0 serviceLevel: type: array required: - name - timeDesc - pickUpSpeedId - dropOffSpeedId items: type: object properties: name: type: string nullable: true timeDesc: type: string nullable: true pickUpSpeedId: type: string format: uuid dropOffSpeedId: type: string format: uuid enableClubbing: type: boolean default: false revokeTimeMins: type: number default: 0 enableConsolidation: type: boolean default: false enableOptimization: type: boolean default: false requireImmediateDispatch: type: boolean default: false ignoreRevokes: type: boolean default: false scheduleExpressPickup: type: boolean default: false rateShopByDeliveryDate: type: boolean default: false requireWindows: type: boolean default: false endOfDayMinutes: type: integer default: 0 cutOffTimeMins: type: integer nullable: true description: Cut off time in minutes since midnight contract: type: object required: - name - description - itemSizing - maxWeight properties: maxWeight: type: number avgDeliveriesPerWk: type: number default: 0 name: type: string description: type: string itemsDescription: type: string nullable: true contractExpectation: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/contractExpectation' default: loadUnloading: '' personnelCompliance: '' personnelOnPremisis: '' personnelAttire: '' specialInstructions: '' insuranceAndCompliance: $ref: '#/paths/~1v1~1lp-market/post/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' default: cargoUsd: 0 autoLiabilityUsd: 0 commercialGeneralLiabilityUsd: 0 workersCompensationUsd: 0 umbrellaUsd: 0 bondedUsd: 0 hazardousMaterialsExclusion: false fmcsa: false universalVariable: type: number default: 0 itemSizing: type: object properties: maxWeightLB: type: number maxLengthIn: type: number maxWidthIn: type: number maxHeightIn: type: number maxItems: type: number maxCargoValueCent: type: number serviceLevelAgreement: type: object required: - pickUpSlaId - dropOffSlaId - milageTiers properties: shippingModeId: type: string format: uuid description: Reference to a Shipping Mode default: de154c54-a98e-4404-8e48-b09f43dede86 latePickupPenaltyPercent: type: number format: float description: Late pick up penalty percentage default: 0 lateDeliveryPenaltyPercent: type: number format: float description: Late delivery penalty percentage default: 0 pickUpDesc: type: string description: Pick up description default: '' dropOffDesc: type: string description: Drop off description default: '' mileageAvg: type: integer description: Mileage average rate default: 0 mileageMax: type: integer description: Mileage max rate default: 0 active: type: boolean default: true endOfDayTime: type: integer default: 0 pickUpSlaId: type: string format: uuid description: Reference to Pick up speed (Acceptable time) dropOffSlaId: type: string format: uuid description: Reference to Drop off speed (Acceptable time) milageTiers: type: array items: type: object properties: maxMilage: type: number baseDeliveryPriceCent: type: number baseReturnPriceCent: type: number priceIsPerMile: type: boolean deliveryPremium: properties: holidayDeliveryAddnlPercentage: type: number format: float nullable: true default: 0 holidayReturnAddnlPercentage: type: number format: float nullable: true default: 0 fuelDeliveryAddnlPercentage: type: number format: float nullable: true default: 0 fuelReturnAddnlPercentage: type: number format: float nullable: true default: 0 weekendDeliveryAddnlPercentage: type: number format: float nullable: true default: 0 weekendReturnAddnlPercentage: type: number format: float nullable: true default: 0 default: holidayDeliveryAddnlPercentage: 0 holidayReturnAddnlPercentage: 0 fuelDeliveryAddnlPercentage: 0 fuelReturnAddnlPercentage: 0 weekendDeliveryAddnlPercentage: 0 weekendReturnAddnlPercentage: 0 marketModifiers: type: array items: type: object properties: basePriceMultiplier: type: number format: float default: 1 onerailBias: type: number format: float default: 0.5 fairnessWeight: type: number format: float default: 1 market: properties: name: type: string default: '["USA"]' location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' radiusMiles: type: number description: radius in miles default: 0 locationPoly: type: array items: type: array items: type: number default: - - -125.39286493385357 - 49.20242308397835 - - -105.92141809800458 - 49.216777682927166 - - -95.61440561758009 - 49.180883370544926 - - -95.19508844965557 - 49.54578382639489 - - -88.31397364505658 - 48.46480528255723 - - -82.96179514900709 - 46.22458499363692 - - -80.96685824473232 - 42.95148389525707 - - -74.85411034678864 - 45.17244003577866 - - -71.42202651134495 - 45.55357008932487 - - -68.99633540295757 - 48.011135899610636 - - -67.46374262952007 - 46.93065322284528 - - -66.74139155530132 - 44.51715715733833 - - -67.75488032483257 - 42.746090924448005 - - -75.01684321545757 - 35.82570414109513 - - -79.71899165295757 - 30.80683321065342 - - -78.97192134045757 - 24.290890346298653 - - -97.78051509045757 - 25.551221859961565 - - -107.23974360608257 - 30.750199671011462 - - -124.2575658717076 - 32.09081981661354 - - -125.39286493385357 - 49.20242308397835 default: - basePriceMultiplier: 1 onerailBias: 0.5 fairnessWeight: 1 market: name: '["USA"]' location: latitude: 0 longitude: 0 radiusMiles: 0 locationPoly: - - -125.39286493385357 - 49.20242308397835 - - -105.92141809800458 - 49.216777682927166 - - -95.61440561758009 - 49.180883370544926 - - -95.19508844965557 - 49.54578382639489 - - -88.31397364505658 - 48.46480528255723 - - -82.96179514900709 - 46.22458499363692 - - -80.96685824473232 - 42.95148389525707 - - -74.85411034678864 - 45.17244003577866 - - -71.42202651134495 - 45.55357008932487 - - -68.99633540295757 - 48.011135899610636 - - -67.46374262952007 - 46.93065322284528 - - -66.74139155530132 - 44.51715715733833 - - -67.75488032483257 - 42.746090924448005 - - -75.01684321545757 - 35.82570414109513 - - -79.71899165295757 - 30.80683321065342 - - -78.97192134045757 - 24.290890346298653 - - -97.78051509045757 - 25.551221859961565 - - -107.23974360608257 - 30.750199671011462 - - -124.2575658717076 - 32.09081981661354 - - -125.39286493385357 - 49.20242308397835 responses: '200': description: Organization content: application/json: schema: type: object description: Organization properties: contract: $ref: '#/paths/~1v1~1shipper-contract/post/responses/200/content/application~1json/schema' location: $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' serviceLevel: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1service-level/post/responses/200/content/application~1json/schema' serviceLevelAgreement: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/toggle-show-hidden-subscription-plans: parameters: - name: organizationId in: path required: true schema: type: string put: x-exegesis-controller: Organization summary: Update LP show-hidden-subscription-plans features operationId: toggleShowHiddenSubscriptionPlans tags: - Organization requestBody: required: true content: application/json: schema: type: object description: LP showHiddenSubscriptionPlans settings properties: showHiddenSubscriptionPlans: type: boolean responses: '200': description: Current LP features after update content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1toggle-show-hidden-subscription-plans/put/requestBody/content/application~1json/schema' /v1/organization/shipper-lp-configuration: post: x-exegesis-controller: Organization summary: Upserts Shipper LP Configurations operationId: upsertShipperLPConfigurations tags: - Organization requestBody: required: true content: application/json: schema: type: object properties: shipperLpConfigurations: type: array items: type: object description: Shipper LP Configuration for Own Rate Card required: - shipperOrganizationId - lpOrganizationId - serviceLevelId properties: id: type: string format: uuid shipperOrganizationId: type: string format: uuid lpOrganizationId: type: string format: uuid serviceLevelId: type: string format: uuid priority: type: number nullable: true default: 1 useLpCostAsShipperCost: type: boolean default: true responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '500': $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/shipper-lp-configuration/delete: put: x-exegesis-controller: Organization summary: Delete Shipper LP Configuration operationId: deleteShipperLPConfiguration tags: - Organization requestBody: required: true content: application/json: schema: type: object description: Shipper LP Configuration for Own Rate Card required: - shipperOrganizationId - lpOrganizationId - serviceLevelId properties: shipperOrganizationId: type: string format: uuid lpOrganizationId: type: string format: uuid serviceLevelId: type: string format: uuid responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '500': $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lpranking-datadomain-configuration: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: Organization summary: Upserts LP Ranking Data Domain Configuration operationId: upsertLPRankingDataDomainConfiguration tags: - Organization requestBody: required: true content: application/json: schema: type: object description: LP Ranking Data Domain Configuration required: - cancellationRateLookupHours - cancellationRateLookupLimit - slaMetRateLookupHours - slaMetRateLookupLimit properties: cancellationRateLookupHours: type: number cancellationRateLookupLimit: type: number slaMetRateLookupHours: type: number slaMetRateLookupLimit: type: number responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '500': $ref: '#/paths/~1v1~1routes/get/responses/404' get: x-exegesis-controller: Organization summary: Get LP Ranking Data Domain Configuration operationId: getLPRankingDataDomainConfiguration tags: - Organization responses: '200': description: LP Ranking DataDomain Configuration for Organization content: application/json: schema: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1lpranking-datadomain-configuration/post/requestBody/content/application~1json/schema' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '500': $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/geofence: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's geofence operationId: getGeofence tags: - Organization responses: '200': description: Geofence configuration for an organization content: application/json: schema: type: object description: Geofence configuration for an organization properties: organizationId: type: string deliveryAutoStatusChange: type: boolean pickupPrimaryMeters: type: number format: float pickupSecondaryMeters: type: number format: float dropoffPrimaryMeters: type: number format: float dropoffSecondaryMeters: type: number format: float etaThresholdSeconds: type: integer createdById: type: string nullable: true updatedById: type: string nullable: true '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Organization summary: Create organization's geofence operationId: createGeofence tags: - Organization requestBody: description: Create organization's geofence required: true content: application/json: schema: type: object required: - deliveryAutoStatusChange - pickupPrimaryMeters - pickupSecondaryMeters - dropoffPrimaryMeters - dropoffSecondaryMeters - etaThresholdSeconds properties: deliveryAutoStatusChange: type: boolean pickupPrimaryMeters: type: number format: float minimum: 0 pickupSecondaryMeters: type: number format: float minimum: 0 dropoffPrimaryMeters: type: number format: float minimum: 0 dropoffSecondaryMeters: type: number format: float minimum: 0 etaThresholdSeconds: type: integer minimum: 0 responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1geofence/get/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Organization summary: Update organization's geofence operationId: updateGeofence tags: - Organization requestBody: description: Update organization's geofence required: true content: application/json: schema: type: object required: - deliveryAutoStatusChange - pickupPrimaryMeters - pickupSecondaryMeters - dropoffPrimaryMeters - dropoffSecondaryMeters - etaThresholdSeconds properties: deliveryAutoStatusChange: type: boolean pickupPrimaryMeters: type: number format: float pickupSecondaryMeters: type: number format: float dropoffPrimaryMeters: type: number format: float dropoffSecondaryMeters: type: number format: float etaThresholdSeconds: type: integer responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1geofence/get/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/login-security-config: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: Organization summary: Get organization's login security configuration operationId: getLoginSecurityConfig tags: - Organization responses: '200': description: Login security configuration for an organization content: application/json: schema: type: object description: Login security configuration for an organization properties: organizationId: type: string passwordExpiration: type: string enum: - never - 30_days - 60_days - 90_days - 120_days sessionTimeout: type: string enum: - 15_min - 30_min - 60_min - 120_min - never mfaEnableForGeneralAccess: type: boolean mfaEnableForOneRailDriverAccess: type: boolean mfaEnableForFreightAuditAndPay: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Organization summary: Create or update organization's login security configuration operationId: upsertLoginSecurityConfig tags: - Organization requestBody: description: Create or update organization's login security configuration required: true content: application/json: schema: type: object required: - passwordExpiration - sessionTimeout - mfaEnableForGeneralAccess - mfaEnableForOneRailDriverAccess - mfaEnableForFreightAuditAndPay properties: passwordExpiration: type: string enum: - never - 30_days - 60_days - 90_days - 120_days sessionTimeout: type: string enum: - 15_min - 30_min - 60_min - 120_min - never mfaEnableForGeneralAccess: type: boolean mfaEnableForOneRailDriverAccess: type: boolean mfaEnableForFreightAuditAndPay: type: boolean responses: '200': $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1login-security-config/get/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/deliveries: parameters: - name: carrierId in: path required: true schema: type: string - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: filter in: query description: 'JSON string { state: DeliveryState[], search: string, searchOrderId: string, searchShipmentId: string }' required: false schema: type: string get: x-exegesis-controller: Carrier summary: Get carrier's deliveries operationId: getCarrierDeliveries tags: - Carrier responses: '200': $ref: '#/paths/~1v1~1deliveries/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/delivery/{deliveryId}/failed: parameters: - name: carrierId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Carrier summary: Resend to push-api /failed - moving delivery to CANCELED_BY_LP state operationId: failDelivery tags: - Carrier requestBody: content: application/json: schema: type: object properties: reason: description: Reason of failure type: string note: description: Note type: string responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/delivery/{deliveryId}/route: parameters: - name: carrierId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Carrier summary: Create new route for delivery and assign driver with vehicle (OneRail) operationId: createRoute tags: - Carrier requestBody: content: application/json: schema: type: object required: - userId properties: ownFleetVehicleId: description: Own fleet vehicle id for new route type: string format: uuid userId: description: Driver id for assign to new route type: string format: uuid responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/route/{routeId}/assign: parameters: - name: carrierId in: path required: true schema: type: string - name: routeId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Carrier summary: Assign driver to exists carrier route operationId: assignDriverToRoute tags: - Carrier requestBody: content: application/json: schema: type: object required: - userId properties: userId: description: Driver id for assign to new route type: string format: uuid vehicleId: description: New recommended vehicle for new route type: string format: uuid responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/delivery/select/{deliveryId}: parameters: - name: carrierId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid - name: attributes in: query required: true schema: type: array items: type: string - name: include in: query required: false schema: type: array items: type: string get: x-exegesis-controller: Carrier summary: Get a delivery operationId: getDeliverySelectively tags: - Carrier responses: '200': description: Delivery Record content: application/json: schema: allOf: - type: object description: Delivery Record properties: id: type: string format: uuid fromId: type: string format: uuid deliveryAttemptId: type: string format: uuid from: description: Pickup location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' to: description: Drop off location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' deliveryType: type: string notes: type: string triggeredBy: type: string state: type: string deliveryOptions: type: array items: $ref: '#/paths/~1v1~1delivery~1options/get/responses/200/content/application~1json/schema/items' deliverySpeedMin: type: integer deliveryRating: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryRating' shipperContractSla: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/shipperContractSla' order: allOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/order/allOf/0' - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/order/allOf/1' deliveryAttempts: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/deliveryAttempts/items' capabilityTags: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/capabilityTags/items' deliveryExceptions: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200/content/application~1json/schema' createdAt: type: string format: date-time updatedAt: type: string format: date-time shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true contractedShipperCostCent: type: integer actualShipperCostCent: type: integer slaPickupBufferMinute: type: number slaDropoffBufferMinute: type: number computedDistanceMile: type: number creationReason: type: string shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true deliveryShipperCostDeviations: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/deliveryShipperCostDeviations/items' orderItems: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' deliveryWindows: nullable: true type: array items: type: object properties: id: type: string format: uuid deliveryId: type: string format: uuid deliverySegment: type: string enum: - PICKUP - DROPOFF opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format version: type: number createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time deliveryAppointments: nullable: true type: array items: type: object properties: durationMins: type: number description: minutes as an integer description: type: string deliverySegment: type: string enum: - PICKUP - DROPOFF deliveryCustomFields: type: array items: type: object nullable: true properties: fieldName: type: string value: type: string dataType: type: string packingBoxes: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/packingBoxes/items' ownFleetVehicle: type: object description: Vehicle properties: id: type: string format: uuid name: type: string mileage: type: integer nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200/content/application~1json/schema/allOf/3' '401': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/delivery/{deliveryId}/deliveryfiles: parameters: - name: carrierId in: path required: true schema: type: string - name: deliveryId in: path required: true description: delivery id schema: type: string format: uuid - name: fileType in: query description: file type string schema: type: array items: type: string get: x-exegesis-controller: Carrier summary: Get the delivery's deliveryFiles operationId: getDeliveryFiles security: - ApiKey: [] AppId: [] - bearer: [] tags: - Carrier responses: '200': description: Get delivery deliveryFile records content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1deliveryfiles/get/responses/200/content/application~1json/schema/items' '401': $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/delivery/{deliveryId}/delivery-attempts: parameters: - name: carrierId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Carrier summary: Get a delivery's attempts operationId: getCarrierDeliveryAttempts tags: - Carrier responses: '200': $ref: '#/paths/~1v2~1organization~1delivery~1%7BdeliveryId%7D~1delivery-attempts-api/get/responses/200' '401': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/delivery/{deliveryId}/images-download: parameters: - name: deliveryId in: path required: true description: Delivery id schema: type: string - name: carrierId in: path required: true description: Carrier id schema: type: string post: x-exegesis-controller: Carrier summary: Get all POP or POD images for delivery operationId: downloadCarrierDeliveryImages tags: - Carrier requestBody: required: true content: application/json: schema: type: object properties: imageType: description: Type of file bundle to generate (POP or POD) type: string enum: - pop - pod files: description: List of files to bundle type: array items: type: string responses: '200': description: Successful response. content: application/zip: schema: description: Zip file of requested images type: string format: binary default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/products: parameters: - name: carrierId in: path required: true schema: type: string get: x-exegesis-controller: Carrier summary: Get organization's Products in service mode operationId: getCarrierProducts parameters: - name: deliveryId in: query description: Delivery that is using in service mode. required: true schema: type: string - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 250 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { search: string }' required: false schema: type: string tags: - Carrier responses: '200': description: Products content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1product~1%7BproductId%7D/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/carrier/{carrierId}/delivery/{deliveryId}/partial-update-api: parameters: - name: carrierId in: path required: true schema: type: string - name: deliveryId in: path required: true schema: type: string patch: x-exegesis-controller: Carrier summary: Partial update order from API call with one or more deliveries operationId: partialUpdateOrder tags: - Carrier requestBody: $ref: '#/paths/~1v1~1order~1partial-update-api/put/requestBody' responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location: post: x-exegesis-controller: Location summary: Creates a new Location operationId: createLocation tags: - Location requestBody: required: true content: application/json: schema: type: object description: Location required: - name - address properties: name: type: string address: type: object location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' storeNumber: type: string nullable: true phoneNumber: type: string nullable: true primaryContactId: type: string nullable: true organizationId: type: string format: uuid canDispatchDeliveries: type: boolean shippingInstructions: type: string nullable: true receivingInstructions: type: string nullable: true accessCode: type: string contactName: type: string contactEmailAddress: type: string serviceHours: type: array items: type: object required: - startMin - endMin properties: dayOfWeek: type: number nullable: true startMin: type: number endMin: type: number holidayId: type: string nullable: true shipperLocationExtraData: type: object nullable: true properties: slaPickupBufferMinutes: type: number slaDropoffBufferMinutes: type: number cutOffTimeMins: type: number nullable: true hasLoadingDock: type: boolean default: false nullable: true physicalLocation: type: object nullable: true properties: altAddress: type: object properties: label: type: string state: type: string county: nullable: true type: string street: nullable: true type: string street2: nullable: true type: string address1: nullable: true type: string address2: nullable: true type: string district: nullable: true type: string stateCode: type: string postalCode: type: string city: type: string countryCode: type: string countryName: type: string houseNumber: nullable: true type: string additionalData: type: array items: type: object altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' preferences: $ref: '#/paths/~1v1~1preferences~1default/get/responses/200/content/application~1json/schema' ean: type: string nullable: true responses: '200': description: Location content: application/json: schema: type: object description: Location required: - name properties: id: type: string name: type: string address: type: string location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' cutOffTimeMins: type: number nullable: true storeNumber: type: string nullable: true msa: type: string nullable: true hasLoadingDock: type: boolean default: false nullable: true physicalLocation: type: object nullable: true properties: altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' preferences: $ref: '#/paths/~1v1~1preferences~1%7BcontextId%7D/get/responses/200/content/application~1json/schema' ean: type: string nullable: true totalUsers: type: integer minimum: 0 nullable: true description: Number of users linked to this location (excludes soft-deleted users). Populated by the organization locations list endpoint. default: $ref: '#/paths/~1v1~1routes/get/responses/404' get: x-exegesis-controller: Location summary: Get all locations user has access to operationId: getAllLocationsGeoPoint parameters: - name: organizationId in: query required: false schema: type: array items: type: string format: uuid nullable: true - name: limit in: query required: false schema: type: number default: 1000 tags: - Location responses: '200': description: Location content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string location: type: object description: Geo Point with latitude and longitude required: - latitude - longitude properties: latitude: type: number longitude: type: number organization: type: object properties: id: type: string format: uuid name: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}: parameters: - name: locationId in: path required: true schema: type: string get: x-exegesis-controller: Location summary: Get location by id operationId: getLocation tags: - Location responses: '200': description: Location content: application/json: schema: $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Location summary: Updates location operationId: updateLocation tags: - Location requestBody: required: true content: application/json: schema: type: object description: Location properties: name: type: string address: type: object location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true storeNumber: type: string nullable: true primaryContactId: type: string nullable: true canDispatchDeliveries: type: boolean shippingInstructions: type: string nullable: true receivingInstructions: type: string nullable: true serviceHours: type: array items: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/serviceHours/items' shipperLocationExtraData: type: object nullable: true properties: id: type: string nullable: true slaPickupBufferMinutes: type: number slaDropoffBufferMinutes: type: number cutOffTimeMins: type: number nullable: true hasLoadingDock: type: boolean default: false nullable: true physicalLocation: type: object nullable: true properties: altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' preferences: $ref: '#/paths/~1v1~1preferences~1default/get/responses/200/content/application~1json/schema' ean: type: string nullable: true responses: '200': description: Location content: application/json: schema: $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Location summary: Remove location operationId: removeLocation tags: - Location responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/users: parameters: - name: locationId in: path required: true description: location id schema: type: string get: x-exegesis-controller: Location summary: Get Location's users operationId: getLocationUsers parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: search in: query description: Search user by name required: false schema: type: string tags: - Location responses: '200': description: User Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Location summary: adds Location's users operationId: addUsersToLocation requestBody: required: true content: application/json: schema: type: array description: User ids to add to this locaiton items: type: string tags: - Location responses: '200': description: Array of successful associations content: application/json: schema: type: object description: Returns all assosiations maded between locations and users as well as organization and users properties: locations: type: array items: type: object organizations: type: array items: type: object '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/users/api: get: security: - ApiKey: [] AppId: [] x-exegesis-controller: Location summary: Get Location's users (API) operationId: getUsersApi parameters: - name: locationId in: path required: true description: location id schema: type: string - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: search in: query description: Search user by name required: false schema: type: string tags: - Location responses: '200': description: User Records content: application/json: schema: $ref: '#/paths/~1v1~1location~1%7BlocationId%7D~1users/get/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/user/{userId}: parameters: - name: userId in: path required: true schema: type: string format: uuid - name: locationId in: path required: true schema: type: string delete: x-exegesis-controller: Location summary: deletes Location's users operationId: removeUserFromLocation tags: - Location responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/customer-locations: parameters: - name: locationId in: path required: true schema: type: string get: x-exegesis-controller: Location summary: Get the customer locations for this shipper location operationId: getCustomerLocations parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { search: string }' required: false schema: type: string - name: originLocationId in: query description: Origin location ID for orders with origin location required: false schema: type: string nullable: true tags: - Location responses: '200': description: Customer locations serviced by this shipper location content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1location~1%7BstoreNumber%7D~1by-store-number/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/bulk-customer-locations: post: x-exegesis-controller: Location summary: CSV file with customer locations operationId: bulkCustomerLocations tags: - Location requestBody: $ref: '#/paths/~1v1~1product~1bulk/post/requestBody' responses: '200': description: Successfully processed bulk customer locations content: application/json: schema: type: object properties: key: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/customer-location: parameters: - name: locationId in: path required: true schema: type: string post: x-exegesis-controller: Location summary: Create a customer location for the shipper location operationId: createCustomerLocation tags: - Location requestBody: required: true content: application/json: schema: type: object description: Customer location required: - name - address properties: name: type: string nullable: true address: type: object location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' phoneNumber: type: string nullable: true receivingInstructions: type: string nullable: true contactName: type: string nullable: true contactEmailAddress: type: string nullable: true storeNumber: type: string nullable: true physicalLocation: type: object nullable: true required: - altAddress - altLocation properties: altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' serviceHours: type: array nullable: true items: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/serviceHours/items' responses: '200': description: Customer location content: application/json: schema: $ref: '#/paths/~1v1~1location~1%7BstoreNumber%7D~1by-store-number/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/customer-location/{customerLocationId}: parameters: - name: locationId in: path required: true schema: type: string - name: customerLocationId in: path required: true schema: type: string get: x-exegesis-controller: Location summary: Get customer location operationId: getCustomerLocation tags: - Location responses: '200': description: Customer location content: application/json: schema: $ref: '#/paths/~1v1~1location~1%7BstoreNumber%7D~1by-store-number/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Location summary: Update customer location operationId: updateCustomerLocation tags: - Location requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1location~1%7BlocationId%7D~1customer-location/post/requestBody/content/application~1json/schema' responses: '200': description: Customer location content: application/json: schema: $ref: '#/paths/~1v1~1location~1%7BstoreNumber%7D~1by-store-number/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Location summary: Remove customer location association to the shipper location operationId: removeCustomerLocation tags: - Location responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/customer-location/{customerLocationId}/change-association: parameters: - name: locationId in: path required: true schema: type: string - name: customerLocationId in: path required: true schema: type: string post: x-exegesis-controller: Location summary: Change an existing associated customer location to a different shipper location operationId: changeCustomerLocationAssociation tags: - Location requestBody: required: true content: application/json: schema: type: object required: - newShipperLocationId properties: newShipperLocationId: type: string format: uuid description: The new shipper location to associate the customer location responses: '200': description: Customer location content: application/json: schema: $ref: '#/paths/~1v1~1location~1%7BstoreNumber%7D~1by-store-number/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/locations: get: x-exegesis-controller: Location summary: Get list of locations for filtering operationId: getFilterLocationsByGet parameters: - name: organizationIds in: query required: false schema: type: array items: type: string format: uuid nullable: true - name: limit in: query required: false schema: type: number default: 100 - name: filter in: query description: 'JSON string { search: string } or { search: { name: string, storeNumber: string, pickupLocationAddress: string } } or { search: [ uuid ] }' required: false schema: type: string properties: search: oneOf: - type: string - type: array items: type: string format: uuid - type: object description: Filter as a object properties: name: type: string storeNumber: type: string pickupLocationAddress: type: string responses: '200': description: Location content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string storeNumber: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Location description: "Filter locations with one of the following items:\n- { search: { name: string, storeNumber: string, pickupLocationAddress:\ \ string } } you can pass search and filter locations by name, storeNumber, pickupLocationAddress includes search\ \ \n- or\n- { locationIds: [ uuid ] } you can pass locationIds as an array of locationId and search in locations by\ \ their id or ids\n" summary: Get list of locations for filtering operationId: getFilterLocationsByPost requestBody: required: true content: application/json: schema: type: object properties: organizationIds: type: array items: type: string format: uuid nullable: true limit: type: number default: 100 locationIds: type: array items: type: string format: uuid nullable: true search: type: object properties: name: type: string nullable: true storeNumber: type: string nullable: true pickupLocationAddress: type: string nullable: true responses: '200': description: Location content: application/json: schema: $ref: '#/paths/~1v1~1locations/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organizations/locations: post: x-exegesis-controller: Location summary: Get list of locations of one or different orgs for filtering operationId: getAllFilterLocations requestBody: required: true content: application/json: schema: type: array items: type: string responses: '200': description: Location content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string storeNumber: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/bulk: parameters: - name: locationId in: path required: true schema: type: string post: x-exegesis-controller: Location summary: Bulk delete selected customer locations for the shipper location operationId: bulkDeleteCustomerLocations tags: - Location requestBody: required: true content: application/json: schema: description: Customer location ids to be deleted type: array items: type: string responses: '200': description: Location content: application/json: schema: $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Location summary: Bulk delete ALL customer locations for the shipper location operationId: bulkDeleteAllCustomerLocations tags: - Location responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{storeNumber}/by-store-number: parameters: - name: storeNumber in: path required: true schema: type: string put: x-exegesis-controller: Location summary: Update location by storeNumber operationId: updateLocationByStoreNumber tags: - Location requestBody: required: true content: application/json: schema: type: object description: Location properties: name: type: string nullable: true address: type: object nullable: true location: nullable: true type: object $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' phoneNumber: type: string nullable: true receivingInstructions: type: string nullable: true contactName: type: string nullable: true contactEmailAddress: type: string nullable: true storeNumber: type: string nullable: true physicalLocation: type: object nullable: true required: - altAddress - altLocation properties: altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' serviceHours: type: array nullable: true items: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/serviceHours/items' responses: '200': description: Location content: application/json: schema: type: object description: Customer Location properties: id: type: string format: uuid name: type: string address: type: object location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' phoneNumber: type: string receivingInstructions: type: string contactName: type: string contactEmailAddress: type: string storeNumber: type: string nullable: true timezone: type: string nullable: true timezoneOffset: type: number timezoneAbbreviation: type: string nullable: true msa: type: string nullable: true physicalLocation: type: object nullable: true properties: altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' serviceHours: type: array nullable: true items: type: object properties: id: type: string format: uuid dayOfWeek: type: number startMin: type: number endMin: type: number holiday: type: object nullable: true properties: id: type: string format: uuid holidayName: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/associated-locations/{organizationId}: post: x-exegesis-controller: Location summary: Get Associated Locations for an Organization operationId: getAssociatedLocations tags: - AssociatedLocation - DOBO parameters: - name: organizationId in: path required: true style: simple explode: false schema: type: string requestBody: required: true content: application/json: schema: type: object properties: originLocationIds: type: array items: type: string description: Optional list of origin location IDs to filter results. pagination: type: object properties: offset: type: integer minimum: 0 limit: type: integer minimum: 1 sortby: type: string order: type: string enum: - ASC - DESC description: Pagination and sorting options. responses: '200': description: List of associated origin location IDs content: application/json: schema: type: array items: type: object properties: id: type: string name: type: string storeNumber: type: string msa: type: string address: type: object properties: city: type: string label: type: string state: type: string county: type: string street: type: string street2: type: string district: type: string stateCode: type: string postalCode: type: string countryCode: type: string countryName: type: string houseNumber: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/{organizationId}/origin-pickup-associations: parameters: - name: organizationId in: path required: true schema: type: string get: x-exegesis-controller: OriginPickupAssociations summary: Get all origin pickup associations operationId: getAllOriginPickupAssociations tags: - OriginPickupAssociations parameters: - name: offset in: query description: Number of items to skip before returning the results. schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. schema: type: integer minimum: 1 default: 20 responses: '200': description: Origin Pickup Association Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: Organization properties: id: type: string format: uuid originLocationId: type: string format: uuid pickupLocationId: type: string format: uuid updatedAt: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user: post: x-exegesis-controller: User summary: Creates a new User operationId: createUser tags: - User requestBody: required: true content: application/json: schema: type: object description: User required: - emailAddress - firstName - lastName - organizationId properties: emailAddress: type: string format: email firstName: type: string lastName: type: string phoneNumber: type: string nullable: true active: type: boolean driver: $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1/properties/driver' title: type: string nullable: true organizationId: type: string format: uuid employeeId: type: string nullable: true teamIds: type: array items: type: string format: uuid mvrCertified: type: boolean nullable: false default: false organizations: type: array items: type: string preferences: $ref: '#/paths/~1v1~1preferences~1default/get/responses/200/content/application~1json/schema' responses: '200': description: User record content: application/json: schema: $ref: '#/paths/~1v1~1login/post/responses/200/content/application~1json/schema/allOf/1' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid get: x-exegesis-controller: User summary: Get user's record operationId: getUser tags: - User responses: '200': $ref: '#/paths/~1v1~1user/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: User summary: Update user's record operationId: updateUser tags: - User requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1user/post/requestBody/content/application~1json/schema' responses: '200': $ref: '#/paths/~1v1~1user/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: User summary: Deletes User operationId: removeUser tags: - User responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/welcome-email: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid get: x-exegesis-controller: User summary: Resend welcome email operationId: welcomeEmail tags: - User responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/roles: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid post: x-exegesis-controller: User summary: Update user roles operationId: updateRoles tags: - User requestBody: required: true content: application/json: schema: description: array of all roles this user should have access type: array items: type: object required: - roleId - context properties: roleId: type: string format: uuid context: type: string enum: - GLOBAL - ORGANIZATION - LOCATION contextId: type: string description: if this role needs to be applied to a particular organization or location format: uuid nullable: true excludesPermissions: description: array of all permission id this user should NOT have access type: array nullable: true items: type: string format: uuid responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' get: x-exegesis-controller: User summary: Get all user's roles and permissions operationId: getUserRoles tags: - User responses: '200': description: User roles content: application/json: schema: description: array of all roles this user should have access type: array items: type: object description: User roles properties: role: $ref: '#/paths/~1v1~1role/post/responses/200/content/application~1json/schema' context: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1roles/post/requestBody/content/application~1json/schema/items/properties/context' excludesPermissions: type: array nullable: true items: type: string format: uuid contextId: type: string format: uuid nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/roles/api: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid get: x-exegesis-controller: User summary: Get all user's roles and permissions (API) security: - ApiKey: [] AppId: [] operationId: getUserRolesApi tags: - User responses: '200': description: User roles content: application/json: schema: description: array of all roles this user should have access type: array items: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1roles/get/responses/200/content/application~1json/schema/items' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/permissions: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid get: x-exegesis-controller: User summary: Get All user's permissions across all roles. Only displays permissions to loggin user. operationId: getPermissions tags: - User responses: '200': description: Permission Records content: application/json: schema: type: array items: type: object description: Permission properties: id: type: string format: uuid name: type: string label: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/fleet/{fleetId}/last-known-driver-location: parameters: - name: fleetId in: path required: true description: Fleet Id schema: type: string post: x-exegesis-controller: User summary: Updates a user's last known geo location by fleet id security: - ApiKey: [] AppId: [] operationId: updateFleetLastKnownLocation tags: - User requestBody: required: true content: application/json: schema: description: Geo Point type: object required: - latitude - longitude properties: latitude: type: number longitude: type: number responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/user-view: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid post: x-exegesis-controller: User summary: Create user view filter operationId: createUserView tags: - User requestBody: required: true content: application/json: schema: type: object description: UserView required: - page - filter - name properties: page: type: string enum: - dashboard - deliveries - orders - needs_attention - locations - users - location-users - dashboard-users - invoices - disputes filter: type: object nullable: true name: type: string default: type: boolean default: false order: type: integer description: View display order (lower values appear first) columns: type: array description: Ordered list of visible column keys nullable: true items: type: string responses: '200': description: User record content: application/json: schema: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1user-view~1%7BuserViewId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/user-view/{userViewId}: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid - name: userViewId in: path required: true description: User View id schema: type: string get: x-exegesis-controller: User summary: Get user view filter operationId: getUserView tags: - User responses: '200': description: User view details content: application/json: schema: type: object description: UserView required: - page - filter - name properties: id: type: string userId: type: string format: uuid page: type: string enum: - dashboard - deliveries - orders - needs_attention - locations - users - location-users - dashboard-users - invoices - disputes filter: type: string nullable: true name: type: string default: type: boolean default: false order: type: integer description: View display order (lower values appear first) default: 0 columns: type: array description: Ordered list of visible column keys nullable: true items: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: User summary: Update User View filter operationId: updateUserView tags: - User parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1user-view/post/requestBody/content/application~1json/schema' responses: '200': $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1user-view/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: User summary: Delete User View filter operationId: deleteUserView tags: - User responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/user-views: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: page in: query description: Filter returned views by page required: false schema: type: string enum: - dashboard - deliveries - orders - needs_attention - locations - users - location-users - dashboard-users - invoices - disputes get: x-exegesis-controller: User summary: Get all user views filter operationId: getAllUserView tags: - User responses: '200': description: List of user views content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1user-view~1%7BuserViewId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/{userId}/user-views/cardinality: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid put: x-exegesis-controller: User summary: Bulk update user view order description: Updates the order field for multiple user views at once. Does not affect other fields like default/favorite status. operationId: bulkUpdateUserViewCardinality tags: - User requestBody: required: true content: application/json: schema: type: object required: - views properties: views: type: array description: Array of view IDs with their new order values items: type: object required: - id - order properties: id: type: string format: uuid description: The user view ID order: type: integer description: The new order value (1-based) responses: '200': description: Successfully updated view orders content: application/json: schema: type: object properties: success: type: boolean updated: type: integer description: Number of views updated '400': description: Bad request - no views provided, invalid format, or duplicate view IDs '404': description: One or more views not found or do not belong to user default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/policy-check: get: x-exegesis-controller: User summary: check if latest privacy policy accepted by User operationId: checkPolicy tags: - User responses: '200': description: Latest privacy policy acceptance result for User. content: application/json: schema: type: object properties: policyCheckPassed: type: boolean policy: type: object nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/policy-accept: post: x-exegesis-controller: User summary: Update policy accept operationId: updatePolicyAccept tags: - User requestBody: required: true content: application/json: schema: type: object description: User required: - policyVersion properties: policyVersion: type: integer nullable: false responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/user/{userId}/roles: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid - name: organizationId in: path required: true description: organization id schema: type: string post: x-exegesis-controller: User summary: Update user roles operationId: updateUserOrganizationRoles tags: - User requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1location~1%7BlocationId%7D~1user~1%7BuserId%7D~1roles/post/requestBody/content/application~1json/schema' responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' get: x-exegesis-controller: User summary: Get all user's roles and permissions for the specified organization operationId: getUserOrganizationRoles tags: - User responses: '200': description: User roles content: application/json: schema: description: array of all roles this user should have access type: array items: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1roles/get/responses/200/content/application~1json/schema/items' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/location/{locationId}/user/{userId}/roles: parameters: - name: userId in: path required: true description: User id schema: type: string format: uuid - name: locationId in: path required: true description: location id schema: type: string post: x-exegesis-controller: User summary: Update user roles operationId: updateUserLocationRoles tags: - User requestBody: required: true content: application/json: schema: description: array of all roles this user should have access type: array items: type: object required: - roleId - context properties: roleId: type: string format: uuid context: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1roles/post/requestBody/content/application~1json/schema/items/properties/context' contextId: type: string description: if this role needs to be applied to a particular organization or location format: uuid nullable: true excludesPermissions: description: array of all permission id this user should NOT have access type: array nullable: true items: type: string format: uuid responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' get: x-exegesis-controller: User summary: Get all user's roles and permissions for the specified location operationId: getUserLocationRoles tags: - User responses: '200': description: User roles content: application/json: schema: description: array of all roles this user should have access type: array items: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1roles/get/responses/200/content/application~1json/schema/items' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/preferences/default: get: x-exegesis-controller: Preference summary: get default preference object for any context operationId: getDefault tags: - Preference responses: '200': description: Preference default object content: application/json: schema: type: object nullable: true properties: locale: type: string description: language-country determinant default: EN_US measurementSystem: type: string enum: - IMPERIAL - METRIC description: measurement system dateFormat: type: string enum: - MM-DD-YY - DD-MM-YY - YY-MM-DD - DD/MM/YY - MM/DD/YY - YY/MM/DD - MM/DD/YYYY - DD/MM/YYYY - YYYY/MM/DD description: date format. Must match `viewDateFormats` from `@bcatania18/operations-schema` (see core-or1 PR timeFormat: type: string enum: - 12H - 24H description: time format timezone: $ref: '#/paths/~1v1~1preferences~1%7BcontextType%7D~1%7BcontextId%7D~1timezone/post/requestBody/content/application~1json/schema/properties/timezone' currency: type: string description: currency default: USD default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/preferences/{contextId}: parameters: - name: contextId in: path required: true description: User/Location/Organization id schema: type: string format: uuid get: x-exegesis-controller: Preference summary: Get Preference record by context id operationId: getByContextId tags: - Preference responses: '200': description: Preference record content: application/json: schema: type: object properties: id: type: string contextId: type: string description: User/Location/Organization id context: type: string enum: - USER - LOCATION - ORGANIZATION locale: type: string description: language-country determinant default: EN_US measurementSystem: type: string enum: - IMPERIAL - METRIC description: measurement system dateFormat: type: string enum: - MM-DD-YY - DD-MM-YY - YY-MM-DD - DD/MM/YY - MM/DD/YY - YY/MM/DD - MM/DD/YYYY - DD/MM/YYYY - YYYY/MM/DD description: date format. Must match `viewDateFormats` from `@bcatania18/operations-schema` (see core-or1 PR timeFormat: type: string enum: - 12H - 24H description: time format timezone: $ref: '#/paths/~1v1~1preferences~1%7BcontextType%7D~1%7BcontextId%7D~1timezone/post/requestBody/content/application~1json/schema/properties/timezone' currency: type: string description: currency default: USD default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/preferences/{contextType}/{contextId}/date-format: parameters: - name: contextType in: path required: true description: The context level for the preference schema: type: string enum: - ORGANIZATION - LOCATION - USER - name: contextId in: path required: true description: User/Location/Organization id schema: type: string format: uuid get: x-exegesis-controller: Preference summary: Get date format preference for a specific context operationId: getDateFormat tags: - Preference responses: '200': description: Date format preference content: application/json: schema: type: object properties: dateFormat: type: string enum: - MM-DD-YY - DD-MM-YY - YY-MM-DD - DD/MM/YY - MM/DD/YY - YY/MM/DD - MM/DD/YYYY - DD/MM/YYYY - YYYY/MM/DD description: Date format preference. Must match `viewDateFormats` from `@bcatania18/operations-schema` (see core-or1 PR default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Preference summary: Set date format preference for a specific context operationId: setDateFormat tags: - Preference requestBody: required: true content: application/json: schema: type: object properties: dateFormat: type: string enum: - MM-DD-YY - DD-MM-YY - YY-MM-DD - DD/MM/YY - MM/DD/YY - YY/MM/DD - MM/DD/YYYY - DD/MM/YYYY - YYYY/MM/DD description: Date format preference. Must match `viewDateFormats` from `@bcatania18/operations-schema` (see core-or1 PR required: - dateFormat responses: '200': description: Date format preference updated successfully content: application/json: schema: type: object properties: dateFormat: type: string enum: - MM-DD-YY - DD-MM-YY - YY-MM-DD - DD/MM/YY - MM/DD/YY - YY/MM/DD - MM/DD/YYYY - DD/MM/YYYY - YYYY/MM/DD description: Date format preference. Must match `viewDateFormats` from `@bcatania18/operations-schema` (see core-or1 PR default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/preferences/{contextType}/{contextId}/time-format: parameters: - name: contextType in: path required: true description: The context level for the preference schema: type: string enum: - ORGANIZATION - LOCATION - USER - name: contextId in: path required: true description: User/Location/Organization id schema: type: string format: uuid get: x-exegesis-controller: Preference summary: Get time format preference for a specific context operationId: getTimeFormat tags: - Preference responses: '200': description: Time format preference content: application/json: schema: type: object properties: timeFormat: type: string enum: - 12H - 24H description: Time format preference default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Preference summary: Set time format preference for a specific context operationId: setTimeFormat tags: - Preference requestBody: required: true content: application/json: schema: type: object properties: timeFormat: type: string enum: - 12H - 24H description: Time format preference required: - timeFormat responses: '200': description: Time format preference updated successfully content: application/json: schema: type: object properties: timeFormat: type: string enum: - 12H - 24H description: Time format preference default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/timezones: get: x-exegesis-controller: Preference summary: List allowed timezones operationId: listTimezones tags: - Preference responses: '200': description: List of allowed timezones content: application/json: schema: type: object required: - timezones properties: timezones: type: array items: type: object required: - id - label properties: id: type: string description: IANA timezone identifier (e.g. America/New_York) label: type: string description: Human-readable timezone label default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/preferences/{contextType}/{contextId}/timezone: parameters: - name: contextType in: path required: true description: The context level for the preference schema: type: string enum: - ORGANIZATION - LOCATION - USER - name: contextId in: path required: true description: User/Location/Organization id schema: type: string format: uuid get: x-exegesis-controller: Preference summary: Get timezone preference for a specific context operationId: getTimezone tags: - Preference responses: '200': description: Timezone preference content: application/json: schema: type: object properties: timezone: $ref: '#/paths/~1v1~1preferences~1%7BcontextType%7D~1%7BcontextId%7D~1timezone/post/requestBody/content/application~1json/schema/properties/timezone' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Preference summary: Set timezone preference for a specific context operationId: setTimezone tags: - Preference requestBody: required: true content: application/json: schema: type: object properties: timezone: type: string nullable: true enum: - null - America/New_York - America/Chicago - America/Denver - America/Los_Angeles - America/Anchorage - Pacific/Honolulu description: Supported timezone identifier from the API allowlist; the canonical list is also available via `GET /v1/timezones` (e.g. America/New_York). Send `null` to clear the stored value. required: - timezone responses: '200': description: Timezone preference updated successfully content: application/json: schema: type: object properties: timezone: $ref: '#/paths/~1v1~1preferences~1%7BcontextType%7D~1%7BcontextId%7D~1timezone/post/requestBody/content/application~1json/schema/properties/timezone' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/role: post: x-exegesis-controller: Role summary: Creates a new Role operationId: createRole tags: - Role requestBody: required: true content: application/json: schema: type: object description: Role required: - name - permissions - organizationId properties: name: type: string permissions: type: array description: array of permission ids items: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1permissions/get/responses/200/content/application~1json/schema/items' organizationId: type: string format: uuid responses: '200': description: Role record content: application/json: schema: type: object description: Role required: - name - permissions properties: id: type: string format: uuid name: type: string organizationId: type: string format: uuid permissions: type: array description: array of permissions items: $ref: '#/paths/~1v1~1user~1%7BuserId%7D~1permissions/get/responses/200/content/application~1json/schema/items' updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/role/{roleId}: parameters: - name: roleId in: path required: true description: role id schema: type: string get: x-exegesis-controller: Role summary: Get Role's record operationId: getRole tags: - Role responses: '200': description: Role record content: application/json: schema: $ref: '#/paths/~1v1~1role/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Role summary: Update Role's record operationId: updateRole tags: - Role requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1role/post/requestBody/content/application~1json/schema' responses: '200': description: Role record content: application/json: schema: $ref: '#/paths/~1v1~1role/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Role summary: Deletes Role operationId: removeRole tags: - Role responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-market: post: x-exegesis-controller: LpMarket summary: Create LP Market operationId: createLpMarket tags: - LP Market requestBody: required: true content: application/json: schema: type: object description: LP Market required: - name - shippingModeId - organizationId - market - serviceHours properties: name: type: string pickUpSlaId: type: string description: Reference to Pick up speed nullable: true dropOffSlaId: type: string description: Reference to Drop off speed nullable: true shippingModeId: type: string format: uuid shippingModeIds: type: array description: Shipping Mode ids to associate with this lp market nullable: true items: type: string format: uuid organizationId: type: string format: uuid market: type: object description: Market required: - name - location - radiusMiles - locationPoly properties: name: type: string location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' radiusMiles: type: number description: radius in miles locationPoly: type: array items: type: array items: type: number teamIds: type: array items: type: string format: uuid fleetVehicles: type: array description: Fleet Vehicles ids to associate with this lp market items: type: object properties: id: type: string format: uuid capabilityTags: type: array description: Capability Tags ids to associate with this lp market items: type: object properties: id: type: string format: uuid insuranceAndCompliance: type: object description: Insurance And Compliance properties: cargoUsd: type: number autoLiabilityUsd: type: number commercialGeneralLiabilityUsd: type: number workersCompensationUsd: type: number umbrellaUsd: type: number bondedUsd: type: number hazardousMaterialsExclusion: type: boolean fmcsa: type: boolean serviceHours: type: array items: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/serviceHours/items' ownFleetVehicles: type: array items: type: object description: Own fleet vehicle required: - name - maxWeightLbs - vin - costPerMileCent - fleetVehicleCompartments properties: name: type: string maxWeightLbs: type: integer vin: type: string costPerMileCent: type: integer fleetVehicleCompartments: type: array items: $ref: '#/paths/~1v1~1own-fleet-vehicle/put/requestBody/content/application~1json/schema/properties/fleetVehicleCompartments/items' active: type: boolean pickUpLocationId: type: string format: uuid sendOnboardingCompleteEmail: type: boolean responses: '200': description: LP Market content: application/json: schema: type: object description: LP Market properties: id: type: string format: uuid nullable: true name: type: string pickUpSlaId: type: string description: Reference to Pick up speed dropOffSlaId: type: string description: Reference to Drop off speed shippingMode: type: object properties: id: type: string format: uuid name: type: string shippingModes: type: array description: Shipping Modes associated with this lp market items: type: object properties: id: type: string format: uuid name: type: string organizationId: type: string format: uuid market: $ref: '#/paths/~1v1~1market~1%7BmarketId%7D~1update-radius/put/responses/200/content/application~1json/schema' createdAt: type: string format: date teamIds: type: array items: type: string format: uuid ownFleetVehicles: type: array items: type: object description: Own fleet vehicle properties: id: type: string format: uuid nullable: true name: type: string maxWeightLbs: type: integer vin: type: string costPerMileCent: type: integer lpMarketId: type: string format: uuid nullable: true fleetVehicleId: type: string format: uuid nullable: true fleetVehicleCompartments: type: array items: type: object properties: id: type: string format: uuid nullable: true openingWidthIn: type: integer openingHeightIn: type: integer compartmentLengthIn: type: integer compartmentWidthIn: type: integer compartmentHeightIn: type: integer active: type: boolean pickUpLocationId: type: string format: uuid capabilityTags: type: array description: Capability Tags ids to associate with this lp market items: type: object properties: id: type: string format: uuid insuranceAndCompiance: type: object properties: id: type: string format: uuid cargoUsd: type: integer autoLiabilityUsd: type: integer commercialGeneralLiabilityUsd: type: integer workersCompensationUsd: type: integer umbrellaUsd: type: integer bondedUsd: type: integer hazardousMaterialsExclusion: type: boolean fmcsa: type: boolean serviceHours: type: object properties: id: type: string format: uuid dayOfWeek: type: integer startMin: type: integer endMin: type: integer holidayId: type: string format: uuid holiday: type: object properties: id: type: string format: uuid holidayName: type: string sort: type: integer LpMarketServiceHours: type: object properties: serviceHourId: type: string format: uuid LpMarketId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-market/{lpMarketId}: parameters: - name: lpMarketId in: path required: true schema: type: string get: x-exegesis-controller: LpMarket summary: Get LP Market operationId: getLpMarket tags: - LP Market responses: '200': description: LP Market content: application/json: schema: $ref: '#/paths/~1v1~1lp-market/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: LpMarket summary: Update LP Market operationId: updateLpMarket tags: - LP Market requestBody: required: true content: application/json: schema: type: object description: LP Market properties: name: type: string pickUpSlaId: type: string description: Reference to Pick up speed nullable: true dropOffSlaId: type: string description: Reference to Drop off speed nullable: true shippingModeId: type: string format: uuid market: $ref: '#/paths/~1v1~1market~1%7BmarketId%7D~1update-radius/put/responses/200/content/application~1json/schema' teamIds: type: array items: type: string format: uuid fleetVehicles: type: array description: Fleet Vehicles ids to associate with this lp market items: type: object properties: id: type: string format: uuid capabilityTags: type: array description: Capability Tags ids to associate with this lp market items: type: object properties: id: type: string format: uuid insuranceAndCompliance: anyOf: - $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' - $ref: '#/paths/~1v1~1lp-market/post/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' serviceHours: type: array items: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/serviceHours/items' ownFleetVehicles: type: array items: $ref: '#/paths/~1v1~1own-fleet-vehicle~1%7BownFleetVehicleId%7D/get/responses/200/content/application~1json/schema' pickUpLocationId: type: string format: uuid responses: '200': description: LP Market content: application/json: schema: $ref: '#/paths/~1v1~1lp-market/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: LpMarket summary: Remove LP Market operationId: removeLpMarket tags: - LP Market responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-market/{lpMarketId}/vehicle-status: parameters: - name: lpMarketId in: path required: true schema: type: string get: x-exegesis-controller: VehicleStatus summary: Get Status of Vehicles on LP Market operationId: getAllVehicleStatuses tags: - Vehicle Status responses: '200': description: LP Market Vehicle Statuses content: application/json: schema: $ref: '#/paths/~1v1~1lp-market~1%7BlpMarketId%7D~1vehicle-status/put/requestBody/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: VehicleStatus summary: Set Status of Vehicles on LP Market operationId: updateAll tags: - Vehicle Status requestBody: required: true content: application/json: schema: type: array description: LP Market Vehicle Statuses items: type: object properties: id: type: string status: type: boolean responses: '200': description: LP Market Vehicle Statuses content: application/json: schema: $ref: '#/paths/~1v1~1lp-market~1%7BlpMarketId%7D~1vehicle-status/put/requestBody/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-market/shipping-modes: get: x-exegesis-controller: LpMarket summary: Get shipping modes operationId: getShippingModes tags: - LP Market responses: '200': description: Shipping modes records content: application/json: schema: description: Shipping Modes type: array items: type: object properties: id: type: string name: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-market/filter-by-id/api: get: x-exegesis-controller: LpMarket summary: Get LP Markets filtered by IDs security: - ApiKey: [] AppId: [] operationId: getLPMarketsByIds parameters: - name: ids in: query description: Comma separated list of LP Market IDs to filter by required: true schema: type: string - name: shipperOrganizationId in: query description: Optional shipper organization ID used to resolve the effective dispatch platform setting required: false schema: type: string format: uuid - name: shipperLocationId in: query description: Optional shipper location ID used to resolve a location-specific dispatch platform setting required: false schema: type: string format: uuid tags: - LP Market responses: '200': description: Markets content: application/json: schema: type: array description: LP Markets fetched by IDs (used by rate card microservice) items: type: object properties: id: type: string format: uuid name: type: string organization: type: object properties: id: type: string format: uuid name: type: string dynamicPriceLp: type: boolean dot: type: string nullable: true dispatchPlatform: type: object nullable: true properties: id: type: string format: uuid name: type: string dispatchPlatformSetting: type: object nullable: true description: Resolved dispatch platform setting selected for an LP market and shipper context properties: id: type: string format: uuid name: type: string data: type: object nullable: true dispatchPlatformId: type: string format: uuid organizationId: type: string format: uuid nullable: true lpOrganizationId: type: string format: uuid nullable: true shipperLocationId: type: string format: uuid nullable: true organizationDOT: type: object nullable: true properties: id: type: string format: uuid dotNumber: type: number status: type: string enum: - ACTIVE - INACTIVE - OUT-OF-SERVICE authorityStatus: type: string enum: - AUTHORIZED - NOT-AUTHORIZED - OUT-OF-SERVICE carrierOperationStatus: type: string enum: - INTERSTATE - INTRASTATE-ONLY-HM - INTRASTATE-ONLY-NON-HM nullable: true operationsClassifications: type: array items: type: string enum: - AUTH_FOR_HIRE - EXEMPT_FOR_HIRE - PRIVATE_PROPERTY - PRIVATE_PASS_BUSINESS - PRIVATE_PASS_NON_BUSINESS - MIGRANT - US_MAIL - FED_GOVT - STATE_GOVT - LOCAL_GOVT - INDIAN_NATION nullable: true cargoClasses: type: array items: type: string enum: - GENERAL_FREIGHT - HOUSEHOLD_GOODS - METAL_SHEETS_COILS_ROLLS - MOTOR_VEHICLES - DRIVE_TOW_AWAY - LOGS_POLES_BEAMS_LUMBER - BUILDING_MATERIALS - MOBILE_HOMES - MACHINERY_LARGE_OBJECTS - FRESH_PRODUCE - LIQUIDS_GASES - INTERMODAL_CONT - PASSENGERS - OILFIELD_EQUIPMENT - LIVESTOCK - GRAIN_FEED_HAY - COAL_COKE - MEAT - GARBAGE_REFUSE - US_MAIL - CHEMICALS - COMMODITIES_DRY_BULK - REFRIGERATED_FOOD - BEVERAGES - PAPER_PRODUCTS - UTILITIES - AGRICULTURAL_FARM_SUPPLIES - CONSTRUCTION - WATER_WELL nullable: true mcmxff: type: string pickUpSla: type: object nullable: true properties: name: type: string value: type: integer dropOffSla: type: object nullable: true properties: name: type: string value: type: integer serviceHours: type: array items: $ref: '#/paths/~1v1~1location~1%7BstoreNumber%7D~1by-store-number/put/responses/200/content/application~1json/schema/properties/serviceHours/items' capabilityTags: type: array items: type: object properties: id: type: string format: uuid fleetVehicles: type: array items: type: object properties: id: type: string format: uuid name: type: string sortWeight: type: integer ownFleetVehicles: type: array items: $ref: '#/paths/~1v1~1lp-market/post/responses/200/content/application~1json/schema/properties/ownFleetVehicles/items' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lp-market/sync-associations: parameters: - name: organizationId in: path required: true schema: type: string post: x-exegesis-controller: LpMarket summary: Sync LP market associations operationId: syncLpMarketAssociations tags: - LP Market requestBody: required: false content: application/json: schema: type: object additionalProperties: false properties: lpMarketIds: type: array description: Optional list of LP market ids to sync. If omitted, all LP markets for the organization are synced. items: type: string format: uuid dryRun: type: boolean description: When true, validates and builds events but does not publish to Kafka. responses: '200': description: Sync result content: application/json: schema: type: object required: - organizationId - dryRun - marketsProcessed - eventsPublished - failures - failedLpMarketIds properties: organizationId: type: string format: uuid dryRun: type: boolean marketsProcessed: type: integer minimum: 0 eventsPublished: type: integer minimum: 0 failures: type: integer minimum: 0 failedLpMarketIds: type: array items: type: string format: uuid '403': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/market/{marketId}/update-radius: parameters: - name: marketId in: path required: true schema: type: string put: x-exegesis-controller: LpMarket summary: Updates radius operationId: updateRadius tags: - LP Market requestBody: required: true content: application/json: schema: type: object description: LP Market properties: distance: type: number responses: '200': description: Market content: application/json: schema: type: object description: Market properties: id: type: string format: uuid name: type: string location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' radiusMiles: type: number description: radius in miles locationPoly: type: array items: type: array items: type: number '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/ratecards/markets: post: x-exegesis-controller: RatecardsMarket summary: Create a new market description: Create a new market in the Rate Cards service operationId: createMarket security: - ApiKey: [] AppId: [] - bearer: [] parameters: - name: organizationId in: query required: false description: Optional organization ID to scope the market to schema: type: string tags: - Ratecards Market requestBody: required: true content: application/json: schema: type: object description: Payload for creating a new market in the Rate Cards service required: - name - geopoly properties: name: type: string description: The name of the market geopoly: type: object description: 'GeoJSON representation of the polygon geometry. Example: {"type":"Polygon","coordinates":[[[-80.0,25.0],[-80.0,26.0],[-79.0,26.0],[-79.0,25.0],[-80.0,25.0]]]} ' required: - coordinates - type properties: coordinates: type: array description: The coordinates of the polygon items: type: array items: type: array minItems: 2 maxItems: 2 items: type: number type: type: string enum: - Polygon cellIds: nullable: true type: array description: H3 cell IDs to associate with this market. Can be empty, but cannot contain null elements. items: type: string responses: '200': description: Successfully created market content: application/json: schema: type: object description: Market record from the Rate Cards service properties: publicId: type: string description: The public unique identifier of the market name: type: string description: The name of the market geopoly: type: object nullable: true description: GeoJSON representation of the polygon geometry organizationId: type: string nullable: true description: The organization ID this market belongs to, or null for global markets createdAt: type: string format: date-time description: Timestamp when the market was created createdById: type: string nullable: true description: ID of the user who created the market createdByName: type: string nullable: true description: Name of the user who created the market '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/ratecards/markets/{marketPublicId}: parameters: - name: marketPublicId in: path required: true description: The public ID of the market schema: type: string delete: x-exegesis-controller: RatecardsMarket summary: Delete a market description: Soft delete a market in the Rate Cards service operationId: deleteMarket security: - ApiKey: [] AppId: [] - bearer: [] tags: - Ratecards Market responses: '200': description: Successfully deleted market '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract: post: x-exegesis-controller: ShipperContract summary: Create Shipper Contract operationId: createShipperContract tags: - Shipper Contract requestBody: required: true content: application/json: schema: type: object description: Shipper Contract required: - name - description - organizationId - insuranceAndCompliance - contractExpectation - itemSizing properties: name: type: string description: type: string itemsDescription: type: string avgDeliveriesPerWk: type: number organizationId: type: string format: uuid insuranceAndCompliance: $ref: '#/paths/~1v1~1lp-market/post/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' contractExpectation: type: object description: Contract Expectation properties: loadUnloading: type: string personnelCompliance: type: string personnelOnPremisis: type: string personnelAttire: type: string specialInstructions: type: string itemSizing: type: object description: Item Sizing properties: maxWeightLB: type: number maxLengthIn: type: number maxWidthIn: type: number maxHeightIn: type: number maxItems: type: number maxCargoValueCent: type: number capabilityUsageCharges: type: array items: type: object properties: priceCent: type: number capabilityTagId: type: string format: uuid options: type: object properties: allowRestock: type: boolean itemCategoryPricings: type: array items: type: object properties: costPerItemCent: type: number itemCategory: type: object properties: itemCategoryName: type: string universalVariable: type: number maxWeight: type: integer nullable: true responses: '200': description: Shipper Contract content: application/json: schema: type: object description: Shipper Contract properties: id: type: string format: uuid name: type: string description: type: string itemsDescription: type: string avgDeliveriesPerWk: type: number organizationId: type: string format: uuid createdAt: type: string format: date insuranceAndCompliance: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/insuranceAndCompliance' contractExpectation: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/contractExpectation' itemSizing: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D/put/requestBody/content/application~1json/schema/properties/itemSizing' capabilityUsageCharges: type: array items: type: object properties: priceCent: type: number capabilityTagId: type: string format: uuid itemCategoryPricings: type: array items: type: object properties: id: type: string format: uuid costPerItemCent: type: number itemCategory: type: object properties: id: type: string format: uuid itemCategoryName: type: string isLockedByShipper: type: boolean isLockedByLp: type: boolean universalVariable: type: number maxWeight: type: integer nullable: true options: type: object properties: allowRestock: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}: parameters: - name: shipperContractId in: path required: true schema: type: string get: x-exegesis-controller: ShipperContract summary: Get Shipper Contract operationId: getShipperContract tags: - Shipper Contract responses: '200': description: Shipper Contract content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: ShipperContract summary: Update Shipper Contract operationId: updateShipperContract tags: - Shipper Contract requestBody: required: true content: application/json: schema: type: object description: Shipper Contract properties: name: type: string description: type: string itemsDescription: type: string avgDeliveriesPerWk: type: number insuranceAndCompliance: type: object description: Insurance And Compliance properties: id: type: string format: uuid cargoUsd: type: number autoLiabilityUsd: type: number commercialGeneralLiabilityUsd: type: number workersCompensationUsd: type: number umbrellaUsd: type: number bondedUsd: type: number hazardousMaterialsExclusion: type: boolean fmcsa: type: boolean contractExpectation: type: object description: Contract Expectation properties: id: type: string format: uuid loadUnloading: type: string personnelCompliance: type: string personnelOnPremisis: type: string personnelAttire: type: string specialInstructions: type: string itemSizing: type: object description: Item Sizing properties: id: type: string format: uuid maxWeightLB: type: number maxLengthIn: type: number maxWidthIn: type: number maxHeightIn: type: number maxItems: type: number maxCargoValueCent: type: number capabilityUsageCharges: type: array items: type: object properties: priceCent: type: number capabilityTagId: type: string format: uuid options: type: object properties: allowRestock: type: boolean itemCategoryPricings: type: array items: type: object properties: costPerItemCent: type: number itemCategory: type: object properties: itemCategoryName: type: string universalVariable: type: number responses: '200': description: Shipper Contract content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: ShipperContract summary: Remove Shipper Contract operationId: removeShipperContract tags: - Shipper Contract responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}/sla: parameters: - name: shipperContractId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSla summary: Create an SLA for a Shipper Contract operationId: createSla tags: - Shipper Contract requestBody: required: true content: application/json: schema: type: object description: Shipper Contract SLA required: - latePickupPenaltyPercent - lateDeliveryPenaltyPercent - endOfDayTime - shippingModeId - marketModifiers - milageTiers - fleetVehicleModifiers properties: pickUpSlaId: type: string format: uuid description: Reference to Pick up speed (Acceptable time) dropOffSlaId: type: string format: uuid description: Reference to Drop off speed (Acceptable time) latePickupPenaltyPercent: type: number format: float description: Late pick up penalty percentage lateDeliveryPenaltyPercent: type: number format: float description: Late delivery penalty percentage pickUpDesc: type: string description: Pick up description dropOffDesc: type: string description: Drop off description mileageAvg: type: integer description: Mileage average rate mileageMax: type: integer description: Mileage max rate endOfDayTime: type: integer shippingModeId: type: string format: uuid description: Reference to a Shipping Mode marketModifiers: type: array description: List of market modifiers items: type: object properties: basePriceMultiplier: type: number format: float onerailBias: type: number format: float fairnessWeight: type: number format: float market: $ref: '#/paths/~1v1~1lp-market/post/requestBody/content/application~1json/schema/properties/market' deliveryPremium: type: object properties: holidayDeliveryAddnlPercentage: type: number format: float nullable: true holidayReturnAddnlPercentage: type: number format: float nullable: true fuelDeliveryAddnlPercentage: type: number format: float nullable: true fuelReturnAddnlPercentage: type: number format: float nullable: true weekendDeliveryAddnlPercentage: type: number format: float nullable: true weekendReturnAddnlPercentage: type: number format: float nullable: true milageTiers: type: array items: type: object properties: maxMilage: type: integer baseDeliveryPriceCent: type: integer baseReturnPriceCent: type: integer priceIsPerMile: type: boolean deliveryCorrectionCharges: type: array items: type: object properties: timeBeforePickupMin: type: integer correctionAddnlPercentage: type: number format: float fleetVehicleModifiers: type: array items: type: object properties: basePriceMultiplier: type: number format: float fleetVehicleId: type: string format: uuid serviceLevelId: type: string format: uuid seasonPricingIds: type: array items: type: string format: uuid responses: '200': description: Shipper Contract SLA content: application/json: schema: type: object description: Shipper Contract SLA properties: id: type: string format: uuid pickUpSla: description: Reference to Pick up speed (Acceptable time) type: object properties: id: type: string format: uuid name: type: string value: type: integer dropOffSla: description: Reference to Drop off speed (Acceptable time) type: object properties: id: type: string format: uuid name: type: string value: type: integer latePickupPenaltyPercent: type: number format: float description: Late pick up penalty percentage lateDeliveryPenaltyPercent: type: number format: float description: Late delivery penalty percentage pickUpDesc: type: string description: Pick up description dropOffDesc: type: string description: Drop off description mileageAvg: type: integer description: Mileage average rate mileageMax: type: integer description: Mileage max rate endOfDayTime: type: integer shippingMode: $ref: '#/paths/~1v1~1lp-market~1shipping-modes/get/responses/200/content/application~1json/schema' description: Reference to a Shipping Mode shipperSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' oneRailSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' approvedBy: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string description: Reference to a OneRail User approvedOn: type: string format: date-time marketModifiers: type: array description: List of market modifiers items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/marketModifiers/items' deliveryPremium: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryPremium' milageTiers: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/milageTiers/items' deliveryCorrectionCharges: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryCorrectionCharges/items' fleetVehicleModifiers: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema/properties/fleetVehicleModifiers/items' shipperContract: type: object description: Reference to Shipper Contract properties: id: type: string format: uuid name: type: string organization: type: object properties: id: type: string format: uuid name: type: string serviceLevel: type: object properties: id: type: string name: type: string active: type: boolean description: Is shipper contract sla active? seasonPricings: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1season-pricing/get/responses/200/content/application~1json/schema/properties/data/items' routeCostConfigurations: nullable: true type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema/properties/routeCostConfigurations/items' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}/slas: parameters: - name: shipperContractId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ShipperContractSla summary: Get all SLAs for a Shipper Contract operationId: getSlas tags: - Shipper Contract parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC responses: '200': description: Shipper Contract SLAs content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}/slas-info: parameters: - name: shipperContractId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ShipperContractSla summary: Get basic info for all SLAs for a Shipper Contract operationId: getSlaInfos tags: - Shipper Contract parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC responses: '200': description: Shipper Contract SLAs content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: Shipper Contract SLA properties: id: type: string format: uuid pickUpSla: type: object description: Reference to Pick up speed name properties: name: type: string dropOffSla: type: object description: Reference to Drop off speed name properties: name: type: string shipperSignature: type: object properties: id: type: string format: uuid oneRailSignature: type: object properties: id: type: string format: uuid approvedOn: type: string description: Date SLA was approved format: date-time marketModifiers: type: array description: Index 0-n of market modifiers. Length contains the total count items: type: number serviceLevel: type: object properties: name: type: string active: type: boolean description: Is shipper contract sla active? createdAt: type: string format: date-time numMarkets: type: number description: How many markets the SLA has '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}/submit-approval: parameters: - name: shipperContractId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContract summary: Notify OneRail Approver to approve SLAs for a Shipper Contract operationId: approveNotifyShipperContract tags: - Shipper Contract requestBody: description: None content: application/json: schema: type: object responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}/shipper-contract-sla-templates: parameters: - name: shipperContractId in: path required: true schema: type: string get: x-exegesis-controller: ShipperContract summary: Get all sla template for this Shipper Contract operationId: getAllSlaTemplates parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Shipper Contract responses: '200': description: Shipper Contract content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: Shipper Contract SLA Template properties: id: type: string format: uuid approvedOn: type: string format: date-time createdAt: type: string format: date-time organizationId: type: string format: uuid description: Reference to Organization shipperContractId: type: string format: uuid description: Reference to Shipper Contract shipperContractSlaId: type: string format: uuid description: Reference to Shipper Contract SLA marketModifiers: type: array description: List of market modifiers items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/marketModifiers/items' shipperContractSla: type: object properties: id: type: string format: uuid pickUpSla: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema/properties/pickUpSla' description: Reference to Pick up speed (Acceptable time) dropOffSla: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema/properties/dropOffSla' description: Reference to Drop off speed (Acceptable time) default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: ShipperContract summary: Update Shipper Contract operationId: updateSlaTemplateCapabilityUsageCharge tags: - Shipper Contract requestBody: required: true content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1lp-contract-sla/put/requestBody/content/application~1json/schema/items' responses: '200': description: Success default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}/lp-contract-sla: parameters: - name: shipperContractId in: path required: true schema: type: string get: x-exegesis-controller: ShipperContract summary: Get all lp contract sla for this Shipper Contract operationId: getAllLpContractSlas parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: organizationId in: query description: Organization id to filter contracts by required: true schema: type: string format: uuid tags: - Shipper Contract responses: '200': description: LP Contract Slas content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: LP Contract SLA properties: id: type: string format: uuid approvedById: type: string format: uuid approvedOn: type: string format: date-time createdAt: type: string format: date-time organizationId: type: string format: uuid description: Reference to Organization shipperContractSlaId: type: string format: uuid description: Reference to Shipper Contract SLA shipperContractSla: type: object properties: id: type: string format: uuid pickUpSla: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema/properties/pickUpSla' description: Reference to Pick up speed (Acceptable time) dropOffSla: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema/properties/dropOffSla' description: Reference to Drop off speed (Acceptable time) serviceLevel: type: object description: The service level nullable: true properties: id: type: string format: uuid name: type: string marketModifiers: type: array description: List of market modifiers items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/marketModifiers/items' lpSignatureId: type: string format: uuid oneRailSignatureId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: ShipperContract summary: Update LP Contract Sla operationId: updateLpContractSlaCapabilityUsageCharge tags: - Shipper Contract requestBody: required: true content: application/json: schema: type: array items: type: object properties: priceCent: type: number capabilityTagId: type: string format: uuid responses: '200': description: Success default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract/{shipperContractId}/all-slas-approved: parameters: - name: shipperContractId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ShipperContract summary: Send boolean base on all slas have been approved operationId: checkForAllSlasApproval tags: - Shipper Contract responses: '200': description: Check for all slas have been approved content: application/json: schema: type: object description: Shipper Contract properties: AllSlasApproved: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/{shipperContractSlaId}: parameters: - name: shipperContractSlaId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ShipperContractSla summary: Get Shipper Contract SLA operationId: getShipperContractSla tags: - Shipper Contract SLA responses: '200': description: Shipper Contract SLA content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: ShipperContractSla summary: Update Shipper Contract SLA operationId: updateShipperContractSla tags: - Shipper Contract SLA requestBody: required: true content: application/json: schema: type: object description: Shipper Contract SLA required: - latePickupPenaltyPercent - lateDeliveryPenaltyPercent - endOfDayTime - milageTiers - marketModifiers - deliveryPremium - fleetVehicleModifiers - serviceLevelId properties: pickUpSlaId: type: string format: uuid description: Reference to Pick up speed (Acceptable time) dropOffSlaId: type: string format: uuid description: Reference to Drop off speed (Acceptable time) latePickupPenaltyPercent: type: number format: float description: Late pick up penalty percentage lateDeliveryPenaltyPercent: type: number format: float description: Late delivery penalty percentage pickUpDesc: type: string description: Pick up description dropOffDesc: type: string description: Drop off description mileageAvg: type: integer description: Mileage average rate mileageMax: type: integer description: Mileage max rate endOfDayTime: type: integer shippingModeId: type: string format: uuid description: Reference to a Shipping Mode marketModifiers: type: array description: List of market modifiers items: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/requestBody/content/application~1json/schema/properties/marketModifiers/items' deliveryPremium: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryPremium' milageTiers: type: array items: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/requestBody/content/application~1json/schema/properties/milageTiers/items' deliveryCorrectionCharges: type: array items: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/requestBody/content/application~1json/schema/properties/deliveryCorrectionCharges/items' fleetVehicleModifiers: type: array items: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/requestBody/content/application~1json/schema/properties/fleetVehicleModifiers/items' serviceLevelId: type: string format: uuid active: type: boolean description: Is shipper contract sla active? seasonPricingIds: type: array items: type: string format: uuid routeCostConfigurations: nullable: true type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/routeCostConfigurations/items' responses: '200': description: Shipper Contract SLA content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/{shipperContractSlaId}/approve: parameters: - name: shipperContractSlaId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSla summary: Approve an SLA operationId: approve tags: - Shipper Contract SLA requestBody: description: None content: application/json: schema: type: object responses: '200': description: Approve SLA content: application/json: schema: type: object description: SLA approval info properties: id: type: string format: uuid approvedOn: type: string format: date-time approvedBy: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/{shipperContractSlaId}/shipper-sign: parameters: - name: shipperContractSlaId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSla summary: Create Shipper signature for an SLA operationId: createShipperSignature tags: - Shipper Contract SLA requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D~1lp-sign/post/requestBody/content/application~1json/schema' responses: '200': description: Shipper signature content: application/json: schema: type: object description: Contract Signature properties: id: type: string format: uuid typedName: type: string ipAddress: type: string oneOf: - format: ipv4 - format: ipv6 signedOn: type: string format: date-time signedBy: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/{shipperContractSlaId}/onerail-sign: parameters: - name: shipperContractSlaId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSla summary: Create OneRail signature for an SLA operationId: createOneRailSignature tags: - Shipper Contract SLA requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D~1lp-sign/post/requestBody/content/application~1json/schema' responses: '200': description: OneRail signature content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/{shipperContractSlaId}/template: parameters: - name: shipperContractSlaId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ShipperContractSla summary: Get Shipper Contract SLA Template operationId: getTemplate tags: - Shipper Contract SLA responses: '200': description: Shipper Contract SLA Template content: application/json: schema: type: object description: Shipper Contract SLA Template properties: id: type: string format: uuid approvedBy: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string approvedOn: type: string format: date-time createdAt: type: string format: date-time organizationId: type: string format: uuid description: Reference to Organization shipperContractId: type: string format: uuid description: Reference to Shipper Contract shipperContractSlaId: type: string format: uuid description: Reference to Shipper Contract SLA marketModifiers: type: array description: List of market modifiers items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/marketModifiers/items' deliveryPremium: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryPremium' milageTiers: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/milageTiers/items' deliveryCorrectionCharges: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryCorrectionCharges/items' fleetVehicleModifiers: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema/properties/fleetVehicleModifiers/items' routeCostConfigurations: nullable: true type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema/properties/routeCostConfigurations/items' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/{shipperContractSlaId}/duplicate: parameters: - name: shipperContractSlaId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSla summary: Get Shipper Contract SLA Template operationId: duplicate tags: - Shipper Contract SLA requestBody: required: false description: Empty Body content: application/json: schema: type: object responses: '200': description: Shipper Contract SLA Template content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1template/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/{shipperContractSlaId}/set-active-state: parameters: - name: shipperContractSlaId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSla summary: Set ShipperContractSla active state operationId: setActiveState tags: - Shipper Contract SLA requestBody: required: true content: application/json: schema: type: object properties: active: type: boolean responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/bulk-approve: post: x-exegesis-controller: ShipperContractSla summary: Bulk approve an array of SLA ids operationId: bulkApprove tags: - Shipper Contract SLA requestBody: description: Shipper Contract SLA ids required: true content: application/json: schema: type: object description: Shipper Contract SLA ids properties: shipperContractSlaIds: type: array items: type: string responses: '200': description: Approve SLA ids content: application/json: schema: type: object description: List of bulk SLA approval info properties: approvals: type: array description: SLA approval info items: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1approve/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/bulk-shipper-sign: post: x-exegesis-controller: ShipperContractSla summary: Create Bulk Shipper signature for an SLA operationId: createBulkShipperSignature tags: - Shipper Contract SLA requestBody: required: true content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D~1lp-sign/post/requestBody/content/application~1json/schema' - $ref: '#/paths/~1v1~1shipper-contract-sla~1bulk-approve/post/requestBody/content/application~1json/schema' responses: '200': description: Shipper signature content: application/json: schema: type: object description: List of bulk SLA signature info properties: signatures: type: array description: SLA signature info items: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/bulk-onerail-sign: post: x-exegesis-controller: ShipperContractSla summary: Create Bulk OneRail signature for an SLA operationId: createBulkOneRailSignature tags: - Shipper Contract SLA requestBody: required: true content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D~1lp-sign/post/requestBody/content/application~1json/schema' - $ref: '#/paths/~1v1~1shipper-contract-sla~1bulk-approve/post/requestBody/content/application~1json/schema' responses: '200': description: OneRail signature content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract-sla~1bulk-shipper-sign/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla/approve-and-sign: post: x-exegesis-controller: ShipperContractSla summary: Bulk approve, create Bulk Shipper signature, create Bulk OneRail signature for an SLA operationId: bulkApproveAndSignShipperContractSlas tags: - Shipper Contract SLA requestBody: required: true content: application/json: schema: description: Bulk Approve and Sign request body type: object properties: typedName: type: string lpContractSlaTemplateIds: type: array items: type: string format: uuid responses: '200': description: Bulk Approve and Sign response content: application/json: schema: description: Bulk Approve and Sign response type: object properties: signatures: type: array items: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla-template/{shipperContractSlaTemplateId}: parameters: - name: shipperContractSlaTemplateId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ShipperContractSlaTemplate summary: Get Shipper Contract SLA Template operationId: getShipperContractSlaTemplate tags: - Shipper Contract SLA Template responses: '200': description: Shipper Contract SLA Template content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1template/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: ShipperContractSlaTemplate summary: Update Shipper Contract SLA Template operationId: updateShipperContractSlaTemplate tags: - Shipper Contract SLA Template requestBody: required: true content: application/json: schema: type: object description: Shipper Contract SLA Template properties: marketModifiers: type: array description: List of market modifiers items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/marketModifiers/items' deliveryPremium: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryPremium' milageTiers: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/milageTiers/items' deliveryCorrectionCharges: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryCorrectionCharges/items' fleetVehicleModifiers: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/fleetVehicleModifiers/items' routeCostConfigurations: nullable: true type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/routeCostConfigurations/items' responses: '200': description: Shipper Contract SLA content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla-template/{shipperContractSlaTemplateId}/submit-approval: parameters: - name: shipperContractSlaTemplateId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSlaTemplate summary: Notify OneRail Approver to approve Template SLA operationId: approveNotifyShipperContractSlaTemplate tags: - Shipper Contract SLA Template requestBody: description: None content: application/json: schema: type: object responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla-template/{shipperContractSlaTemplateId}/approve: parameters: - name: shipperContractSlaTemplateId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSlaTemplate summary: Approve an SLA Template operationId: approveShipperContractSlaTemplate tags: - Shipper Contract SLA Template requestBody: description: None content: application/json: schema: type: object responses: '200': description: Approve SLA Template content: application/json: schema: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1template/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla-template/{shipperContractSlaTemplateId}/generate-lp-contract-sla: parameters: - name: shipperContractSlaTemplateId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ShipperContractSlaTemplate summary: Matches LPs and generates SLA Contracts for each of matched LP, operationId: generateLPContractSla tags: - Shipper Contract SLA Template requestBody: description: None content: application/json: schema: type: object responses: '200': description: Successfully matched and generated SLA contracts for matching LPs default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla-template/bulk-approve: post: x-exegesis-controller: ShipperContractSlaTemplate summary: Bulk approve an SLA Template operationId: bulkApproveShipperContractSlaTemplates tags: - Shipper Contract SLA Template - Bulk Approve SLA Template requestBody: description: None required: true content: application/json: schema: type: object description: Shipper Contract SLA Template ids properties: shipperContractSlaTemplateIds: type: array items: type: string responses: '200': description: Approve SLA Template content: application/json: schema: type: object description: List of bulk SLA approval info properties: approvals: type: array description: SLA Template approval info items: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1template/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/shipper-contract-sla-template/bulk-send-templates: post: x-exegesis-controller: ShipperContractSlaTemplate summary: Send Bulk SLA Templates, operationId: bulkSendTemplates tags: - Shipper Contract SLA Template - Bulk Send SLA Template requestBody: description: None required: true content: application/json: schema: type: object description: Shipper Contract SLA Template ids properties: shipperContractSlaTemplateIds: type: array items: type: string responses: '200': description: Successfully matched and sent bulk template slas content: application/json: schema: type: object description: List of bulk SLA template info properties: success: type: array items: type: string failed: type: array items: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}: parameters: - name: lpContractSlaId in: path required: true schema: type: string get: x-exegesis-controller: LPContractSla summary: Get LP Contract SLA operationId: getLpContractSla tags: - LP Contract SLA responses: '200': description: LP Contract SLA content: application/json: schema: type: object description: LP Contract SLA properties: id: type: string format: uuid approvedBy: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string approvedOn: type: string format: date-time createdAt: type: string format: date-time organization: type: object properties: id: type: string format: uuid name: type: string description: Reference to Organization shipperContractSlaId: type: string format: uuid description: Reference to Shipper Contract SLA marketModifiers: type: array description: List of market modifiers items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/marketModifiers/items' deliveryPremium: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryPremium' milageTiers: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/milageTiers/items' deliveryCorrectionCharges: type: array items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/put/requestBody/content/application~1json/schema/properties/deliveryCorrectionCharges/items' fleetVehicleModifiers: type: array items: type: object properties: id: type: string format: uuid basePriceMultiplier: type: number format: float fleetVehicleId: type: string format: uuid fleetVehicle: type: object properties: id: type: string format: uuid name: type: string maxWeightLbs: type: integer lpSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' oneRailSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' shipperContract: type: array items: $ref: '#/paths/~1v1~1shipper-contract/post/responses/200/content/application~1json/schema' active: type: boolean routeCostConfigurations: nullable: true type: array items: type: object properties: shipperContractSlaId: type: string format: uuid nullable: true lpContractSlaId: type: string format: uuid nullable: true fleetVehicleId: type: string format: uuid type: type: string enum: - PER_STOP - PER_MILE - FLAT priceCent: type: number default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: LPContractSla summary: Update LP Contract SLA operationId: updateLpContractSla tags: - LP Contract SLA requestBody: required: true content: application/json: schema: type: object description: LP Contract SLA properties: marketModifiers: type: array description: List of market modifiers items: type: object properties: id: type: string format: uuid basePriceMultiplier: type: number format: float onerailBias: type: number format: float fairnessWeight: type: number format: float market: $ref: '#/paths/~1v1~1market~1%7BmarketId%7D~1update-radius/put/responses/200/content/application~1json/schema' deliveryPremium: type: object properties: id: type: string format: uuid holidayDeliveryAddnlPercentage: type: number format: float nullable: true holidayReturnAddnlPercentage: type: number format: float nullable: true fuelDeliveryAddnlPercentage: type: number format: float nullable: true fuelReturnAddnlPercentage: type: number format: float nullable: true weekendDeliveryAddnlPercentage: type: number format: float nullable: true weekendReturnAddnlPercentage: type: number format: float nullable: true milageTiers: type: array items: type: object properties: id: type: string format: uuid maxMilage: type: integer baseDeliveryPriceCent: type: integer baseReturnPriceCent: type: integer priceIsPerMile: type: boolean deliveryCorrectionCharges: type: array items: type: object properties: id: type: string format: uuid timeBeforePickupMin: type: integer correctionAddnlPercentage: type: number format: float fleetVehicleModifiers: type: array items: type: object properties: id: type: string format: uuid basePriceMultiplier: type: number format: float fleetVehicleId: type: string format: uuid routeCostConfigurations: nullable: true type: array items: type: object properties: id: type: string format: uuid nullable: true shipperContractSlaId: type: string format: uuid nullable: true lpContractSlaId: type: string format: uuid nullable: true fleetVehicleId: type: string format: uuid type: type: string enum: - PER_STOP - PER_MILE - FLAT priceCent: type: number responses: '200': description: LP Contract SLA content: application/json: schema: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}/submit-approval: parameters: - name: lpContractSlaId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: LPContractSla summary: Notify OneRail Approver to approve LP Contract SLAs operationId: approveNotifyLpContractSla tags: - LP Contract SLA requestBody: description: None content: application/json: schema: type: object responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}/approve: parameters: - name: lpContractSlaId in: path required: true schema: type: string post: x-exegesis-controller: LPContractSla summary: Approves LP Contract SLA operationId: approveLpContractSla tags: - LP Contract SLA requestBody: description: None content: application/json: schema: type: object responses: '200': description: LP Contract SLA content: application/json: schema: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}/lp-sign: parameters: - name: lpContractSlaId in: path required: true schema: type: string post: x-exegesis-controller: LPContractSla summary: LP Signature for LP Contract SLA operationId: createLpSignature tags: - LP Contract SLA requestBody: required: true content: application/json: schema: type: object description: Contract Signature required: - typedName properties: typedName: type: string responses: '200': description: LP Contract SLA content: application/json: schema: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}/onerail-sign: parameters: - name: lpContractSlaId in: path required: true schema: type: string post: x-exegesis-controller: LPContractSla summary: One Rail Signature for LP Contract SLA operationId: signLpContractSla tags: - LP Contract SLA requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D~1lp-sign/post/requestBody/content/application~1json/schema' responses: '200': description: LP Contract SLA content: application/json: schema: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}/set-active-state: parameters: - name: lpContractSlaId in: path required: true schema: type: string post: x-exegesis-controller: LPContractSla summary: Set LP Contract SLA active state operationId: setLpContractSlaActiveState tags: - LP Contract SLA requestBody: required: true content: application/json: schema: type: object properties: active: type: boolean forceState: type: boolean responses: '200': description: Success. content: application/json: schema: type: string enum: - SUCCESS - FORCE_STATE_REQUIRED default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}/{marketModifierId}/lsp-bias: parameters: - name: lpContractSlaId in: path required: true schema: type: string - name: marketModifierId in: path required: true schema: type: string put: x-exegesis-controller: LPContractSla summary: Set LSP bias for marketModifier operationId: setLSPBias tags: - LP Contract SLA - Market Modifier requestBody: required: true content: application/json: schema: type: object properties: lspBias: type: number minimum: 0 maximum: 1 description: A metric used in the lp-ranking. Higher is better responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/{lpContractSlaId}/{marketModifierId}/active: parameters: - name: lpContractSlaId in: path required: true schema: type: string - name: marketModifierId in: path required: true schema: type: string put: x-exegesis-controller: LPContractSla summary: Enable / Disable marketModifier operationId: setMarketModifierActive tags: - LP Contract SLA - Market Modifier requestBody: required: true content: application/json: schema: type: object required: - active properties: active: type: boolean description: Indicates the status for marketModifier responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/approve-and-sign: post: x-exegesis-controller: LPContractSla operationId: bulkApproveAndSignLpContractSlas summary: Create Bulk LP approval and signature for an SLA tags: - LP Contract SLA requestBody: required: true content: application/json: schema: description: Bulk Approve and Sign request body type: object properties: typedName: type: string lpContractSlaTemplateIds: type: array items: type: string format: uuid responses: '200': description: Bulk Approve and Sign response content: application/json: schema: description: Bulk Approve and Sign response type: object properties: signatures: type: array items: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/bulk-approve: post: x-exegesis-controller: LPContractSla summary: Bulk approve an array of LP Contract SLA ids operationId: bulkApproveLpContractSlas tags: - LP Contract SLA requestBody: description: Shipper Contract SLA ids required: true content: application/json: schema: type: object description: LP Contract SLA ids properties: lpContractSlaIds: type: array items: type: string responses: '200': description: Approve Contract SLA ids content: application/json: schema: type: object description: List of bulk SLA approval info properties: approvals: type: array description: SLA approval info items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/bulk-lp-sign: post: x-exegesis-controller: LPContractSla summary: Bulk LP Signature for LP Contract SLA operationId: createBulkLpSignature tags: - LP Contract SLA requestBody: required: true content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D~1lp-sign/post/requestBody/content/application~1json/schema' - $ref: '#/paths/~1v1~1lp-contract-sla~1bulk-approve/post/requestBody/content/application~1json/schema' responses: '200': description: List of signatures for LP Contract SLA content: application/json: schema: type: object description: List of bulk SLA signatures info properties: signatures: type: array description: SLA signatures info items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-contract-sla/bulk-onerail-sign: post: x-exegesis-controller: LPContractSla summary: Bulk One Rail Signature for LP Contract SLA operationId: bulkSignLpContractSlas tags: - LP Contract SLA requestBody: required: true content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D~1lp-sign/post/requestBody/content/application~1json/schema' - $ref: '#/paths/~1v1~1lp-contract-sla~1bulk-approve/post/requestBody/content/application~1json/schema' responses: '200': description: List of signatures for LP OneRail Contract SLA content: application/json: schema: type: object description: List of bulk SLA signatures info properties: signatures: type: array description: SLA signatures info items: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/deliveries: get: x-exegesis-controller: Delivery summary: Get all Deliveries in the system (OneRail) operationId: getAllDeliveries tags: - Delivery parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { state: DeliveryState[], shipperIds: string[], lpIds: string[], fromIds: string[], search: string, searchOrderId: string, searchShipmentId: string }' required: false schema: type: string - name: leaderId in: query description: Delivery ID of leader to filter and return all follower deliveries required: false schema: type: string - name: searchShipmentId in: query description: Text to search for partial match in the shipmentId field required: false schema: type: string - name: state in: query description: Filter and return orders with deliveries with a state in this array of delivery states required: false schema: type: array items: type: string enum: - DRAFT - READY_TO_DISPATCH - SCHEDULED - DISPATCHING - ASSIGNED - ACCEPTED_BY_LP - CANCELED_BY_LP - REVOKED_BY_ONERAIL - DISPATCH_ERROR - DRIVER_ASSIGNED - EN_ROUTE_TO_PICKUP - ARRIVED_FOR_PICKUP - PICKED_UP - EN_ROUTE_TO_DELIVERY - ARRIVED_FOR_DELIVERY - DELIVERED - INCOMPLETE - ONERAIL_PROCESSING - CANCELED_BY_ONERAIL - CANCELED_BY_SHIPPER - ROUTED - name: mappedState in: query description: Filter and return orders with deliveries with an organization specific mappedState in this array of mapped delivery states required: false schema: type: array items: type: string - name: lpIds in: query description: Filter and return orders with LP IDs in the list of lpIds provided. Treated as an array, more than one instance of lpIds can be provided required: false schema: type: array items: type: string - name: template in: query required: false description: Filter out some of the returned response data needed for a page schema: type: string default: default enum: - default - dashboard - needs-attention - control-tower - deliveries - name: customField in: query description: Filter's by custom fields specific to each shipper. The parameter is provided as `customField=fieldName:value`. Can be provided more than once for multiple values or fields. required: false schema: type: array items: type: string responses: '200': description: Delivery Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: filters: type: object properties: fromLocations: description: List of distinct from locations for entire result set to use in filtering type: array items: type: object properties: id: type: string name: type: string storeNumber: type: string data: type: array items: type: object description: Deliveries properties: id: type: string format: uuid organizationName: type: string from: description: Pickup location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' to: description: Drop off location allOf: - $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' - type: object properties: contactName: type: string state: type: string mappedState: type: string dispatchAt: type: string format: date-time deliverySpeedMin: type: integer lp: type: object properties: id: type: string name: type: string shipper: type: object properties: id: type: string name: type: string order: type: object properties: id: type: string orderId: type: string eta: type: string risk: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time computedDistanceMile: type: number deliveryExceptions: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200/content/application~1json/schema' shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true shipperContractSla: type: object properties: id: type: string serviceLevel: type: object required: - endOfDayMinutes properties: id: type: string name: type: string endOfDayMinutes: type: number enableClubbing: type: boolean pickUpSpeed: type: object properties: name: type: string value: type: number dropOffSpeed: type: object properties: name: type: string value: type: number creationReason: type: string shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null deliveryAccessorials: type: array description: List of deliveryAccessorials attached to a delivery items: $ref: '#/paths/~1v1~1delivery~1api/post/responses/200/content/application~1json/schema/allOf/1/properties/deliveryAccessorials/items' isLeader: type: boolean windows: type: array items: type: object description: delivery window properties: id: type: string format: uuid deliverySegment: description: type of window type: string opensOn: description: when the window opens type: string format: date-time closesOn: description: when the window closes type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/email: post: x-exegesis-controller: Delivery summary: Creates a delivery order from parsed Email security: - ApiKey: [] AppId: [] operationId: createFromEmail tags: - Delivery requestBody: $ref: '#/paths/~1v1~1delivery~1api/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1delivery~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/label: get: parameters: - name: deliveryId in: path required: true schema: type: string x-exegesis-controller: DeliveryLabel summary: Fetch delivery labels for all containers operationId: getAllDeliveryLabels security: - ApiKey: [] - AppId: [] - OAuth: [] tags: - Delivery responses: '200': description: Delivery Label Records content: application/json: schema: type: object properties: trackingId: type: string deliveryId: type: string format: uuid type: type: string statusCode: type: integer statusDescription: type: string scac: type: string serviceCode: type: string containers: type: array items: type: object properties: label: type: string containerId: type: string containerTrackingId: type: string shipperContainerId: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/label/{containerId}: get: parameters: - name: deliveryId in: path required: true schema: type: string - name: containerId in: path required: true schema: type: string x-exegesis-controller: DeliveryLabel summary: Fetch delivery label for specified container operationId: getDeliveryLabel security: - ApiKey: [] - AppId: [] - OAuth: [] tags: - Delivery responses: '200': description: Delivery Label Record content: application/json: schema: type: object properties: trackingId: type: string deliveryId: type: string format: uuid type: type: string statusCode: type: integer statusDescription: type: string scac: type: string serviceCode: type: string label: type: string containerId: type: string containerTrackingId: type: string shipperContainerId: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/api: post: x-exegesis-controller: Delivery summary: Creates a delivery order from API call security: - ApiKey: [] - AppId: [] - OAuth: [] operationId: createFromApi tags: - Delivery parameters: - name: waitForDeliveryCalculations in: query required: false schema: type: boolean requestBody: required: true content: application/json: schema: type: object description: Delivery required: - to - order - deliveryType - deliverySpeedMin - state properties: from: description: Pick up location. Pass in the id, or address info, or store number to look up the location type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object nullable: true properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true windows: type: object nullable: true properties: opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format opensOnPassed: type: boolean nullable: true appointment: type: object nullable: true properties: durationMins: type: number description: minutes as an integer description: type: string capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number physicalLocation: type: object nullable: true properties: altLocation: type: object properties: latitude: type: number longitude: type: number to: description: Drop off location. Pass in complete location info. Lat/Long are optional and will be populated if not passed. type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true windows: type: object nullable: true properties: opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format appointment: type: object nullable: true properties: durationMins: type: number description: minutes as an integer description: type: string capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number physicalLocation: type: object nullable: true properties: altLocation: type: object properties: latitude: type: number longitude: type: number altAddress: $ref: '#/paths/~1v1~1location/post/requestBody/content/application~1json/schema/properties/physicalLocation/properties/altAddress' deliveryType: description: Select if delivery is for a BUSINESS or RESIDENTIAL type: string enum: - BUSINESS - RESIDENTIAL default: RESIDENTIAL deliveryOptions: description: Optional list of delivery options type: array items: type: string uniqueItems: true example: - REQUIRE_SIGNATURE - REQUIRE_OVER_21 - HIPAA - REQUEST_PARCEL_PICKUP - REQUEST_PROOF_OF_PICKUP notes: type: string maxLength: 255 nullable: true description: Optional delivery notes isReturn: type: boolean default: false description: Is it a return delivery? requestLabel: type: boolean default: false description: Request a shipping label labelType: type: string enum: - png - pdf - zpl default: png description: Specify label type order: description: Order items for the delivery type: object required: - orderId properties: orderId: description: Unique order id identifying this order type: string minLength: 1 netAmountCent: type: number description: Net Amount, in cents default: 0 barCode: type: string nullable: true status: type: string description: Order's status. Defaults to PICKING enum: - PICKING - PACKING - SHIPPING default: PICKING containers: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0' orderItems: description: List of items for the order type: array items: $ref: '#/paths/~1v1~1order~1control-tower/get/responses/200/content/application~1json/schema/anyOf/0/items/properties/ownFleetVehicles/items/properties/currentRoute/properties/routeStops/items/properties/delivery/properties/order/properties/orderItems/items' lpName: type: string nullable: true originLocation: description: Pick up location. Pass in the id, or address info, or store number to look up the location $ref: '#/paths/~1v1~1order~1api/post/requestBody/content/application~1json/schema/properties/originLocation' capabilityTags: type: array items: type: string format: uuid description: List of capability IDs shipperContractSlaId: type: string format: uuid description: Shipper Contract SLA ID nullable: true deliverySpeedMin: type: number description: Delivery Speed, in minutes state: type: string description: State of the delivery order. Defaults to READY_TO_DISPATCH enum: - DRAFT - READY_TO_DISPATCH default: READY_TO_DISPATCH shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true serviceLevel: type: string description: Service Level name of sla to match this delivery nullable: true shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null dispatchAt: type: string description: datetime in ISO format format: date-time nullable: true strictlyFindLocation: type: boolean default: false description: Strict find location nmfc: type: string description: The national motor freight code for this delivery. This is a convenience function to set the same NMFC code for all the containers or order items in this delivery. nullable: true example: 82790-11 freightClass: type: string enum: - '50' - '55' - '60' - '65' - '70' - '77.5' - '85' - '92.5' - '100' - '110' - '125' - '150' - '175' - '200' - '250' - '300' - '400' - '500' - null description: The freight class for this delivery. This is a convenience function to set the same freight class for all the containers or order items in this delivery. nullable: true deliveryFiles: description: Delivery Files type: array items: type: object required: - fileType - fileLink properties: fileType: type: string example: Invoice enum: - BOL - Weight Inspection - Pallet Label - Package Label - Delivery Receipt - Invoice - Hazmat Document description: allowed file types BOL, Weight Inspection, Pallet Label, Package Label, Delivery Receipt, Invoice and Hazmat Document fileLink: type: string example: https://oneraildev.blob.core.windows.net/dev/20221023-123613103-45672570-fb26-46a0-9cc0-21fc8eeed42f.pdf nullable: true deliveryInternationalDetails: type: object nullable: true description: 'Export compliance information used for international shipments. Only one of the fields should be provided depending on the regulatory requirements: - If EEI filing in AES is required → provide `aesItn` - If EEI filing is not required → provide `ftrExemption` ' properties: ftrExemptionCode: type: string nullable: true description: 'FTR Exemption Statement indicating why EEI filing in AES is not required. Example: ''NO EEI 30.37(a)'' ' example: NO EEI 30.37(a) aesItn: type: string nullable: true description: 'Automated Export System Internal Transaction Number (ITN) returned after EEI submission. Format: ''AES X20250427123456'' ' example: AES X20250427123456 itemCategory: type: string nullable: true description: Represents a classification/type of items. enum: - merchandise - returned_goods - documents - gift - sample - other example: merchendise itemDescription: type: string nullable: true description: A free-text explanation of what the contents are (only applicable if "itemCategory" is "other"). example: The items have air tight seals shippingRestriction: type: string nullable: true description: Represents any type of limitation (e.g., hazardous, embargoed). enum: - none - other - quarantine - sanitary_phytosanitary_inspection example: none restrictionNotes: type: string nullable: true description: Free-text comments clarifying or explaining the restriction (only applicable if "shippingRestriction" is not "none"). isCustomsCertified: type: boolean description: Boolean flag indicating certification status. nullable: true certifyingParty: type: string description: Name of the person or entity signing the customs form. nullable: true responses: '200': description: Delivery Record content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema' - type: object properties: deliveryAccessorials: type: array description: List of deliveryAccessorials attached to a delivery items: type: object properties: id: type: string format: uuid capabilityTagId: type: string format: uuid deliveryId: type: string format: uuid stopType: type: string enum: - DROP_OFF - PICK_UP capabilityTag: type: object properties: id: type: string format: uuid name: type: string fleetCategoryId: type: string format: uuid sortWeight: type: integer default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Delivery summary: Get a delivery operationId: getDelivery tags: - Delivery responses: '200': description: Delivery Record content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema' - type: object properties: followers: type: array items: type: object description: Follower Delivery properties: id: type: string format: uuid orderId: type: string format: uuid order: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/order/allOf/0' - type: object properties: leaders: type: array items: type: object description: Leaders Delivery properties: id: type: string format: uuid orderId: type: string format: uuid order: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/order/allOf/0' - type: object properties: deliveryNotes: type: array items: type: object properties: id: type: string format: uuid content: type: string visibility: type: string enum: - NORMAL - OR_ONLY createdAt: type: string format: date-time updatedAt: type: string format: date-time user: type: object properties: firstName: type: string lastName: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Delivery summary: Deletes a DRAFT delivery (OneRail) operationId: deleteDelivery tags: - Delivery responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: security: - ApiKey: [] AppId: [] x-exegesis-controller: Delivery summary: Get a delivery (API) operationId: getDeliveryApi tags: - Delivery responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/select/{deliveryId}: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid - name: attributes in: query required: true schema: type: array items: type: string - name: include in: query required: false schema: type: array items: type: string get: x-exegesis-controller: Delivery summary: Get a delivery operationId: getSelectively tags: - Delivery responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/rate-matching/api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Delivery security: - ApiKey: [] AppId: [] summary: Get delivery data for rate matching operationId: getDeliveryForRateMatchingApi tags: - Delivery responses: '200': description: Delivery record for Rate Matching content: application/json: schema: type: object description: Delivery record for rate matching required: - id - type - fromId - toId - deliveryType - triggeredBy - state - isReturn - deliverySpeedMin - slaPickupBufferMinute - slaDropoffBufferMinute - computedDistanceMile - creationReason - version - createdAt - updatedAt - from - to - serviceLevel - order - deliveryAttempts - deliveryWindows - deliveryAppointments - deliveryAccessorials - orderItems - deliveryContainers - deliveryOptions properties: id: type: string format: uuid type: type: string enum: - DISPATCH - VISIBILITY fromId: type: string format: uuid toId: type: string format: uuid altFromId: type: string format: uuid nullable: true altToId: type: string format: uuid nullable: true deliveryType: type: string enum: - BUSINESS - RESIDENTIAL notes: type: string nullable: true triggeredBy: type: string enum: - API - MANUAL - EMAIL - FILE_UPLOAD state: type: string enum: - DRAFT - READY_TO_DISPATCH - SCHEDULED - DISPATCHING - ASSIGNED - ACCEPTED_BY_LP - CANCELED_BY_LP - DISPATCH_ERROR - REVOKED_BY_ONERAIL - DRIVER_ASSIGNED - EN_ROUTE_TO_PICKUP - ARRIVED_FOR_PICKUP - PICKED_UP - EN_ROUTE_TO_DELIVERY - ARRIVED_FOR_DELIVERY - DELIVERED - INCOMPLETE - ONERAIL_PROCESSING - CANCELED_BY_ONERAIL - CANCELED_BY_SHIPPER - ROUTED - EDIT_REQUIRED isReturn: type: boolean dispatchAt: type: string format: date-time nullable: true deliverySpeedMin: type: number deliveryRatingId: type: string format: uuid nullable: true orderId: type: string format: uuid nullable: true deliveryCostId: type: string format: uuid nullable: true contractedShipperCostCent: type: number nullable: true actualShipperCostCent: type: number nullable: true ownFleetVehicleId: type: string format: uuid nullable: true stopTimestamp: type: string format: date-time nullable: true shipperExtraData: type: object nullable: true slaPickupBufferMinute: type: number slaDropoffBufferMinute: type: number computedDistanceMile: type: number routeId: type: string format: uuid nullable: true deliveryAttemptId: type: string format: uuid nullable: true creationReason: type: string enum: - BOOKED - CLUB - SPLIT shipmentId: type: string nullable: true version: type: number suggestedFleetVehicleId: type: string format: uuid nullable: true driveTime: type: number nullable: true mileage: type: number nullable: true manuallyRouted: type: boolean nullable: true contactPreference: type: string nullable: true contractMatchError: type: string nullable: true parentId: type: string format: uuid nullable: true startTime: type: string format: date-time nullable: true knackRecordId: type: string nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time from: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1rate-matching~1api/get/responses/200/content/application~1json/schema/properties/to' to: type: object description: Location record for rate matching required: - id - address - location - hasLoadingDock - serviceHours - timezone - timezoneOffset - timezoneAbbreviation properties: id: type: string format: uuid name: type: string nullable: true address: type: object description: Address object for rate matching required: - label - city - state - postalCode - country - address1 properties: city: type: string label: type: string state: type: string address1: type: string address2: type: string nullable: true postalCode: type: string country: type: object required: - code - name properties: code: type: string name: type: string location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' storeNumber: type: string nullable: true accessCode: type: string nullable: true shippingInstructions: type: string nullable: true receivingInstructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true hasLoadingDock: type: boolean cutOffTimeMins: type: number nullable: true timezone: type: string timezoneOffset: type: number timezoneAbbreviation: type: string serviceHours: type: array items: type: object description: Service hour record for rate matching required: - id - dayOfWeek - startMin - endMin properties: id: type: string format: uuid dayOfWeek: type: number startMin: type: number endMin: type: number holiday: type: object nullable: true properties: id: type: string format: uuid holidayName: type: string physicalLocation: type: object nullable: true required: - altAddress - altLocation properties: altAddress: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1rate-matching~1api/get/responses/200/content/application~1json/schema/properties/to/properties/address' altLocation: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' serviceLevel: type: object description: Service level record for rate matching required: - name - enableClubbing - enableConsolidation - enableOptimization - requireWindows - requireImmediateDispatch - ignoreRevokes - scheduleExpressPickup - rateShopByDeliveryDate - useOwnRateCard - pickupSpeed - dropOffSpeed - endOfDayMinutes properties: name: type: string endOfDayMinutes: type: integer cutOffTimeMins: type: integer nullable: true enableClubbing: type: boolean revokeTimeMins: type: integer nullable: true enableConsolidation: type: boolean enableOptimization: type: boolean requireWindows: type: boolean requireImmediateDispatch: type: boolean ignoreRevokes: type: boolean scheduleExpressPickup: type: boolean rateShopByDeliveryDate: type: boolean useOwnRateCard: type: boolean pickupSpeed: type: object description: Pick up speed record for rate matching required: - id - name - value properties: id: type: string format: uuid name: type: string value: type: integer dropOffSpeed: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1rate-matching~1api/get/responses/200/content/application~1json/schema/properties/serviceLevel/properties/pickupSpeed' deliveryAttempts: type: array items: type: object description: Delivery attempt record for rate matching required: - id properties: id: type: string format: uuid lpOrganizationId: type: string format: uuid nullable: true deliveryWindows: type: array items: type: object description: Delivery window record for rate matching required: - deliverySegment properties: deliverySegment: type: string enum: - PICKUP - DROPOFF opensOn: type: string format: date-time nullable: true closesOn: type: string format: date-time nullable: true deliveryAppointments: type: array items: type: object description: Delivery appointment record for rate matching required: - id - durationMins - deliverySegment properties: id: type: string format: uuid durationMins: type: integer description: type: string nullable: true deliverySegment: type: string enum: - PICKUP - DROPOFF order: type: object description: Order record for rate matching required: - id - organizationId - version - createdAt - updatedAt - organization - orderId - netAmountCent - barCode properties: id: type: string format: uuid orderId: type: string description: External order ID netAmountCent: type: number barCode: type: string orderSourceInfoId: type: string format: uuid nullable: true organizationId: type: string format: uuid status: type: string nullable: true version: type: number lpConfigurationId: nullable: true type: string format: uuid originLocationId: type: string format: uuid nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time lpConfiguration: nullable: true type: object description: LP Configuration record for rate matching required: - id - organizationId - default - lockToLPGroup - responseLPName - name - applicableLPs properties: id: type: string format: uuid organizationId: description: Organization ID for this LP Configuration type: string default: description: When enabled, LP's not assigned to an LP Configuration will inherit this LP Configuration type: boolean lockToLPGroup: description: When enabled, once an LP in this LP Configuration is assigned to a delivery, only LP's that are included in this LP Configuration are allowed to be reassigned to the delivery type: boolean responseLPName: description: Identifier passed to client when a delivery is assigned to an LP within this LP Configuration type: string name: description: name of LP Configuration type: string applicableLPs: type: array items: type: string description: LP ID organization: type: object required: - id - name - displayBarcode properties: id: type: string format: uuid name: type: string displayBarcode: type: boolean deliveryAccessorials: type: array items: type: object description: Delivery accessorial record for rate matching required: - id - deliveryId - capabilityTagId - stopType - version - createdAt - updatedAt - capabilityTag properties: id: type: string format: uuid deliveryId: type: string format: uuid capabilityTagId: type: string format: uuid stopType: type: string enum: - DROP_OFF - PICK_UP version: type: number createdAt: type: string format: date-time updatedAt: type: string format: date-time capabilityTag: type: object required: - id - name - fleetCategoryId - sortWeight - fleetCategory properties: id: type: string format: uuid name: type: string fleetCategoryId: type: string format: uuid sortWeight: type: integer fleetCategory: type: object required: - id - name properties: id: type: string format: uuid name: type: string deliveryAccessorialQuantity: type: object nullable: true required: - quantity properties: quantity: type: number orderItems: type: array items: type: object description: Delivery order item record for rate matching required: - id - quantity - orderItem properties: id: type: string format: uuid quantity: type: integer orderItem: type: object description: Order item record for rate matching required: - id - description - identifier - priceCent - lengthIn - widthIn - heightIn - weightLbs - quantity - doNotRotate - doNotStack - sortOrdinal properties: id: type: string format: uuid description: type: string identifier: type: string priceCent: type: number lengthIn: type: number widthIn: type: number heightIn: type: number weightLbs: type: number quantity: type: integer preciseWeightLbs: type: number nullable: true nmfc: type: string nullable: true hsCode: type: string nullable: true countryOfManufacture: type: string nullable: true freightClass: type: string nullable: true deliveryContainerId: type: string format: uuid nullable: true doNotRotate: type: boolean doNotStack: type: boolean sortOrdinal: type: integer hazardousMaterialDetails: nullable: true type: object description: Hazardous material details record for rate matching required: - id - orderItemId - createdAt - updatedAt properties: id: type: string orderItemId: type: string identificationNumber: type: string nullable: true properShippingName: type: string nullable: true packagingGroup: type: string nullable: true hazardClass: type: string nullable: true hazardSubClass: type: string nullable: true technicalName: type: string nullable: true packagingType: type: string nullable: true createdAt: type: string updatedAt: type: string dotLabeling: type: string nullable: true fedExPackagingType: type: string nullable: true deliveryContainers: type: array items: type: object description: Delivery container record for rate matching required: - id - lengthIn - widthIn - heightIn - deliveryId - orderId - doNotStack - doNotRotate - totalWeightLbs - containerTypeId - createdAt - updatedAt - orderItems - hazardousMaterialDetails - containerType - uniqueSubLabels properties: id: type: string format: uuid lengthIn: type: number widthIn: type: number heightIn: type: number deliveryId: type: string format: uuid orderId: type: string format: uuid doNotStack: type: boolean doNotRotate: type: boolean totalWeightLbs: type: number containerTypeId: type: string format: uuid trackingNumber: type: string nullable: true predefinedContainerId: type: string format: uuid nullable: true shipperExtraData: type: object nullable: true labelURL: type: string nullable: true shipperContainerId: type: string nullable: true subContainerQuantity: type: number nullable: true uniqueSubLabels: type: boolean nmfc: type: string nullable: true freightClass: type: string nullable: true hazardLabelType: type: string nullable: true hazardLabelURL: type: string nullable: true isDummy: type: boolean nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time containerType: type: object required: - id - name properties: id: type: string format: uuid name: type: string orderItems: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1rate-matching~1api/get/responses/200/content/application~1json/schema/properties/orderItems/items/properties/orderItem' hazardousMaterialDetails: nullable: true type: object description: Container hazardous material details record for rate matching required: - id - deliveryContainerId - createdAt properties: id: type: string deliveryContainerId: type: string signatoryContactName: type: string nullable: true emergencyContactNumber: type: string nullable: true signatoryContactTitle: type: string nullable: true offeror: type: string nullable: true signatoryContactPlace: type: string nullable: true dotLabeling: type: string nullable: true authorization: type: string nullable: true createdAt: type: string deletedAt: type: string nullable: true fedExPackagingType: type: string nullable: true deliveryOptions: type: array items: type: object required: - id - name properties: id: type: string format: uuid name: type: string emergencyContact: nullable: true type: object description: Emergency contact record for rate matching properties: contactName: type: string nullable: true contactTitle: type: string nullable: true phoneNumber: type: string nullable: true email: type: string nullable: true userId: type: string format: uuid nullable: true suggestedFleetVehicle: nullable: true type: object description: Suggested fleet vehicle for the delivery required: - id - name - fleetCategoryId - maxWeightLbs - vehicleType properties: id: type: string format: uuid name: type: string fleetCategoryId: type: string format: uuid sortWeight: type: integer nullable: true maxWeightLbs: type: number vehicleType: type: string enum: - TRAILER - BOX_TRUCK - VAN - SUV - PICKUP_TRUCK - SEDAN - LYFT - BIKE - OTHER deliveryCarrierPreference: nullable: true type: object description: Delivery carrier preference record for rate matching properties: carrierServiceId: type: string format: uuid organizationId: type: string format: uuid carrierService: type: object properties: name: type: string carrierServiceCode: type: string organizationId: type: string format: uuid deliveryInternationalDetails: nullable: true type: object description: International details record for rate matching properties: aesItn: type: string nullable: true description: AES ITN number ftrExemptionCode: type: string nullable: true description: FTR Exemption Code itemCategory: type: string nullable: true description: Represents a classification/type of items enum: - merchandise - returned_goods - documents - gift - sample - other itemDescription: type: string nullable: true description: A free-text explanation of what the contents are shippingRestriction: type: string nullable: true description: Represents any type of limitation enum: - none - other - quarantine - sanitary_phytosanitary_inspection restrictionNotes: type: string nullable: true description: Free-text comments clarifying or explaining the restriction isCustomsCertified: type: boolean nullable: true description: Boolean flag indicating certification status certifyingParty: type: string nullable: true description: Name of the person or entity signing the customs form deliveryExceptions: type: array items: type: object required: - id - deliveryExceptionReasonId properties: id: type: string format: uuid deliveryExceptionReasonId: type: string format: uuid '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/dispatch: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Dispatches a DRAFT delivery order operationId: dispatch tags: - Delivery requestBody: description: None content: application/json: schema: type: object responses: '200': description: Delivery Record content: application/json: schema: type: object description: Delivery Record properties: id: type: string format: uuid fromId: type: string format: uuid deliveryAttemptId: type: string format: uuid from: description: Pickup location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' to: description: Drop off location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' deliveryType: type: string notes: type: string triggeredBy: type: string state: type: string deliveryOptions: type: array items: $ref: '#/paths/~1v1~1delivery~1options/get/responses/200/content/application~1json/schema/items' deliverySpeedMin: type: integer deliveryRating: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryRating' emergencyContact: type: object properties: id: type: string deliveryId: type: string nullable: true contactName: type: string nullable: true contactTitle: type: string nullable: true phoneNumber: type: string nullable: true email: type: string nullable: true userId: type: string nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time shipperContractSla: type: object description: Shipper Contract SLA properties: id: type: string format: uuid pickUpSla: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema/properties/pickUpSla' description: Reference to Pick up speed (Acceptable time) dropOffSla: $ref: '#/paths/~1v1~1shipper-contract~1%7BshipperContractId%7D~1sla/post/responses/200/content/application~1json/schema/properties/dropOffSla' description: Reference to Drop off speed (Acceptable time) latePickupPenaltyPercent: type: number format: float description: Late pick up penalty percentage lateDeliveryPenaltyPercent: type: number format: float description: Late delivery penalty percentage pickUpDesc: type: string description: Pick up description dropOffDesc: type: string description: Drop off description mileageAvg: type: integer description: Mileage average rate mileageMax: type: integer description: Mileage max rate endOfDayTime: type: integer shippingMode: $ref: '#/paths/~1v1~1lp-market~1shipping-modes/get/responses/200/content/application~1json/schema' description: Reference to a Shipping Mode shipperSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' oneRailSignature: $ref: '#/paths/~1v1~1shipper-contract-sla~1%7BshipperContractSlaId%7D~1shipper-sign/post/responses/200/content/application~1json/schema' approvedBy: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string description: Reference to a OneRail User approvedOn: type: string format: date-time shipperContractId: type: string format: uuid shipperContract: type: object description: Reference to Shipper Contract properties: id: type: string format: uuid name: type: string organization: type: object properties: id: type: string format: uuid name: type: string serviceLevel: type: object properties: id: type: string format: uuid name: type: string timeDesc: type: string organizationId: type: string format: uuid pickUpSpeedId: type: string format: uuid dropOffSpeedId: type: string format: uuid endOfDayMinutes: type: integer cutOffTimeMins: type: integer enableClubbing: type: boolean revokeTimeMins: type: integer enableConsolidation: type: boolean enableOptimization: type: boolean requireWindows: type: boolean requireImmediateDispatch: type: boolean ignoreRevokes: type: boolean version: type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time pickupSpeedId: type: string format: uuid OrganizationId: type: string format: uuid pickupSpeed: type: object properties: id: type: string format: uuid name: type: string value: type: number nullable: true fleetCategoryId: type: string format: uuid sortWeight: type: integer dropOffSpeed: type: object properties: id: type: string format: uuid name: type: string value: type: number nullable: true fleetCategoryId: type: string format: uuid sortWeight: type: integer active: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time order: allOf: - type: object description: Order details properties: id: type: string format: uuid orderId: type: string description: External order ID netAmountCent: type: number description: Net Amount, in cents barCode: type: string organizationId: type: string format: uuid status: type: string orderItems: description: List of items for the order type: array items: $ref: '#/paths/~1v1~1order~1control-tower/get/responses/200/content/application~1json/schema/anyOf/0/items/properties/ownFleetVehicles/items/properties/currentRoute/properties/routeStops/items/properties/delivery/properties/order/properties/orderItems/items' originLocationId: type: string format: uuid originLocation: description: Originator Location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' - type: object description: Order extra details properties: orderSourceInfo: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderSourceInfo' deliveryContainers: type: array items: type: object oneOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/0' - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/1' organization: type: object description: Organization the order belongs to properties: id: type: string format: uuid name: type: string displayBarcode: type: boolean barcodeType: type: string enum: - code128 - qrcode - azteccode - azteccodecompact - codablockf - code16k - code39ext - code93ext - codeone - datamatrix - datamatrixrectangular - datamatrixrectangularextension - dotcode - hanxin - maxicode - micropdf417 - pdf417 - pdf417compact - posicode - swissqrcode - telepen - ultracode barcodeAttribute: type: string enum: - Order Id - Route Id - Shipment Id - Container Id - Tracking Number - Item Identifier organizationTypes: description: The organization's type(s) type: array items: type: object properties: id: type: string format: uuid name: type: string boxes: type: array description: Organization's boxes items: $ref: '#/paths/~1v1~1box/post/responses/200/content/application~1json/schema' deliveryAttempts: type: array items: type: object properties: id: type: string format: uuid state: type: string failureReason: type: string shipperBillable: type: boolean lpPayable: type: boolean durationMin: type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time risk: type: number deliveryStatus: type: object properties: etaUpdatedAt: type: string format: date-time risk: type: number version: type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time deliveryStateChanges: type: array items: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryAttempt/properties/deliveryStateChanges/items' lpContractSla: allOf: - $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1get-lp-deliveries/get/responses/200/content/application~1json/schema/items/properties/deliveryAttempts/items/properties/lpContractSla/allOf/0' - type: object properties: shipperContractSla: properties: id: type: string format: uuid pickUpSla: type: object properties: value: type: integer dropOffSla: type: object properties: value: type: integer deliveryCost: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryAttempt/properties/deliveryCost' deliveryCostDeviations: type: array items: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryAttempt/properties/deliveryCostDeviations/items' createdBy: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string lpRateCard: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/shipperRateCard' capabilityTags: type: array items: type: object properties: id: type: string format: uuid name: type: string deliveryExceptions: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200/content/application~1json/schema' createdAt: type: string format: date-time updatedAt: type: string format: date-time shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true contractedShipperCostCent: type: integer actualShipperCostCent: type: integer slaPickupBufferMinute: type: number slaDropoffBufferMinute: type: number computedDistanceMile: type: number creationReason: type: string shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true deliveryShipperCostDeviations: type: array items: type: object description: Delivery Shipper Cost Deviation properties: id: type: string format: uuid deliveryId: type: string format: uuid reason: description: TOLLS etc type: string costCent: description: Cost in cents type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time orderItems: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' routeStop: type: object nullable: true properties: id: type: string format: uuid route: type: object properties: id: type: string format: uuid orgSourcedIdentifier: type: string nullable: true format: uuid deliveryWindows: nullable: true type: array items: type: object properties: id: type: string format: uuid deliveryId: type: string format: uuid deliverySegment: type: string enum: - PICKUP - DROPOFF opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format opensOnPassed: type: boolean version: type: number createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time deliveryAppointments: nullable: true type: array items: type: object properties: durationMins: type: number description: minutes as an integer description: type: string deliverySegment: type: string enum: - PICKUP - DROPOFF deliveryCustomFields: type: array items: type: object nullable: true properties: fieldName: type: string value: type: string dataType: type: string packingBoxes: type: array items: type: object description: Packing Box properties: id: type: string format: uuid lengthIn: type: number widthIn: type: number heightIn: type: number weightLbs: type: number deliveryId: type: string format: uuid ownFleetVehicle: type: object description: Vehicle properties: id: type: string format: uuid name: type: string mileage: type: integer nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null isScheduledForDispatch: type: boolean nullable: true deliveryFiles: type: array description: List of deliver files attached to a delivery items: type: object properties: id: type: string example: a990503f-4a10-422f-890f-b1986b1ca892 deliveryId: type: string example: 04d24d16-8bae-4e52-a8dd-0295085798a7 fileTypeId: type: string example: 82d5d924-3cfc-11ee-8b99-5654a12cf754 fileLink: type: string example: https://oneraildev.blob.core.windows.net/dev/20221023-123613103-45672570-fb26-46a0-9cc0-21fc8eeed42f-0.pdf createdAt: type: string example: '2023-08-24T08:32:15.000Z' updatedAt: type: string example: '2023-08-24T08:32:15.000Z' fileType: type: object properties: id: type: string example: 82d5d924-3cfc-11ee-8b99-5654a12cf754 fileType: type: string example: Invoice deliveryInternationalDetails: type: object nullable: true description: Details for international deliveries properties: aesItn: type: string nullable: true description: AES ITN number ftrExemptionCode: type: string nullable: true description: FTR Exemption Code itemCategory: type: string nullable: true description: Represents a classification/type of items. enum: - merchandise - returned_goods - documents - gift - sample - other example: merchendise itemDescription: type: string nullable: true description: A free-text explanation of what the contents are (only applicable if "itemCategory" is "other"). example: The items have air tight seals shippingRestriction: type: string nullable: true description: Represents any type of limitation (e.g., hazardous, embargoed). enum: - none - other - quarantine - sanitary_phytosanitary_inspection example: none restrictionNotes: type: string nullable: true description: Free-text comments clarifying or explaining the restriction (only applicable if "shippingRestriction" is not "none"). isCustomsCertified: type: boolean description: Boolean flag indicating certification status. nullable: true certifyingParty: type: string description: Name of the person or entity signing the customs form. nullable: true shipperRateCard: type: object nullable: true description: Rate card and version metadata from the rate service properties: rateCard: type: object description: Lightweight rate card metadata properties: publicId: type: string name: type: string shippingMode: type: string organizationId: type: string serviceLevelId: type: string nullable: true fleetVehicleId: type: string nullable: true locationId: type: string nullable: true lpMarketId: type: string nullable: true shipperOrganizationId: type: string nullable: true parentRateCardId: type: string nullable: true fleetAssetReservationTier: type: string nullable: true activeVersionId: type: string nullable: true archived: type: boolean dropOffMinutes: type: number pickUpMinutes: type: number maxItemQuantity: type: number maxItemLengthInches: type: number maxItemWidthInches: type: number maxItemHeightInches: type: number maxItemWeightLbs: type: number maxTotalWeightLbs: type: number maxTotalVolumeCubicInches: type: number updatedAt: type: string format: date-time updatedById: type: string nullable: true updatedByName: type: string nullable: true version: type: object description: Rate card version summary properties: publicId: type: string currency: type: string createdAt: type: string format: date-time createdById: type: string nullable: true createdByName: type: string nullable: true '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/dispatch/api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Dispatches a DRAFT delivery order with api operationId: dispatchWithApiKey security: - ApiKey: [] AppId: [] tags: - Delivery requestBody: description: None content: application/json: schema: type: object responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/bulk-route-or-dispatch/{organizationId}/{serviceLevelId}: parameters: - name: organizationId in: path required: true schema: type: string format: uuid - name: serviceLevelId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Route or dispatch all possible deliveries for a given organization security: - ApiKey: [] AppId: [] operationId: bulkRouteOrDispatch tags: - Delivery requestBody: required: true content: application/json: schema: type: object required: - timezone properties: timezone: type: string responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/revoke: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Revokes a delivery (OneRail) operationId: revoke tags: - Delivery requestBody: description: Reason content: application/json: schema: type: object properties: reason: type: object properties: title: type: string attemptId: type: string nullable: true responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/permanently-failed: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Permanently fails a delivery (OneRail) operationId: permanentlyFailed tags: - Delivery requestBody: description: Reason content: application/json: schema: type: object properties: reason: type: object properties: title: type: string notes: type: string nullable: true responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/cancel: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Permanently fails a delivery from with api operationId: cancelWithApiKey security: - ApiKey: [] - AppId: [] - OAuth: [] tags: - Delivery requestBody: description: Reason content: application/json: schema: type: object properties: reason: type: object properties: title: type: string responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/oono-lp-contract-slas: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Delivery summary: Get out of network LP contract SLAs for the shipper operationId: getOONOLpContractSlas tags: - Delivery responses: '200': description: LP Contract Slas content: application/json: schema: type: array items: type: object description: LP Contract SLA properties: id: type: string format: uuid nullable: true name: type: string lpOrganizationId: type: string format: uuid nullable: true '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/recalculate-rates: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Re-calculates shipper cost rates for this delivery operationId: recalculateShipperRate tags: - Delivery requestBody: description: Options content: application/json: schema: type: object properties: allowZeroPrice: type: boolean default: false responses: '200': description: Success. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/driver-location: parameters: - name: deliveryId in: path required: true schema: type: string get: x-exegesis-controller: Delivery summary: Attempts to fetch last known driver location operationId: getDriverLocation tags: - Delivery responses: '200': description: Driver Location content: application/json: schema: type: object description: Driver Location properties: id: type: string format: uuid location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/delivery-note: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: DeliveryNote summary: Creates a delivery note operationId: createDeliveryNote tags: - DeliveryNote requestBody: required: true content: application/json: schema: type: object description: DeliveryNote additionalProperties: false properties: content: type: string maxLength: 1000 minLength: 1 visibility: type: string description: Sets note's visibility. Only OR Users can set this value. NORMAL is defaulted if user doesn't have enough permissions enum: - NORMAL - OR_ONLY replyToDeliveryNoteId: type: string format: uuid description: Delivery note id this note replies to. deliveryExceptionId: type: string format: uuid description: Delivery exception id. required: - content responses: '200': description: Shipper Contract content: application/json: schema: type: object description: DeliveryNote properties: id: type: string format: uuid deliveryId: type: string format: uuid userId: type: string format: uuid content: type: string visibility: type: string enum: - NORMAL - OR_ONLY replyToDeliveryNoteId: type: string format: uuid nullable: true user: type: object description: User properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string organizationId: type: string format: uuid organization: type: object properties: id: type: string format: uuid name: type: string logoImageURL: type: string nullable: true deliveryExceptionId: type: string format: uuid nullable: true replyToDeliveryNote: type: object nullable: true properties: id: type: string format: uuid deliveryId: type: string format: uuid userId: type: string format: uuid replyToDeliveryNoteId: type: string format: uuid nullable: true content: type: string visibility: type: string enum: - NORMAL - OR_ONLY deliveryExceptionId: type: string format: uuid nullable: true deletedById: type: string format: uuid nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time nullable: true deletedById: type: string format: uuid nullable: true deliveryException: type: object nullable: true properties: id: type: string format: uuid deliveryId: type: string format: uuid deliveryAttemptId: type: string format: uuid nullable: true severity: type: string resolved: type: boolean notes: type: string happenedOn: type: string format: date-time createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedByUser: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string emailAddress: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/delivery-note/{deliveryNoteId}: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid - name: deliveryNoteId in: path required: true schema: type: string format: uuid patch: x-exegesis-controller: DeliveryNote summary: Updates editable delivery note fields operationId: updateDeliveryNote tags: - DeliveryNote requestBody: required: true content: application/json: schema: type: object description: Delivery note editable fields additionalProperties: false properties: content: type: string maxLength: 1000 minLength: 1 description: Note text. visibility: type: string description: Sets note visibility. Only OneRail users can set OR_ONLY. enum: - NORMAL - OR_ONLY anyOf: - required: - content - required: - visibility responses: '200': description: Delivery Note Record content: application/json: schema: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1delivery-note/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: DeliveryNote summary: Deletes a delivery note and its note-owned attachments operationId: removeDeliveryNote tags: - DeliveryNote responses: '200': description: Delivery note deleted content: application/json: schema: type: object required: - deliveryNoteId - deleted properties: deliveryNoteId: type: string format: uuid deleted: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/delivery-notes: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: DeliveryNote summary: Get paginated delivery notes operationId: getAllDeliveryNotes tags: - DeliveryNote parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: filter in: query description: 'JSON string { visibility: [''NORMAL'', ''OR_ONLY''] }' required: false schema: type: string responses: '200': description: Delivery Notes Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1delivery-note/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/costs: parameters: - name: deliveryId in: path required: true description: delivery id schema: type: string format: uuid get: x-exegesis-controller: Cost summary: Get the delivery's costs operationId: getCosts tags: - Delivery responses: '200': description: Get delivery cost records content: application/json: schema: type: object description: Costs on a delivery properties: shipper: type: array items: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D~1costs~1adjustments/post/responses/200/content/application~1json/schema' lp: type: array items: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D~1costs~1adjustments/post/responses/200/content/application~1json/schema' estimatedCost: type: array description: Estimated costs for the delivery (available when RETURN_ESTIMATED_COSTS_WITH_ACTUAL flag is enabled) items: type: object description: Estimated Cost properties: id: type: string format: uuid deliveryId: type: string format: uuid reason: type: string enum: - BASE - TOLLS - PICKUP_PENALTIES - DELIVERY_PENALTIES - ACCESSORIAL - ITEM_SPECIFIC costCent: type: number costDetails: nullable: true type: array items: type: object properties: name: type: string type: type: string quantity: type: number costCent: type: number name: nullable: true type: string type: nullable: true type: string quantity: nullable: true type: number createdAt: type: string format: date-time updatedAt: type: string format: date-time deleteAt: nullable: true type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Cost summary: Update the delivery's costs operationId: updateCosts tags: - Delivery requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid costCent: type: number costDetails: type: array description: Array of json, that display other categories base on reason items: type: object properties: name: type: string type: type: string nullable: true quantity: type: number nullable: true costCent: type: number responses: '200': description: Update delivery cost records content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid costCent: type: number minimum: 0 default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/costs/{costId}: parameters: - name: deliveryId in: path required: true schema: type: string - name: costId in: path required: true schema: type: string delete: x-exegesis-controller: Cost summary: Soft delete a Cost entry operationId: deleteCosts tags: - Delivery responses: '202': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/cost/adjustment-reasons: get: x-exegesis-controller: Cost summary: Get the delivery's costs operationId: getAllAdjusmentReasons tags: - Delivery responses: '200': description: Get cost adjusments reason content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid reason: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery-attempt/{deliveryAttemptId}/costs/adjustments: parameters: - name: deliveryAttemptId in: path required: true description: Delivery attempt UUID that the cost belongs to. schema: type: string format: uuid post: x-exegesis-controller: Cost security: - ApiKey: [] AppId: [] summary: Create an externally-sourced adjustment cost on a delivery attempt description: 'Inserts a single adjustment Cost into the Core operations DB on behalf of an external producer (today: the FAP `InvoiceCostSyncService`; tomorrow: any other service-to-service producer that owns its own idempotency keys). Stamps `reason = ADJUSTMENT` server-side; the sub-category is selected by the caller via `costAdjustmentReasonId`, which must resolve to a row in `CostAdjustmentReasons`. Idempotency: the request body `sourceCostId` is the producer''s globally unique identifier for this cost (e.g. FAP `InvoiceCost.PublicId`). If a Cost row already exists with this `sourceCostId`, the endpoint returns 200 with the existing record instead of creating a duplicate. Otherwise, a new Cost is inserted and returned with 201. The unique index on `Costs.sourceCostId` counts soft-deleted rows too, so a previously soft-deleted match also returns 200 (operator deletion intent is preserved; the row is not resurrected). `adjustmentUserId`, when supplied, must resolve to an existing `Users` row in Core; unknown IDs are rejected with 400. Omit or send null for adjustments created by automated/system flows that have no human actor — `sourceCostId` remains the authoritative marker that the row originated from an external producer, so callers are never required to invent a synthetic user. A `cost_changes` Kafka event is always emitted with `newValues.sourceCostId` populated and `userId` set to the same `adjustmentUserId`; consumers use `sourceCostId` as an echo filter to skip self-originated events. Authentication: OneRail-organization API key only (`X-OneRail-API-Key` + `X-OneRail-App-Id`). JWT and non-OneRail API keys are rejected with 403. This is pure service-to-service — no user identity is resolved from the request and operator-driven adjustments belong on a separate user-JWT endpoint. ' operationId: createDeliveryAttemptAdjustmentCost tags: - Cost requestBody: required: true content: application/json: schema: type: object required: - sourceCostId - costAdjustmentReasonId - costCent - isShipper properties: sourceCostId: type: string format: uuid description: 'Producer-owned globally unique identifier for this cost (e.g. FAP `InvoiceCost.PublicId`). Used as the idempotency key on the unique index `Costs.sourceCostId`. ' costAdjustmentReasonId: type: string format: uuid description: 'UUID of the `CostAdjustmentReasons` row this adjustment is categorised under. The caller is expected to know which reason its producer flow corresponds to (FAP dispute sync supplies the seeded "Dispute" reason); unknown IDs are rejected with 400. ' costCent: type: integer description: Signed cost delta in cents. Positive for charges, negative for refunds. isShipper: type: boolean description: True if the cost applies to the shipper side; false for the LSP side. adjustmentUserId: type: string format: uuid nullable: true description: 'UUID of the OneRail user who authorized this adjustment in the originating system (e.g. the auditor resolving a FAP dispute). Must resolve to an existing `Users` row in Core; unknown IDs are rejected with 400. Omit or send null for adjustments created by automated/system flows. Flows through to `Cost.adjustmentUserId` and to the emitted `cost_changes` event''s `userId` envelope field. ' responses: '200': description: A Cost with this sourceCostId already exists (idempotent hit). content: application/json: schema: type: object description: Cost properties: id: type: string format: uuid deliveryAttemptId: nullable: true type: string format: uuid deliveryId: nullable: true type: string format: uuid reason: type: string enum: - BASE - TOLLS - PICKUP_PENALTIES - DELIVERY_PENALTIES - ACCESSORIAL - ITEM_SPECIFIC - ADJUSTMENT costCent: type: number isShipper: nullable: true type: boolean costDetails: type: array description: Array of json, that display other categories base on reason default: [] items: type: object properties: name: type: string type: type: string quantity: type: number costCent: type: number costAdjustmentReason: nullable: true type: object properties: id: type: string format: uuid reason: type: string adjustmentUserId: nullable: true type: string format: uuid sourceCostId: nullable: true type: string format: uuid description: 'UUID of the originating record when this cost was synced from an external system (e.g. a FAP dispute adjustment''s `InvoiceCost.PublicId`). Null for user-originated costs. Used as the FAP-side echo filter on `cost_changes`. ' createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time '201': description: New Cost was inserted. content: application/json: schema: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D~1costs~1adjustments/post/responses/200/content/application~1json/schema' '400': description: Invalid input (bad UUID, missing field, bad value, unknown reason or user). content: application/json: schema: type: object properties: message: type: string '404': description: Delivery attempt not found. content: application/json: schema: type: object properties: message: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/deliveryfiles: parameters: - name: deliveryId in: path required: true description: delivery id schema: type: string format: uuid - name: fileType in: query description: file type string schema: type: array items: type: string get: x-exegesis-controller: DeliveryFile summary: Get the delivery's deliveryFiles operationId: getAllDeliveryFiles security: - ApiKey: [] AppId: [] - bearer: [] tags: - Delivery responses: '200': description: Get delivery deliveryFile records content: application/json: schema: type: array items: type: object description: DeliveryFile properties: id: type: string format: uuid deliveryId: type: string format: uuid fileType: type: string fileTypeId: type: string format: uuid fileLink: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time base64: type: string publicUrl: type: string fileTypeName: type: string '401': $ref: '#/paths/~1v1~1routes/get/responses/404' '403': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/deliveryfile/upload: parameters: - name: deliveryId in: path required: true description: delivery id schema: type: string format: uuid post: x-exegesis-controller: DeliveryFile summary: Upload a file for a delivery operationId: uploadDeliveryFile security: - ApiKey: [] AppId: [] - bearer: [] tags: - Delivery requestBody: required: true content: multipart/form-data: schema: type: object description: Upload a file for a delivery required: - fileType properties: fileType: type: string description: Type of the file being uploaded example: Invoice fileData: type: string format: binary description: Binary file data to upload responses: '200': description: File uploaded successfully content: application/json: schema: type: object description: Response after successfully uploading a delivery file required: - id - deliveryId - fileLink - fileTypeId - createdAt properties: id: type: string format: uuid description: Unique identifier of the uploaded delivery file deliveryId: type: string format: uuid description: ID of the delivery this file belongs to fileLink: type: string description: URL link to the uploaded file fileTypeId: type: string format: uuid description: ID of the file type createdAt: type: string format: date-time description: Timestamp when the file was uploaded default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/bulk-deliveries-delete: post: x-exegesis-controller: Delivery summary: Bulk delete deliveries and associated data. Request body should be an array of delivery IDs. operationId: bulkDeleteDeliveries tags: - Delivery requestBody: required: true content: application/json: schema: type: array items: type: string responses: '200': description: Success. content: application/json: schema: type: object properties: successfullyDeleted: type: array items: type: string failedToDelete: type: array items: type: object properties: id: type: string reason: type: object default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/risky: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Delivery summary: Get information for risky delivery operationId: getInfoForRiskyDelivery tags: - Delivery responses: '200': description: Delivery Record content: application/json: schema: type: array items: type: object properties: organizationId: type: string organizationName: type: string organizationLogo: type: string phoneNumber: type: string nullable: true drivers: type: array items: type: object nullable: true properties: id: type: string firstName: type: string lastName: type: string phoneNumber: type: string driver: type: object properties: id: type: string availability: type: string ownFleetVehicle: type: object nullable: true properties: id: type: string name: type: string fleetVehicle: type: object properties: name: type: string vehicleType: type: string distance: type: object properties: distanceInMiles: type: number etaTimestamp: type: string travelTimeSecs: type: number '404': $ref: '#/paths/~1v1~1routes/get/responses/404' '512': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/bulk-dispatch: post: x-exegesis-controller: Delivery summary: Bulk Dispatch Deliveries operationId: bulkDispatch tags: - Delivery requestBody: required: true content: application/json: schema: type: object required: - deliveryIds properties: deliveryIds: description: Array of delivery Ids type: array items: type: string format: uuid responses: '200': description: Success default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/schedule-api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Delivery schedule dispatch with dropoff window (API) operationId: scheduleDispatchFromApi security: - ApiKey: [] AppId: [] tags: - Delivery requestBody: description: Dropoff window with opensOn and closesOn content: application/json: schema: type: object properties: opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format responses: '200': description: is Dispatch schedule content: application/json: schema: type: object properties: success: type: boolean description: True if operation was successful '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/reschedule-api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Delivery reschedule or cancel dispatch (API) operationId: rescheduleDispatchFromApi security: - ApiKey: [] - AppId: [] - OAuth: [] tags: - Delivery requestBody: description: Dispatch schedule content: application/json: schema: type: object required: - dispatchAt properties: dispatchAt: type: string format: date-time nullable: true lpContractSlaId: type: string nullable: true lpRateCardId: type: string nullable: true lpOrganizationId: type: string nullable: true shipperRateCardId: type: string nullable: true shippingMode: type: string nullable: true responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/reschedule: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Delivery reschedule or cancel dispatch operationId: rescheduleDispatch tags: - Delivery requestBody: description: Dispatch schedule content: application/json: schema: type: object required: - dispatchAt properties: dispatchAt: type: string format: date-time nullable: true lpContractSlaId: type: string nullable: true lpRateCardId: type: string nullable: true lpOrganizationId: type: string nullable: true shipperRateCardId: type: string nullable: true shippingMode: type: string nullable: true responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/update-risk: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid put: x-exegesis-controller: Delivery summary: update delivery risk operationId: updateDeliveryRisk security: - ApiKey: [] AppId: [] - bearer: [] tags: - Delivery requestBody: content: application/json: schema: type: object responses: '200': description: Delivery risk updated successfully content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/emergency-contact: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid put: x-exegesis-controller: Delivery summary: Add or update an emergency contact information to a delivery. Currently one emergency contact is allowed per delivery. operationId: updateDeliveryEmergencyContact security: - ApiKey: [] AppId: [] - bearer: [] tags: - Delivery requestBody: content: application/json: schema: type: object properties: contactName: type: string nullable: true contactTitle: type: string nullable: true phoneNumber: type: string nullable: true email: type: string nullable: true responses: '200': description: Emergency contact updated successfully content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/deliveries/delete: post: x-exegesis-controller: Delivery summary: Bulk delete deliveries as a background process operationId: deleteDeliveries tags: - Delivery requestBody: required: true content: application/json: schema: type: object properties: confirm: description: Confirmation of execution type: boolean default: false ids: description: List of IDs type: array items: type: string responses: '202': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/deliveries/risk: post: x-exegesis-controller: Delivery summary: Bulk calculate and return risk values operationId: riskDeliveries tags: - Delivery requestBody: required: true content: application/json: schema: type: object properties: deliveryIds: description: List of delivery IDs type: array items: type: string responses: '200': description: Risk values calculated successfully content: application/json: schema: type: array items: type: object properties: deliveryId: type: string risk: type: number nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/route/risk: post: x-exegesis-controller: Route summary: Bulk calculate and return risk values operationId: risk tags: - Delivery requestBody: required: true content: application/json: schema: type: object properties: routeId: description: Route uuid to get the deliveryIds to get the risks type: string responses: '200': description: Risk values calculated successfully content: application/json: schema: type: array items: type: object properties: deliveryId: type: string risk: type: number nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/attempt: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Creates an attempt for the delivery operationId: createAttempt tags: - Delivery Attempt requestBody: required: true content: application/json: schema: type: object description: Attempt data required: - deliveryAttempt properties: deliveryAttempt: type: object properties: lpContractSlaId: type: string format: uuid description: LP contract SLA ID to use for assigning the attempt nullable: true lpOrganizationId: type: string format: uuid description: LP organization ID to use for assigning the attempt nullable: true deliveryCost: type: object properties: computedCostCent: type: integer description: Optional LP computed cost, in cents deliveryStatus: type: object properties: tmsLinkURL: type: string description: Optional link to TMS tracking lpDeliveryId: type: string description: Optional task/job id the courier assigned for the delivery responses: '200': description: Delivery Attempt record content: application/json: schema: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryAttempt' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/attempt/api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: security: - ApiKey: [] AppId: [] x-exegesis-controller: Delivery summary: Creates an attempt for the delivery (API) operationId: createAttemptApi tags: - Delivery Attempt requestBody: required: true content: application/json: schema: type: object description: Attempt data required: - deliveryAttempt properties: deliveryAttempt: type: object properties: lpContractSlaId: type: string format: uuid description: LP contract SLA ID to use for assigning the attempt nullable: true lpOrganizationId: type: string format: uuid description: LP organization ID to use for assigning the attempt nullable: true deliveryCost: type: object properties: computedCostCent: type: integer description: Optional LP computed cost, in cents deliveryStatus: type: object properties: tmsLinkURL: type: string description: Optional link to TMS tracking lpDeliveryId: type: string description: Optional task/job id the courier assigned for the delivery responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1attempt/post/responses/200' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/exception: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: DeliveryException summary: Creates a delivery exception operationId: createDeliveryException tags: - Delivery Exception requestBody: required: true content: application/json: schema: type: object description: Delivery exception required: - severity - resolved - reason properties: reason: type: object description: Delivery exception reason required: - title properties: title: type: string deliveryBillableToShipper: type: boolean deliveryPayableToLp: type: boolean shipperSlaWaived: type: boolean lpSlaWaived: type: boolean canOverrideReturnPUAddress: type: boolean severity: type: string enum: - LOW - MEDIUM - HIGH resolved: type: boolean default: false notes: type: string nullable: true damageInfo: nullable: true type: object properties: quantity: type: integer orderItemId: type: string format: uuid deliveryAttemptId: type: string nullable: true isNoteVisibleToShipper: type: boolean default: true happenedOn: type: string format: date-time responses: '200': description: Delivery Record content: application/json: schema: type: object properties: id: type: string format: uuid reason: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception~1%7BexceptionId%7D/put/requestBody/content/application~1json/schema/properties/reason' severity: type: string enum: - LOW - MEDIUM - HIGH resolved: type: boolean default: false notes: type: string nullable: true damageInfo: type: object properties: id: type: string format: uuid quantity: type: string orderItem: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' deliveryAttemptId: type: string nullable: true isNoteVisibleToShipper: type: boolean user: type: object properties: id: type: string format: uuid firstName: type: string lastName: type: string happenedOn: type: string format: date-time createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/exception-api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: DeliveryException summary: Creates a delivery exception with Api Key operationId: createWithApiKey security: - ApiKey: [] AppId: [] tags: - Delivery Exception requestBody: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/exception/{exceptionId}: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid - name: exceptionId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: DeliveryException summary: Get a delivery exception operationId: getDeliveryException tags: - Delivery Exception responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: DeliveryException summary: Updates exception for a delivery operationId: updateDeliveryException tags: - Delivery Exception requestBody: required: true content: application/json: schema: type: object required: - severity - resolved - reason properties: reason: type: object properties: id: type: string format: uuid title: type: string deliveryBillableToShipper: type: boolean deliveryPayableToLp: type: boolean shipperSlaWaived: type: boolean lpSlaWaived: type: boolean canOverrideReturnPUAddress: type: boolean severity: type: string enum: - LOW - MEDIUM - HIGH resolved: type: boolean default: false notes: type: string nullable: true damageInfo: type: object properties: id: type: string format: uuid orderItemId: type: string format: uuid quantity: type: integer nullable: true deliveryAttemptId: type: string nullable: true isNoteVisibleToShipper: type: boolean happenedOn: type: string format: date-time responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: DeliveryException summary: Remove a delivery exception operationId: removeDeliveryException tags: - Delivery Exception responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery-exception-reason-definitions: get: x-exegesis-controller: DeliveryException summary: View delivery exception reason deifinitions operationId: getDefinitions tags: - Delivery Exception parameters: - name: orgId in: query description: Organization Id schema: type: string - name: filter in: query description: Optional to filter definitions content: application/json: schema: type: object properties: titles: type: array items: type: string responses: '200': description: Definition reasons content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid title: type: string deliveryBillableToShipper: type: boolean deliveryPayableToLp: type: boolean shipperSlaWaived: type: boolean lpSlaWaived: type: boolean isDeliveryLevel: type: boolean isAttemptLevel: type: boolean canOverrideReturnPUAddress: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/rating: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Delivery summary: Pull up a deliveries' rating operationId: getRating tags: - Delivery Rating responses: '200': description: Delivery Record content: application/json: schema: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryRating' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Delivery summary: Add rating to a delivery operationId: createRating security: - ApiKey: [] AppId: [] tags: - Delivery Rating requestBody: required: true content: application/json: schema: type: object required: - rating properties: rating: type: integer minimum: 0 feedback: type: string nullable: true responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1rating/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/options: get: x-exegesis-controller: Delivery summary: Get available delivery options operationId: getOptions tags: - Delivery responses: '200': description: Delivery Options content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/explain-lp-list: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Delivery summary: explanation why lp got picked for delivery operationId: explainLPList deprecated: true tags: - Delivery responses: '200': description: Explanation object content: application/json: schema: type: object '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/accessorial-quantity-exceptions: get: x-exegesis-controller: Delivery summary: Get delivery accessorial quantity exemptions operationId: getAccessorialExceptions tags: - Delivery responses: '200': description: Delivery Accessorial quantity exemptions content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid capabilityTagId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/shippers: get: x-exegesis-controller: Delivery summary: Get list of shippers for filtering operationId: getDeliveryShippers tags: - Delivery responses: '200': $ref: '#/paths/~1v1~1organizations~1lps/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v2/delivery/shippers: get: x-exegesis-controller: Delivery summary: Get list of shippers for filtering operationId: getShippers tags: - Delivery responses: '200': $ref: '#/paths/~1v1~1organizations~1lps/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/state: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid put: x-exegesis-controller: Delivery summary: Update the state of a delivery if it has no attempts operationId: updateState tags: - Delivery responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object required: - state properties: state: description: State to change type: string enum: - DRAFT - READY_TO_DISPATCH - SCHEDULED - ONERAIL_PROCESSING /v1/delivery/{deliveryId}/state/api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid put: security: - ApiKey: [] AppId: [] x-exegesis-controller: Delivery summary: Update the state of a delivery if it has no attempts (API) operationId: updateStateApi tags: - Delivery responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object required: - state properties: state: description: State to change type: string enum: - DRAFT - READY_TO_DISPATCH - SCHEDULED - ONERAIL_PROCESSING /v1/delivery/{deliveryId}/shipment-id-api: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Delivery summary: Update the shipment ID of a delivery security: - ApiKey: [] - AppId: [] - OAuth: [] operationId: updateShipmentIdFromApi tags: - Delivery - shipmentId responses: '200': description: success content: application/json: schema: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object required: - shipmentId properties: shipmentId: description: Shipment ID to update to. An empty string can be passed to clear out the shipment ID. type: string /v1/delivery/{deliveryId}/update-delivery-costs: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid put: x-exegesis-controller: Delivery summary: Update the delivery cost operationId: updateDeliveryCosts tags: - Delivery requestBody: required: true content: application/json: schema: type: object description: Delivery required: - shipperCostCent properties: shipperCostCent: type: number minimum: 0 responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/containers: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Delivery summary: Get the delivery containers structured in either nested or non-nested format operationId: getDeliveryContainers tags: - Delivery responses: '200': description: Delivery Containers content: application/json: schema: oneOf: - type: array items: type: object oneOf: - type: object required: - name - totalWeightLbs properties: name: type: string totalWeightLbs: type: number description: Weight of container and all items inside it shipperContainerId: type: string shipperExtraData: type: object description: Any additional shipping data in JSON format hazardousMaterialDetails: nullable: true type: object properties: signatoryContactName: type: string nullable: true emergencyContactNumber: type: string nullable: true signatoryContactTitle: type: string nullable: true offeror: type: string nullable: true signatoryContactPlace: type: string nullable: true dotLabeling: type: string nullable: true authorization: type: string nullable: true fedExPackagingType: type: string nullable: true items: type: array nullable: true items: $ref: '#/paths/~1v1~1order~1control-tower/get/responses/200/content/application~1json/schema/anyOf/0/items/properties/ownFleetVehicles/items/properties/currentRoute/properties/routeStops/items/properties/delivery/properties/order/properties/orderItems/items' subContainerQuantity: type: number nullable: true uniqueSubLabels: type: boolean nullable: true nmfc: type: string description: The national motor freight code for this delivery. This is a convenience function to set the same NMFC code for all the containers or order items in this delivery. nullable: true example: 82790-11 freightClass: type: string enum: - '50' - '55' - '60' - '65' - '70' - '77.5' - '85' - '92.5' - '100' - '110' - '125' - '150' - '175' - '200' - '250' - '300' - '400' - '500' - null description: The freight class for this delivery. This is a convenience function to set the same freight class for all the containers or order items in this delivery. nullable: true containers: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/0' example: name: string trackingInfo: - type: LPN - value: '123' totalWeight: 0 shipperContainerId: string shipperExtraData: {} containers: - name: string trackingInfo: type: LPN value: '123' totalWeight: 0 shipperContainerId: string shipperExtraData: {} containers: - name: string trackingInfo: type: LPN value: '123' totalWeight: 0 shipperContainerId: string shipperExtraData: {} containers: [] items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity: 0 uniqueSubLabels: true nmfc: string freightClass: '50' - containerType: BOX length: 0 width: 0 height: 0 totalWeight: 0 shipperContainerId: string shipperExtraData: {} items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity": 0 uniqueSubLabels": true nmfc: 82790-11 freightClass: '50' items: [] subContainerQuantity: 0 uniqueSubLabels: true nmfc: string freightClass: '50' - containerType: BOX length: 0 width: 0 height: 0 totalWeight: 0 shipperContainerId: string shipperExtraData: {} items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity": 0 uniqueSubLabels": true nmfc: 82790-11 freightClass: '50' items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity: 0 uniqueSubLabels: true nmfc: 82790-11 freightClass: '50' - type: object required: - containerType - lengthIn - widthIn - heightIn - totalWeightLbs properties: containerType: type: string enum: - BOX - BAG - BALE - BUCKET - BUNDLE - CAN - CARTON - CASE - COIL - CRATE - CYLINDER - DRUM - PAIL - PLT - PIECES - REEL - ROLL - SKID - TOTE - TUBE - MAGAZINE - POUND - PIECE - PACKAGE - TL - FTL - GAYLORD lengthIn: type: number description: Length in inches of this item widthIn: type: number description: Width in inches of this item heightIn: type: number description: Height in inches of this item totalWeightLbs: type: number description: Weight of container and all items inside it shipperContainerId: type: string shipperExtraData: type: object description: Any additional shipping data in JSON format hazardousMaterialDetails: nullable: true type: object properties: id: type: string deliveryContainerId: type: string signatoryContactName: type: string nullable: true emergencyContactNumber: type: string nullable: true signatoryContactTitle: type: string nullable: true offeror: type: string nullable: true signatoryContactPlace: type: string nullable: true dotLabeling: type: string nullable: true authorization: type: string nullable: true createdAt: type: string deletedAt: type: string fedExPackagingType: type: string nullable: true items: type: array nullable: true items: $ref: '#/paths/~1v1~1order~1control-tower/get/responses/200/content/application~1json/schema/anyOf/0/items/properties/ownFleetVehicles/items/properties/currentRoute/properties/routeStops/items/properties/delivery/properties/order/properties/orderItems/items' subContainerQuantity: type: number nullable: true uniqueSubLabels: type: boolean nullable: true nmfc: type: string description: The national motor freight code for this delivery. This is a convenience function to set the same NMFC code for all the containers or order items in this delivery. nullable: true example: 82790-11 freightClass: type: string enum: - '50' - '55' - '60' - '65' - '70' - '77.5' - '85' - '92.5' - '100' - '110' - '125' - '150' - '175' - '200' - '250' - '300' - '400' - '500' - null description: The freight class for this delivery. This is a convenience function to set the same freight class for all the containers or order items in this delivery. nullable: true containers: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/1' example: trackingInfo: - type: LPN - value: '123' totalWeight: 0 shipperContainerId: string shipperExtraData: {} containers: - trackingInfo: type: LPN value: '123' totalWeight: 0 shipperContainerId: string shipperExtraData: {} containers: - trackingInfo: type: LPN value: '123' totalWeight: 0 shipperContainerId: string shipperExtraData: {} containers: [] items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity: 0 uniqueSubLabels: true nmfc: string freightClass: '50' - containerType: BOX length: 0 width: 0 height: 0 totalWeight: 0 shipperContainerId: string shipperExtraData: {} items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity": 0 uniqueSubLabels": true nmfc: 82790-11 freightClass: '50' items: [] subContainerQuantity: 0 uniqueSubLabels: true nmfc: string freightClass: '50' - containerType: BOX length: 0 width: 0 height: 0 totalWeight: 0 shipperContainerId: string shipperExtraData: {} items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity": 0 uniqueSubLabels": true nmfc: 82790-11 freightClass: '50' items: - id: string description: string length: 0 width: 0 height: 0 weight: 0 quantity: 0 identifier: string complexities: string priceCent: 0 subContainerQuantity: 0 uniqueSubLabels: true nmfc: 82790-11 freightClass: '50' - type: object properties: containers: type: array items: allOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/0' - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/1' example: containers: - id: 4a9db309-9357-4edd-9f07-dd079a67acda, lengthIn: 40, widthIn: 40, heightIn: 40, deliveryId: 81a3e58a-b0ce-4b1a-88f0-51d3abd1001f, orderId: 0454ef06-e255-4297-9785-166e4b9da68a, totalWeightLbs: 1, containerTypeId: 15f56cb1-bba8-4011-8991-50e578334f62, trackingNumber: null, shipperContainerId: null, shipperExtraData: remainingVolume: 0 trackingInfo: type: LPN value: 123 labelURL: null, subContainerQuantity: 1, uniqueSubLabels: false, nmfc: null, freightClass: null, predefinedContainer: null, containerType: id: 15f56cb1-bba8-4011-8991-50e578334f62, name: BOX hazardousMaterialDetails: id: bc56a87d-5bb9-4973-b44d-11d096b517a7 signatoryContactName: Hello, World! emergencyContactNumber: 911 signatoryContactTitle: I don't know yet signatoryContactPlace: contact place whatever dotLabeling: dotLabeling text authorization: Authorization text offeror: whatever deliveryContainerId: 96f3c6f0-9292-49d8-a030-e833d07b0e0c createdAt: '2024-12-03T18:48:12.000Z' updatedAt: '2024-12-03T18:48:12.000Z' deletedAt: null fedExPackagingType: 4G fiberboard box orderItems: - weightLbs: 1, id: 3634bba8-f4a4-468f-b538-ca79596d445c, description: 8531853115683, identifier: Tire, priceCent: 0, lengthIn: 40, widthIn: 40, heightIn: 40, quantity: 1, sortOrdinal: 0, nmfc: null, freightClass: null, hazardousMaterialDetails: id: 125a1f64-82d9-462b-9e30-a21ee69f4c58 identificationNumber: '123' properShippingName: shippint name packagingGroup: group2 packagingType: sometype hazardClass: Flammable Liquid technicalName: foobar dan demo orderItemId: 2f186d3b-cc45-4faa-a188-8921c5b3bccb createdAt: '2024-12-03T18:48:12.000Z' updatedAt: '2024-12-03T18:48:12.000Z' deletedAt: null dotLabeling: EX123 fedExPackagingType: 4G fiberboard box containers: [] '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/notification-statuses: get: x-exegesis-controller: DeliveryNotificationStatuses summary: Get delivery notifications, used for getting delivery webhook notification state operationId: getAllDeliveryNotificationStatuses tags: - DeliveryNotificationStatuses parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string enum: - createdAt - updatedAt - state - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC - name: status in: query description: Filter and return notifications with a state in this array of notification states required: false schema: type: array items: type: string enum: - PENDING - SUCCESS - FAILED responses: '200': description: Delivery Notification Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: DeliveryNotification properties: id: type: string format: uuid deliveryId: type: string format: uuid status: type: string enum: - PENDING - SUCCESS - FAILED attempts: type: number lastAttempt: type: string lastResponseCode: type: string lastError: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/notification-statuses/create: post: x-exegesis-controller: DeliveryNotificationStatuses summary: Create a delivery notification status record. operationId: createDeliveryNotificationStatus tags: - DeliveryNotificationStatuses responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object required: - deliveryId - event properties: deliveryId: description: The deliveryId that a new webhook was made for type: string event: description: The error for failed webhook calls type: object /v1/delivery/notification-statuses/create/api: post: security: - ApiKey: [] AppId: [] x-exegesis-controller: DeliveryNotificationStatuses summary: Create a delivery notification status record. operationId: createApi tags: - DeliveryNotificationStatuses responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object required: - deliveryId - event properties: deliveryId: description: The deliveryId that a new webhook was made for type: string event: description: The error for failed webhook calls type: object /v1/delivery/notification-statuses/update: post: x-exegesis-controller: DeliveryNotificationStatuses summary: Update a delivery notification with an webhook attempt. Can be either successful or a failure with an error. operationId: updateDeliveryNotificationStatus tags: - DeliveryNotificationStatuses responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object required: - deliveryId - responseCode properties: deliveryId: description: The deliveryId that a new webhook was made for type: string format: uuid responseCode: description: The HTTP response code of the webhook attempt oneOf: - type: string - type: integer error: description: The error for failed webhook calls type: string /v1/delivery/notification-statuses/update/api: post: security: - ApiKey: [] AppId: [] x-exegesis-controller: DeliveryNotificationStatuses summary: Update a delivery notification with an webhook attempt. Can be either successful or a failure with an error. (API) operationId: updateApi tags: - DeliveryNotificationStatuses responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object required: - deliveryId - responseCode properties: deliveryId: description: The deliveryId that a new webhook was made for type: string format: uuid responseCode: description: The HTTP response code of the webhook attempt oneOf: - type: string - type: integer error: description: The error for failed webhook calls type: string /v1/delivery/notification-statuses/retry-pending: post: x-exegesis-controller: DeliveryNotificationStatuses summary: Retry any pending delivery notification statuses. Called by logic app security: - ApiKey: [] AppId: [] operationId: retryPendingDeliveryEvents tags: - DeliveryNotificationStatuses responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lp-market/{lpMarketId}/own-fleet-vehicles: parameters: - name: organizationId in: path required: true schema: type: string format: uuid - name: lpMarketId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: OwnFleetVehicle summary: Gets multiple Own Fleet Vehicles operationId: getOwnFleetVehiclesByMarket tags: - Own Fleet Vehicle responses: '200': description: Own Fleet Vehicle content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1own-fleet-vehicle~1%7BownFleetVehicleId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/{deliveryId}/viewing: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: DeliveryViewing summary: Get list of all users actively viewing a page operationId: getActiveViewers parameters: - name: userName in: query required: true schema: type: string - name: organizationName in: query required: true schema: type: string tags: - DeliveryViewing responses: '200': description: Delivery Viewing Records content: application/json: schema: type: object '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: DeliveryViewing summary: Remove current user from active delivery viewers operationId: removeActiveViewer tags: - DeliveryViewing responses: '200': description: Active viewer removed. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/viewing/active: post: x-exegesis-controller: DeliveryViewing summary: Get active viewers for many deliveries operationId: getActiveViewersByDeliveries tags: - DeliveryViewing requestBody: required: true content: application/json: schema: type: object required: - deliveryIds properties: deliveryIds: description: Array of delivery IDs to fetch active viewers for type: array maxItems: 100 items: type: string format: uuid responses: '200': description: Active delivery viewers content: application/json: schema: type: array items: type: object required: - deliveryId - viewingUsers properties: deliveryId: type: string format: uuid viewingUsers: type: array items: type: object required: - userName - organizationName - userId properties: userName: type: string organizationName: type: string userId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery/shipping-labels: post: x-exegesis-controller: Delivery summary: Creates / Regenerates Shipping Labels for delivery operationId: createDeliveryShippingLabels tags: - Delivery requestBody: required: true content: application/json: schema: type: object required: - deliveryId properties: deliveryId: description: Delivery id to create / regenerate shipping labels for type: string format: uuid responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/close-manifest: post: x-exegesis-controller: Manifest summary: Closes a carrier manifest description: Closes a carrier manifest for the authenticated shipper. security: - ApiKey: [] AppId: [] operationId: closeManifest tags: - Manifest requestBody: required: true content: application/json: schema: type: object required: - carrierCode - closedAt - carrierServiceLevel properties: carrierCode: type: string enum: - FDEX - USPS - AMZN description: Carrier code closedAt: type: string format: date-time description: Close date carrierServiceLevel: type: string description: Carrier service level manifestId: type: string nullable: true description: Manifest ID trackingNumber: type: string nullable: true description: Tracking number accountNumber: type: string nullable: true description: Account number locationId: type: string nullable: true description: Location ID responses: '200': description: Close Manifest Result content: application/json: schema: type: object required: - carrierCode properties: carrierCode: type: string manifestId: type: string closedAt: type: string format: date-time '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/own-fleet-vehicle/{ownFleetVehicleId}: parameters: - name: ownFleetVehicleId in: path required: true schema: type: string format: uuid delete: x-exegesis-controller: OwnFleetVehicle summary: Removes a vehicle operationId: removeOwnFleetVehicle tags: - Own Fleet Vehicle responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' get: x-exegesis-controller: OwnFleetVehicle summary: Gets a single Own Fleet Vehicle operationId: getOwnFleetVehicle tags: - Own Fleet Vehicle responses: '200': description: Own Fleet Vehicle content: application/json: schema: type: object description: Own fleet vehicle properties: id: type: string format: uuid nullable: true name: type: string maxWeightLbs: type: integer vin: type: string costPerMileCent: type: integer lpMarketId: type: string format: uuid nullable: true currentRouteId: type: string format: uuid nullable: true currentRoute: type: object nullable: true properties: id: type: string format: uuid userId: type: string format: uuid nullable: true orgSourcedIdentifier: type: string nullable: true fleetVehicleId: type: string format: uuid nullable: true fleetVehicleCompartments: type: array items: $ref: '#/paths/~1v1~1own-fleet-vehicle/put/responses/200/content/application~1json/schema/properties/fleetVehicleCompartments/items' active: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/own-fleet-vehicle: post: x-exegesis-controller: OwnFleetVehicle summary: Creates an Own Fleet Vehicle operationId: createOwnFleetVehicle tags: - Own Fleet Vehicle requestBody: required: true description: Own Fleet Vehicle content: application/json: schema: type: object description: Own fleet vehicle required: - name - maxWeightLbs - vin - costPerMileCent - lpMarketId - fleetVehicleCompartments properties: name: type: string maxWeightLbs: type: integer vin: type: string costPerMileCent: type: integer lpMarketId: type: string format: uuid fleetVehicleId: type: string format: uuid fleetVehicleCompartments: type: array items: $ref: '#/paths/~1v1~1own-fleet-vehicle/put/requestBody/content/application~1json/schema/properties/fleetVehicleCompartments/items' active: type: boolean responses: '200': description: Own fleet vehicle created successfully content: application/json: schema: $ref: '#/paths/~1v1~1own-fleet-vehicle/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: OwnFleetVehicle summary: Updates an Own Fleet Vehicle operationId: updateOwnFleetVehicle tags: - Own Fleet Vehicle requestBody: required: true description: Own Fleet Vehicle content: application/json: schema: type: object description: Own fleet vehicle required: - id - lpMarketId - organizationId - fleetVehicleCompartments properties: id: type: string format: uuid lpMarketId: type: string format: uuid fleetVehicleId: type: string format: uuid organizationId: type: string format: uuid name: type: string maxWeightLbs: type: integer vin: type: string costPerMileCent: type: integer fleetVehicleCompartments: type: array items: type: object properties: openingWidthIn: type: integer openingHeightIn: type: integer compartmentLengthIn: type: integer compartmentWidthIn: type: integer compartmentHeightIn: type: integer responses: '200': description: Success. content: application/json: schema: type: object description: Own fleet vehicle properties: id: type: string format: uuid name: type: string maxWeightLbs: type: integer vin: type: string costPerMileCent: type: integer lpMarketId: type: string format: uuid fleetVehicleId: type: string format: uuid fleetVehicleCompartments: type: array items: type: object properties: id: type: string format: uuid nullable: true openingWidthIn: type: integer openingHeightIn: type: integer compartmentLengthIn: type: integer compartmentWidthIn: type: integer compartmentHeightIn: type: integer fleetVehicleId: type: string format: uuid nullable: true ownFleetVehicleId: type: string format: uuid active: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/file: post: x-exegesis-controller: File summary: Uploads a new file operationId: createFile tags: - Uploads requestBody: content: multipart/form-data: schema: type: object description: Set if image should be securely stored and the binary data to upload required: - secure properties: secure: type: boolean description: If the image should be stored securely default: true fileData: type: string format: binary description: binary image upload responses: '200': description: Successful response. Returns URL to the file content: application/json: schema: properties: URL: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/assets: parameters: - name: url in: query description: image URL required: true schema: type: string get: x-exegesis-controller: File summary: Display image stored in Azure storage account operationId: viewImage security: [] tags: - Uploads responses: '302': description: Success. Redirected to image blob with access token headers: Location: schema: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/file-upload/{fileUploadId}: parameters: - name: fileUploadId in: path description: file id required: true schema: type: string get: x-exegesis-controller: FileUpload summary: Gets information related to a specific file uploads operationId: getFileUpload tags: - Bulk Uploads responses: '200': description: Success. headers: application/json: schema: type: object description: File upload status required: - fileName properties: id: type: string format: uuid fileName: type: string fileSize: type: integer format: int32 status: type: string enum: - processing - succeeded - failed - partial successCount: type: integer format: int32 failureCount: type: integer format: int32 orderCount: type: integer format: int32 deliveryCount: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time entity: type: string enum: - order - product - marketModifier organizationId: type: string format: uuid userId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/fleet-assets: get: x-exegesis-controller: FleetAssets summary: Global list of fleet assets that can be required to complete a contract operationId: getAllFleetAssets tags: - Fleet Assets responses: '200': description: Fleet Assets data. content: application/json: schema: description: List of available fleet assets to choose from type: object properties: fleetVehicles: type: array items: type: object properties: id: type: string name: type: string pickUpSpeeds: type: array items: type: object properties: id: type: string name: type: string value: type: number dropOffSpeeds: type: array items: type: object properties: id: type: string name: type: string value: type: number nullable: true capabilityTags: type: array items: type: object properties: id: type: string name: type: string fleetCategory: type: object properties: id: type: string name: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/optimize/{organizationId}: parameters: - name: organizationId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Order summary: Optimize system orders operationId: optimize requestBody: description: Route Optimizes orders content: application/json: schema: type: object properties: orderIds: description: Array of order Ids type: array items: type: string format: uuid vehicleId: description: Optional vehicle id to force all orders inside type: string format: uuid nullable: true tags: - Order responses: '200': description: Success content: application/json: schema: type: object properties: success: type: boolean ordersThatFit: type: array items: type: string format: uuid ordersExceedingWeightCapacity: type: array items: type: object properties: id: type: string format: uuid orderId: type: string description: External order ID netAmountCent: type: number description: Net Amount, in cents barCode: type: string orderSourceInfo: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderSourceInfo' orderItems: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' status: type: string ordersExceedingDimensionCapacity: type: array items: $ref: '#/paths/~1v1~1order~1optimize~1%7BorganizationId%7D/post/responses/200/content/application~1json/schema/properties/ordersExceedingWeightCapacity/items' errors: type: array items: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/optimize/{organizationId}/with-multiple-locations: parameters: - name: organizationId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: OrderOptimizer summary: Optimize system orders with multiple locations operationId: optimizeOrdersWithMultipleLocations requestBody: description: Route Optimizes orders content: application/json: schema: type: object properties: orderIds: description: Array of order Ids type: array items: type: string format: uuid vehicleId: description: vehicle id to force all orders inside type: string format: uuid startingLocationId: description: location id where vehicle will start type: string format: uuid skipVehicleChecks: description: Optional flag to force all orders inside the given vehicle type: boolean nullable: true tags: - Order responses: '200': description: Success content: application/json: schema: type: object properties: success: type: boolean ordersThatFit: type: array items: type: string format: uuid ordersExceedingWeightCapacity: type: array items: $ref: '#/paths/~1v1~1order~1optimize~1%7BorganizationId%7D/post/responses/200/content/application~1json/schema/properties/ordersExceedingWeightCapacity/items' ordersExceedingDimensionCapacity: type: array items: $ref: '#/paths/~1v1~1order~1optimize~1%7BorganizationId%7D/post/responses/200/content/application~1json/schema/properties/ordersExceedingWeightCapacity/items' errors: type: array items: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/control-tower: get: x-exegesis-controller: Order summary: Optimize system orders operationId: controlTower parameters: - name: shipperIds in: query description: shipperIds to filter down to. schema: type: array items: type: string - name: locationIds in: query description: locationIds to filter down to. schema: type: array items: type: string - name: includeExternal in: query description: whether or not to include external routes schema: type: boolean default: false tags: - Order responses: '200': description: Success content: application/json: schema: anyOf: - type: array items: type: object description: LP Markets/Locations properties: id: type: string name: type: string pickUpLocation: type: object description: Pick up Location associated with this lp market properties: id: type: string name: type: string location: type: object address: type: object ownFleetVehicles: type: array items: type: object description: OwnFleetVehicles properties: id: type: string name: type: string currentRoute: type: object description: Route of this vehicle properties: id: type: string orgSourcedIdentifier: type: string description: Organization Route ID createdAt: type: string updatedAt: type: string calculatedShipperCostCent: type: number status: type: string totalMilesEstimate: type: number totalDurationSecondsEstimate: type: number plannedStartAt: type: string format: date-time nullable: true pathCoordinates: type: array items: type: array items: type: array items: type: number routeStops: type: array items: type: object description: Route Stop properties: id: type: string eta: type: string description: ETA of the route stop computedLegDistanceMile: type: number description: Distance of the route stop computedLegDurationSeconds: type: number description: Duration of the route stop delivery: type: object description: Delivery object properties: id: type: string to: type: object description: Location object order: type: object description: Order of delivery properties: orderItems: description: List of items for the order type: array items: type: object required: - quantity properties: description: type: string nullable: true identifier: type: string nullable: true priceCent: description: Price in cents type: number nullable: true lengthIn: description: item length in inches. Smallest value is an inch. Float values are rounded up type: number nullable: true widthIn: description: item width in inches. Smallest value is an inch. Float values are rounded up type: number nullable: true heightIn: description: item height in inches. Smallest value is an inch. Float values are rounded up type: number nullable: true weightLbs: description: Item weight in pounds. Float values are rounded up type: number nullable: true quantity: description: How many of this item type: integer default: 1 sortOrdinal: type: integer nullable: true nmfc: type: string description: The national motor freight code for this delivery. This is a convenience function to set the same NMFC code for all the containers or order items in this delivery. nullable: true example: 82790-11 hsCode: type: string description: HS Code (Harmonized System Code) is an internationally standardized system of names and numbers to classify traded products. Needs to be provided by the shipper and is used for customs clearance of international deliveries. nullable: true countryOfManufacture: type: string nullable: true description: The country code where the item was manufactured example: US freightClass: type: string enum: - '50' - '55' - '60' - '65' - '70' - '77.5' - '85' - '92.5' - '100' - '110' - '125' - '150' - '175' - '200' - '250' - '300' - '400' - '500' - '' - null description: The freight class for this delivery. This is a convenience function to set the same freight class for all the containers or order items in this delivery. nullable: true doNotRotate: type: boolean nullable: false doNotStack: type: boolean nullable: false hazardousMaterialDetails: nullable: true type: object properties: identificationNumber: type: string nullable: true properShippingName: type: string nullable: true packagingGroup: type: string nullable: true hazardClass: type: string nullable: true hazardSubClass: type: string nullable: true technicalName: type: string nullable: true packagingType: type: string nullable: true dotLabeling: type: string nullable: true fedExPackagingType: type: string nullable: true weightLbs: type: number description: the combined weight of all orderitems for the current routestop on the current route routeInfo: type: object description: Route information of this vehicle properties: vehicleId: type: string deliveryIds: type: array items: type: string description: id of delivery in route itemCount: type: string description: number of total items for this route delivery weightLbs: type: number description: the combined weight of all orderitems for all routestops on the current route external: type: boolean description: if the route is external or internal - type: array items: type: object description: LP Markets/Locations properties: ownFleetVehicles: type: array items: type: object description: OwnFleetVehicles properties: name: type: string currentRoute: type: object description: Route of this vehicle properties: id: type: string status: type: string totalMilesEstimate: type: number totalDurationSecondsEstimate: type: number orgSourcedIdentifier: type: string description: Organization Route ID createdAt: type: string updatedAt: type: string calculatedShipperCostCent: type: number plannedStartAt: type: string format: date-time nullable: true pathCoordinates: type: array nullable: true items: type: array items: type: number routeStops: type: array items: type: object description: Route Stop properties: id: type: string eta: type: string description: ETA of the route stop computedLegDistanceMile: type: number description: Distance of the route stop computedLegDurationSeconds: type: number description: Duration of the route stop delivery: type: object description: Delivery object properties: id: type: string to: type: object description: Location object order: type: object description: Order of delivery properties: orderItems: description: List of items for the order type: array items: $ref: '#/paths/~1v1~1order~1control-tower/get/responses/200/content/application~1json/schema/anyOf/0/items/properties/ownFleetVehicles/items/properties/currentRoute/properties/routeStops/items/properties/delivery/properties/order/properties/orderItems/items' weightLbs: type: number description: the combined weight of all orderitems for the current routestop on the current route routeInfo: type: object description: Route information of this vehicle properties: routeId: type: string routeDeliveryIds: type: array items: type: string description: id of delivery in route itemCount: type: string description: number of total items for this route delivery fleetVehicleId: type: string weightLbs: type: number description: the combined weight of all orderitems for all routestops on the current route external: type: boolean description: if the route is external or internal fleetVehicle: type: object description: fleet vehicle object properties: name: type: string description: name of the fleet vehicle fleetVehicleId: type: string routeId: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/control-tower/locations: get: x-exegesis-controller: Order summary: Load locations from an org that the user has access to. operationId: controlTowerFilters parameters: - name: shipperId in: query description: shipperId to get locations from schema: type: string format: uuid tags: - Order responses: '200': description: Location Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/optimized-drivers-location: get: x-exegesis-controller: OrderOptimizer summary: Get Driver Locations of optimized orders operationId: getActiveDriversLocations tags: - Order responses: '200': description: Success content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Delivery ID deliveryAttempts: type: object properties: id: type: string format: uuid description: Delivery Attempts ID deliveryStatus: type: object properties: location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' driverName: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/bulk-orders-delete: post: x-exegesis-controller: Order summary: Bulk delete orders and associated data. Request body should be an array of order IDs. operationId: bulkDelete tags: - Order requestBody: required: true content: application/json: schema: type: array items: type: string responses: '200': description: Success. content: application/json: schema: type: object properties: key: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/bulk-status: get: x-exegesis-controller: Order summary: Get status of a bulk process operationId: bulkStatus tags: - Order parameters: - name: key in: query description: Key ID of process required: true schema: type: string responses: '200': description: Process status. If still processing then it will return true content: application/json: schema: type: object properties: status: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/set-status: post: x-exegesis-controller: Order summary: Change orders status to Shipping operationId: setOrderAsShipping tags: - Order responses: '200': description: True or false content: application/json: schema: type: object properties: success: type: boolean default: $ref: '#/paths/~1v1~1routes/get/responses/404' requestBody: content: application/json: schema: type: object properties: orderIds: description: Array of order Ids type: array items: type: string format: uuid /v1/order/advance: post: x-exegesis-controller: Order summary: Advance order status operationId: advanceOrder tags: - Order requestBody: description: Body specifying the action to carry out content: application/json: schema: required: - label - orderId type: object properties: label: type: string description: Action to carry out enum: - ready_to_pack - ready_to_ship - manually_assign_carrier - dispatch_delivery orderId: type: string format: uuid description: The Id of the order data: type: object description: Extra optional data to pass in properties: box: type: object description: Optional. LxWxH properties of the box to create properties: lengthIn: type: number description: Length in inches widthIn: type: number description: Width in inches heightIn: type: number description: Height in inches lpContractSlaId: type: string format: uuid description: Optional. The ID of the LP contract SLA deliveryId: type: string format: uuid description: Optional. The ID of a delivery ignoreLock: type: boolean description: Optional. Ignore locking out multiple users from working on the same order confirmed: type: boolean description: Optional. When user has confirmed a prompt warning of re-assigning an active delivery attempt serviceLevel: type: string description: Optional. The service level manualOverride: type: boolean description: Optional. When user has confirmed a prompt warning of re-assigning and skipping certain checks on dispatching lpRateCardId: type: string description: Optional. The ID of the rate card to use when manually assinging an LP to the delivery shipperRateCardId: type: string description: Optional. The ID of the shipper rate card to use when manually assinging an LP to the delivery shipperCost: type: number description: Optional. The cost of the shipper rate card to use when manually assinging an LP to the delivery pickupMin: type: number description: Optional. The pickup min to use when manually assinging an LP to the delivery dropoffMin: type: number description: Optional. The dropoff min to use when manually assinging an LP to the delivery shippingMode: type: string description: Optional. The shipping mode to use when manually assinging an LP to the delivery enum: - FTL - Hotshot - InternalFleet - LTL - Parcel - Routed lpOrganizationId: type: string description: Optional. The organization id to use when manually assinging an LP to the delivery responses: '200': description: Object, return success:true and possibly other data content: application/json: schema: type: object properties: success: type: boolean description: True if operation was successful data: type: object description: Optional returned data for the action default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/{orderId}: parameters: - name: orderId in: path required: true schema: type: string format: uuid - name: limit in: query required: false description: Maximum number of deliveries to return in this page. When omitted, all deliveries are returned (legacy behaviour). schema: type: integer minimum: 1 - name: offset in: query required: false description: Number of deliveries to skip before returning the page. Defaults to 0. schema: type: integer minimum: 0 - name: includeItems in: query required: false description: When false, the top-level `orderItems` list is omitted and not loaded; item bodies are fetched lazily via GET /v1/order/{orderId}/delivery/{deliveryId}/items. Deliveries and containers still expose `orderItemIds`. Defaults to true (full item list returned). schema: type: boolean get: x-exegesis-controller: Order summary: Get a order details operationId: getOrder tags: - Order responses: '200': description: Order Record content: application/json: schema: type: object description: Order details properties: id: type: string format: uuid orderId: type: string description: External order ID netAmountCent: type: number description: Net Amount, in cents barCode: type: string updatedOn: type: string format: date-time nullable: true description: The most recent update timestamp across the order and all associated deliveries orderSourceInfo: type: object properties: id: type: string format: uuid data: type: object orderItems: type: array items: type: object properties: id: type: string format: uuid description: type: string identifier: type: string priceCent: type: number lengthIn: type: number widthIn: type: number heightIn: type: number weightLbs: type: number quantity: type: integer sortOrdinal: type: integer nullable: true hazardousMaterialDetails: nullable: true type: object properties: id: type: string orderItemId: type: string identificationNumber: type: string nullable: true properShippingName: type: string nullable: true packagingGroup: type: string nullable: true hazardClass: type: string nullable: true hazardSubClass: type: string nullable: true technicalName: type: string nullable: true packagingType: type: string nullable: true createdAt: type: string updatedAt: type: string dotLabeling: type: string nullable: true fedExPackagingType: type: string nullable: true status: type: string originLocationId: type: string format: uuid orginLocation: description: Originator Location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' organization: type: object description: Organization the order belongs to properties: id: type: string format: uuid name: type: string logoImageURL: type: string nullable: true description: URL of the organization's logo image organizationTypes: description: The organization's type(s) type: array items: type: object properties: id: type: string format: uuid name: type: string deliveries: type: array items: type: object description: Delivery properties: id: type: string format: uuid from: description: Pickup location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' to: description: Drop off location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' deliveryType: type: string notes: type: string triggeredBy: type: string state: type: string mappedState: type: string deliveryOptions: type: array items: $ref: '#/paths/~1v1~1delivery~1options/get/responses/200/content/application~1json/schema/items' isReturn: type: boolean dispatchAt: type: string format: date-time deliverySpeedMin: type: integer deliveryRating: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryRating' shipperContractSla: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/shipperContractSla' deliveryAttempts: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/deliveryAttempts/items' capabilityTags: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/capabilityTags/items' deliveryExceptions: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200/content/application~1json/schema' createdAt: type: string format: date-time updatedAt: type: string format: date-time shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true contractedShipperCostCent: type: integer actualShipperCostCent: type: integer slaPickupBufferMinute: type: number slaDropoffBufferMinute: type: number computedDistanceMile: type: number creationReason: type: string isFollower: type: boolean isLeader: type: boolean isScheduledForDispatch: type: boolean nullable: true deliveryNotes: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1delivery-note/post/responses/200/content/application~1json/schema' emergencyContact: nullable": true type: object $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/emergencyContact' orderItems: type: array description: Full item objects for this delivery. Returned only when item de-duplication is disabled. When the DEDUPE_ORDER_ITEMS_IN_ORDER_DETAILS flag is on, this is omitted in favour of `orderItemIds`, and the full objects are serialized once under the top-level `orderItems`. items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' orderItemIds: type: array description: Ids of this delivery's items, referencing the canonical objects under the order's top-level `orderItems`. Returned when item de-duplication is enabled (in place of `orderItems`). items: type: string format: uuid deliveryAccessorials: type: array items: $ref: '#/paths/~1v1~1delivery~1api/post/responses/200/content/application~1json/schema/allOf/1/properties/deliveryAccessorials/items' deliveryInternationalDetails: type: object nullable: true description: Details for international deliveries properties: aesItn: type: string nullable: true description: AES ITN number ftrExemptionCode: type: string nullable: true description: FTR Exemption Code itemCategory: type: string nullable: true description: Represents a classification/type of items. enum: - merchandise - returned_goods - documents - gift - sample - other example: merchendise itemDescription: type: string nullable: true description: A free-text explanation of what the contents are (only applicable if "itemCategory" is "other"). example: The items have air tight seals shippingRestriction: type: string nullable: true description: Represents any type of limitation (e.g., hazardous, embargoed). enum: - none - other - quarantine - sanitary_phytosanitary_inspection example: none restrictionNotes: type: string nullable: true description: Free-text comments clarifying or explaining the restriction (only applicable if "shippingRestriction" is not "none"). isCustomsCertified: type: boolean description: Boolean flag indicating certification status. nullable: true certifyingParty: type: string description: Name of the person or entity signing the customs form. nullable: true allOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200/content/application~1json/schema/allOf/1' - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D/get/responses/200/content/application~1json/schema/allOf/2' deliveriesTotalCount: type: integer description: Total number of deliveries on the order, regardless of pagination. Used by the UI to know whether more pages remain. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/add-deliveries-api: post: x-exegesis-controller: Order summary: Add one or more deliveries to an order using an apikey for auth operationId: addDeliveriesToOrderFromApi security: - ApiKey: [] - AppId: [] - OAuth: [] tags: - Order parameters: - name: waitForDeliveryCalculations in: query required: false schema: type: boolean requestBody: $ref: '#/paths/~1v1~1order~1add-returns-api/post/requestBody' responses: '200': description: Order Record content: application/json: schema: $ref: '#/paths/~1v1~1order~1add-returns-api/post/responses/200/content/application~1json/schema' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/add-returns-api: post: x-exegesis-controller: Order summary: Add one or more returns to an order using an apikey for auth operationId: addReturnsToOrderFromApi security: - ApiKey: [] - AppId: [] - OAuth: [] tags: - Order parameters: - name: waitForDeliveryCalculations in: query required: false schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1order~1api/post/requestBody/content/application~1json/schema' responses: '200': description: Order Record content: application/json: schema: type: object description: Order details properties: id: type: string format: uuid orderId: type: string description: External order ID netAmountCent: type: number description: Net Amount, in cents barCode: type: string orderSourceInfo: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderSourceInfo' orderItems: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' status: type: string organization: type: object description: Organization the order belongs to properties: id: type: string format: uuid name: type: string organizationTypes: description: The organization's type(s) type: array items: type: object properties: id: type: string format: uuid name: type: string deliveries: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/deliveries/items' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/add-returns-api/{deliveryId}: parameters: - name: deliveryId in: path required: true schema: type: string post: x-exegesis-controller: Order summary: Add one or more returns to an order using an apikey for auth, update original delivery's status to INCOMPLETE, filters list of LPs operationId: addReturnsToOrderFromApiDeliveryUpdate security: - ApiKey: [] AppId: [] tags: - Order requestBody: $ref: '#/paths/~1v1~1order~1add-returns-api/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/api: post: x-exegesis-controller: Order summary: Creates an order from API call with one or more deliveries security: - ApiKey: [] - AppId: [] - OAuth: [] operationId: createOrderFromApi tags: - Order parameters: - name: waitForDeliveryCalculations in: query required: false schema: type: boolean requestBody: required: true content: application/json: schema: type: object required: - orderId - deliveries properties: orderId: description: Unique order id identifying this order type: string netAmountCent: type: number description: Net Amount, in cents default: 0 barCode: type: string nullable: true state: type: string enum: - DRAFT - READY_TO_DISPATCH status: type: string description: Order's status. Defaults to PICKING enum: - PICKING - PACKING - SHIPPING default: PICKING deliveries: description: List of deliveries for the order type: array items: type: object description: Delivery required: - to - deliveryType - deliverySpeedMin - state properties: from: description: Pick up location. Pass in the id, or address info, or store number to look up the location type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object nullable: true properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true windows: type: object nullable: true properties: opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format appointment: type: object nullable: true properties: durationMins: type: number description: minutes as an integer description: type: string capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number physicalLocation: type: object nullable: true properties: altLocation: type: object properties: latitude: type: number longitude: type: number to: description: Drop off location. Pass in complete location info. Lat/Long are optional and will be populated if not passed. type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true windows: type: object nullable: true properties: opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format appointment: type: object nullable: true properties: durationMins: type: number description: minutes as an integer description: type: string capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number physicalLocation: type: object nullable: true properties: altLocation: type: object properties: latitude: type: number longitude: type: number labelType: type: string description: The type of label to print on the delivery requestLabel: type: boolean default: false description: Indicates if a label should be requested for this delivery deliveryType: description: Select if delivery is for a BUSINESS or RESIDENTIAL type: string enum: - BUSINESS - RESIDENTIAL default: RESIDENTIAL deliveryOptions: description: Optional list of delivery options type: array items: type: string uniqueItems: true example: - REQUIRE_SIGNATURE - REQUIRE_OVER_21 - HIPAA - REQUEST_PARCEL_PICKUP - REQUEST_PROOF_OF_PICKUP notes: type: string maxLength: 255 nullable: true description: Optional delivery notes isReturn: type: boolean default: false description: Is it a return delivery? orderItems: description: List of items for the delivery type: array items: $ref: '#/paths/~1v1~1order~1control-tower/get/responses/200/content/application~1json/schema/anyOf/0/items/properties/ownFleetVehicles/items/properties/currentRoute/properties/routeStops/items/properties/delivery/properties/order/properties/orderItems/items' capabilityTags: type: array items: type: string format: uuid description: List of capability IDs shipperContractSlaId: type: string format: uuid description: Shipper Contract SLA ID nullable: true deliverySpeedMin: type: number description: Delivery Speed, in minutes state: type: string description: State of the delivery order. Defaults to READY_TO_DISPATCH enum: - DRAFT - READY_TO_DISPATCH default: READY_TO_DISPATCH shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true serviceLevel: type: string description: Service Level name of sla to match this delivery nullable: true shipmentId: type: string description: Shipper's shipmentId to associate with the delivery nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null containers: type: array items: type: object oneOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/0' - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/1' dispatchAt: type: string description: datetime in ISO format format: date-time nullable: true nmfc: type: string description: The national motor freight code for this delivery. This is a convenience function to set the same NMFC code for all the containers or order items in this delivery. nullable: true example: 82790-11 freightClass: type: string enum: - '50' - '55' - '60' - '65' - '70' - '77.5' - '85' - '92.5' - '100' - '110' - '125' - '150' - '175' - '200' - '250' - '300' - '400' - '500' - null description: The freight class for this delivery. This is a convenience function to set the same freight class for all the containers or order items in this delivery. nullable: true deliveryFiles: $ref: '#/paths/~1v1~1delivery~1api/post/requestBody/content/application~1json/schema/properties/deliveryFiles' deliveryInternationalDetails: type: object nullable: true description: 'Export compliance information used for international shipments. Only one of the fields should be provided depending on the regulatory requirements: - If EEI filing in AES is required → provide `aesItn` - If EEI filing is not required → provide `ftrExemption` ' properties: ftrExemptionCode: type: string nullable: true description: 'FTR Exemption Statement indicating why EEI filing in AES is not required. Example: ''NO EEI 30.37(a)'' ' example: NO EEI 30.37(a) aesItn: type: string nullable: true description: 'Automated Export System Internal Transaction Number (ITN) returned after EEI submission. Format: ''AES X20250427123456'' ' example: AES X20250427123456 itemCategory: type: string nullable: true description: Represents a classification/type of items. enum: - merchandise - returned_goods - documents - gift - sample - other example: merchendise itemDescription: type: string nullable: true description: A free-text explanation of what the contents are (only applicable if "itemCategory" is "other"). example: The items have air tight seals shippingRestriction: type: string nullable: true description: Represents any type of limitation (e.g., hazardous, embargoed). enum: - none - other - quarantine - sanitary_phytosanitary_inspection example: none restrictionNotes: type: string nullable: true description: Free-text comments clarifying or explaining the restriction (only applicable if "shippingRestriction" is not "none"). isCustomsCertified: type: boolean description: Boolean flag indicating certification status. nullable: true certifyingParty: type: string description: Name of the person or entity signing the customs form. nullable: true nmfc: type: string description: The national motor freight code for this delivery. This is a convenience function to set the same NMFC code for all the containers or order items in this delivery. nullable: true example: 82790-11 freightClass: type: string enum: - '50' - '55' - '60' - '65' - '70' - '77.5' - '85' - '92.5' - '100' - '110' - '125' - '150' - '175' - '200' - '250' - '300' - '400' - '500' - null description: The freight class for this delivery. This is a convenience function to set the same freight class for all the containers or order items in this delivery. nullable: true originLocation: description: Origin location. Pass in the id, or address info, or store number to look up the location type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object nullable: true properties: address1: type: string address2: type: string city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true nullable: true capabilityTags: type: array items: oneOf: - type: string - type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true quantity: type: number responses: '200': description: Order Record content: application/json: schema: type: object properties: id: type: string format: uuid orderId: type: string description: External order ID organizationName: type: string channel: type: string createdAt: type: string format: date-time itemCount: type: number carrier: type: string nullable: true shipper: type: object description: Shipper organization the order belongs to properties: id: type: string format: uuid name: type: string nullable: true deliverySpeedMin: type: number nullable: true status: type: string enum: - PICKING - PACKING - SHIPPING nullable: true deliveryId: type: string format: uuid shipperContractSla: type: object properties: id: type: string serviceLevel: type: object properties: id: type: string name: type: string deliveries: type: array items: type: object description: Delivery Record properties: id: type: string format: uuid fromId: type: string format: uuid deliveryAttemptId: type: string format: uuid from: description: Pickup location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' to: description: Drop off location $ref: '#/paths/~1v1~1location/post/responses/200/content/application~1json/schema' deliveryType: type: string notes: type: string triggeredBy: type: string state: type: string deliveryOptions: type: array items: $ref: '#/paths/~1v1~1delivery~1options/get/responses/200/content/application~1json/schema/items' deliverySpeedMin: type: integer deliveryRating: $ref: '#/paths/~1v1~1delivery-attempt~1%7BdeliveryAttemptId%7D/put/responses/200/content/application~1json/schema/properties/deliveryRating' shipperContractSla: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/shipperContractSla' order: allOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/order/allOf/0' - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/order/allOf/1' deliveryAttempts: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/deliveryAttempts/items' capabilityTags: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/capabilityTags/items' deliveryExceptions: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1exception/post/responses/200/content/application~1json/schema' createdAt: type: string format: date-time updatedAt: type: string format: date-time shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true contractedShipperCostCent: type: integer actualShipperCostCent: type: integer slaPickupBufferMinute: type: number slaDropoffBufferMinute: type: number computedDistanceMile: type: number creationReason: type: string forceCreateDestinationLocation: type: boolean shipmentId: type: string description: Shippers shipmentId for this delivery nullable: true deliveryShipperCostDeviations: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/deliveryShipperCostDeviations/items' orderItems: type: array items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' deliveryWindows: nullable: true type: array items: type: object properties: id: type: string format: uuid deliveryId: type: string format: uuid deliverySegment: type: string enum: - PICKUP - DROPOFF opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format version: type: number createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time deliveryAppointments: nullable: true type: array items: type: object properties: durationMins: type: number description: minutes as an integer description: type: string deliverySegment: type: string enum: - PICKUP - DROPOFF deliveryAccessorials: type: array description: List of deliveryAccessorials attached to a delivery items: $ref: '#/paths/~1v1~1delivery~1api/post/responses/200/content/application~1json/schema/allOf/1/properties/deliveryAccessorials/items' deliveryFiles: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/deliveryFiles' deliveryNotes: type: array items: type: object properties: id: type: string format: uuid content: type: string visibility: type: string enum: - NORMAL - OR_ONLY createdAt: type: string format: date-time updatedAt: type: string format: date-time user: type: object properties: firstName: type: string lastName: type: string packingBoxes: type: array items: $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1dispatch/post/responses/200/content/application~1json/schema/properties/packingBoxes/items' ownFleetVehicle: type: object description: Vehicle properties: id: type: string format: uuid name: type: string risk: type: number nullable: true mileage: type: integer contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true default: null deliveryInternationalDetails: type: object nullable: true description: Details for international deliveries properties: aesItn: type: string nullable: true description: AES ITN number ftrExemptionCode: type: string nullable: true description: FTR Exemption Code itemCategory: type: string nullable: true description: Represents a classification/type of items. enum: - merchandise - returned_goods - documents - gift - sample - other example: merchendise itemDescription: type: string nullable: true description: A free-text explanation of what the contents are (only applicable if "itemCategory" is "other"). example: The items have air tight seals shippingRestriction: type: string nullable: true description: Represents any type of limitation (e.g., hazardous, embargoed). enum: - none - other - quarantine - sanitary_phytosanitary_inspection example: none restrictionNotes: type: string nullable: true description: Free-text comments clarifying or explaining the restriction (only applicable if "shippingRestriction" is not "none"). isCustomsCertified: type: boolean description: Boolean flag indicating certification status. nullable: true certifyingParty: type: string description: Name of the person or entity signing the customs form. nullable: true customFields: type: array description: Custom fields from shipper data extra unique to each shipper items: type: object properties: fieldName: type: string value: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/partial-update-api: patch: x-exegesis-controller: Order summary: Partial update order from API call with one or more deliveries security: - ApiKey: [] - AppId: [] - OAuth: [] operationId: partialUpdatePatch tags: - Order requestBody: $ref: '#/paths/~1v1~1order~1partial-update-api/put/requestBody' responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Order summary: Partial update order from API call with one or more deliveries security: - ApiKey: [] - AppId: [] - OAuth: [] operationId: partialUpdatePut tags: - Order requestBody: required: true content: application/json: schema: type: object required: - orderId properties: orderId: description: Unique order id identifying this order type: string netAmountCent: type: number description: Net Amount, in cents barCode: type: string nullable: true state: type: string enum: - DRAFT - READY_TO_DISPATCH status: type: string description: Order's status. Defaults to PICKING enum: - PICKING - PACKING - SHIPPING deliveries: description: List of deliveries for the order type: array items: type: object description: Delivery required: - state properties: from: description: Pick up location. Pass in the id, or address info, or store number to look up the location type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object nullable: true properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true windows: type: object nullable: true properties: opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format appointment: type: object nullable: true properties: durationMins: type: number description: minutes as an integer description: type: string capabilityTags: type: array items: type: string to: description: Drop off location. Pass in complete location info. Lat/Long are optional and will be populated if not passed. type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true address: type: object properties: address1: type: string address2: type: string nullable: true city: type: string state: type: string postalCode: type: string country: type: string default: US description: Two charter uppercase country code by ISO-3166 latitude: type: number format: float nullable: true longitude: type: number format: float nullable: true storeNumber: type: string nullable: true instructions: type: string nullable: true contactName: type: string nullable: true phoneNumber: type: string nullable: true contactEmailAddress: type: string nullable: true windows: type: object nullable: true properties: opensOn: type: string description: datetime in ISO format closesOn: type: string description: datetime in ISO format appointment: type: object nullable: true properties: durationMins: type: number description: minutes as an integer description: type: string capabilityTags: type: array items: type: string labelType: type: string description: The type of label to print on the delivery requestLabel: type: boolean default: false description: Indicates if a label should be requested for this delivery deliveryType: description: Select if delivery is for a BUSINESS or RESIDENTIAL type: string enum: - BUSINESS - RESIDENTIAL deliveryOptions: description: Optional list of delivery options type: array items: type: string uniqueItems: true example: - REQUIRE_SIGNATURE - REQUIRE_OVER_21 - HIPAA - REQUEST_PARCEL_PICKUP - REQUEST_PROOF_OF_PICKUP notes: type: string maxLength: 255 nullable: true description: Optional delivery notes isReturn: type: boolean description: Is it a return delivery? orderItems: description: List of items for the delivery type: array items: $ref: '#/paths/~1v1~1order~1control-tower/get/responses/200/content/application~1json/schema/anyOf/0/items/properties/ownFleetVehicles/items/properties/currentRoute/properties/routeStops/items/properties/delivery/properties/order/properties/orderItems/items' capabilityTags: type: array items: type: string format: uuid description: List of capability IDs shipperContractSlaId: type: string format: uuid description: Shipper Contract SLA ID nullable: true deliverySpeedMin: type: number description: Delivery Speed, in minutes state: type: string description: State of the delivery order. Defaults to READY_TO_DISPATCH enum: - DRAFT - READY_TO_DISPATCH - ARRIVED_FOR_DELIVERY shipperExtraData: type: object description: JSON blob that the customer can use to store additional info they may need. nullable: true serviceLevel: type: string description: Service Level name of sla to match this delivery nullable: true shipmentId: type: string description: Shipper's shipmentId to associate with the delivery nullable: true contactPreference: type: string enum: - EMAIL - SMS - BOTH - null nullable: true containers: type: array items: type: object oneOf: - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/0' - $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1containers/get/responses/200/content/application~1json/schema/oneOf/0/items/oneOf/1' deliveryFiles: $ref: '#/paths/~1v1~1delivery~1api/post/requestBody/content/application~1json/schema/properties/deliveryFiles' deliveryInternationalDetails: type: object nullable: true description: 'Export compliance information used for international shipments. Only one of the fields should be provided depending on the regulatory requirements: - If EEI filing in AES is required → provide `aesItn` - If EEI filing is not required → provide `ftrExemption` ' properties: ftrExemptionCode: type: string nullable: true description: 'FTR Exemption Statement indicating why EEI filing in AES is not required. Example: ''NO EEI 30.37(a)'' ' example: NO EEI 30.37(a) aesItn: type: string nullable: true description: 'Automated Export System Internal Transaction Number (ITN) returned after EEI submission. Format: ''AES X20250427123456'' ' example: AES X20250427123456 itemCategory: type: string nullable: true description: Represents a classification/type of items. enum: - merchandise - returned_goods - documents - gift - sample - other example: merchendise itemDescription: type: string nullable: true description: A free-text explanation of what the contents are (only applicable if "itemCategory" is "other"). example: The items have air tight seals shippingRestriction: type: string nullable: true description: Represents any type of limitation (e.g., hazardous, embargoed). enum: - none - other - quarantine - sanitary_phytosanitary_inspection example: none restrictionNotes: type: string nullable: true description: Free-text comments clarifying or explaining the restriction (only applicable if "shippingRestriction" is not "none"). isCustomsCertified: type: boolean description: Boolean flag indicating certification status. nullable: true certifyingParty: type: string description: Name of the person or entity signing the customs form. nullable: true responses: '200': $ref: '#/paths/~1v1~1order~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/product/bulk: post: x-exegesis-controller: Product summary: CSV file with products operationId: bulk tags: - Product requestBody: content: multipart/form-data: schema: type: object properties: name: type: string fileData: type: string format: binary responses: '200': description: Bulk products processed successfully content: application/json: schema: type: object properties: key: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/{orderId}/consolidate: post: x-exegesis-controller: Delivery summary: Consolidate one or more deliveries to one delivery operationId: consolidateDeliveries tags: - Delivery parameters: - name: orderId in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object description: Consolidate required: - deliveryIds - serviceLevelId - pickupLocationId - dropoffLocationId properties: deliveryIds: type: array items: type: string format: uuid serviceLevelId: type: string format: uuid pickupLocationId: type: string format: uuid dropoffLocationId: type: string format: uuid responses: '200': $ref: '#/paths/~1v1~1delivery~1api/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/{orderId}/container/{containerId}/scan-history: parameters: - name: orderId in: path required: true schema: type: string format: uuid - name: containerId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Order summary: Get the scan history for a container inside an order operationId: getDeliveryContainerScanHistory tags: - Order responses: '200': description: Order Scan History content: application/json: schema: type: array items: type: object properties: eventType: type: string example: PICKED_UP evidenceType: type: string example: scan evidenceData: type: object properties: evidenceType: type: string example: LPN evidenceValue: type: string example: 12345 location: type: object properties: id: type: string name: type: string example: Store One locationLocalTime: type: string example: '2023-11-07T09:21:23-08:00' happenedOn: type: string example: '2023-11-07T17:21:23Z' scanByParent: type: boolean example: true deliveryId: type: string '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/order/{orderId}/delivery/{deliveryId}/items: parameters: - name: orderId in: path required: true schema: type: string format: uuid - name: deliveryId in: path required: true schema: type: string format: uuid - name: limit in: query required: false description: Maximum number of items to return in this page. When omitted, all items are returned. schema: type: integer minimum: 1 - name: offset in: query required: false description: Number of items to skip before returning the page. Defaults to 0. schema: type: integer minimum: 0 get: x-exegesis-controller: Order summary: Get a paginated list of a delivery's order items operationId: getOrderDeliveryItems tags: - Order responses: '200': description: A page of the delivery's order items content: application/json: schema: type: object description: A page of a delivery's order items properties: items: type: array description: Full order-item objects for this page of the delivery's items. items: $ref: '#/paths/~1v1~1order~1%7BorderId%7D/get/responses/200/content/application~1json/schema/properties/orderItems/items' totalCount: type: integer description: Total number of items on the delivery, across all pages. '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/visibility/create: post: x-exegesis-controller: Visibility summary: Creates a visibility from API call security: - ApiKey: [] - AppId: [] - OAuth: [] operationId: createVisibilityOrderFromApi tags: - Visibility requestBody: description: Visibility request body content: application/json: schema: type: object description: Visibility required: - orderData - deliveries properties: orderData: type: object description: Order Data required: - orderId properties: orderId: type: string description: Order ID example: '123' deliveries: type: array items: type: object description: Delivery Information required: - deliveryType properties: deliveryType: type: string enum: - BUSINESS default: BUSINESS example: BUSINESS pickUpData: type: object properties: name: type: string description: The name of the location example: Example Location storeNumber: type: string description: The location number example: '12345' address1: type: string description: The first line of the location address example: 123 Main St address2: type: string description: The second line of the location address example: Suite 100 city: type: string description: The city where the location is situated example: Exampleville state: type: string description: The state where the location is situated example: Examplestate country: type: string description: The country where the location is situated example: Examplecountry zip: type: string description: The ZIP or postal code of the location example: '12345' contactName: type: string description: The name of the location contact person example: John Doe contactPhone: type: string description: The phone number of the location contact person example: 555-123-4567 contactEmailAddress: type: string description: The email address of the location contact person example: johndoe@example.com physicalLocation: type: object properties: altLocation: type: object properties: latitude: type: string description: The latitude of the alternate location example: '37.7749' longitude: type: string description: The longitude of the alternate location example: '-122.4194' dropOffData: $ref: '#/paths/~1v1~1visibility~1create/post/requestBody/content/application~1json/schema/properties/deliveries/items/properties/pickUpData' containers: type: array items: type: object description: Container Information properties: name: type: string description: The name of the container example: Container 1 trackingInfo: type: object description: Tracking information of the container properties: type: type: string enum: - LPN description: The type of tracking code example: LPN value: type: string description: The tracking code value example: '123' totalWeight: type: number description: The total weight of the container example: 100.5 shipperContainerId: type: string description: The identifier of the container provided by the shipper example: SHIP123 shipperExtraData: type: object description: Additional information provided by the shipper default: {} example: {} containers: type: array items: $ref: '#/paths/~1v1~1visibility~1create/post/requestBody/content/application~1json/schema/properties/deliveries/items/properties/containers/items' description: Nested containers within the current container items: type: array items: $ref: '#/paths/~1v1~1visibility~1create/post/requestBody/content/application~1json/schema/properties/deliveries/items/properties/items/items' description: Items within the current container nmfc: type: string description: NMFC (National Motor Freight Classification) code of the container example: 82790-11 freightClass: type: string description: Freight class of the container example: '50' trackingNumber: type: string description: Container tracking number example: ABC123 length: type: number description: Dimension of container example: 4 width: type: number description: Dimension of container example: 4 height: type: number description: Dimension of container example: 4 items: type: array items: type: object description: Information about an item properties: id: type: string format: uuid description: The UUID of the item example: 4a3b2c1d-1234-5678-9abc-def012345678 description: type: string description: The description of the item example: Item 1 length: type: number description: The length of the item example: 10.2 width: type: number description: The width of the item example: 5.7 height: type: number description: The height of the item example: 3.8 weight: type: number description: The weight of the item example: 2.5 quantity: type: number description: The quantity of the item example: 3 identifier: type: string description: The identifier of the item example: ABC123 complexities: type: string description: The complexities associated with the item example: Complexity 1 priceCent: type: number description: The price of the item in cents example: 500 lspIdentifier: type: string description: FREIGHT, SCAC, VAT, etc. example: ABC123 carrierCode: type: string description: Carrier code example: ABC123 lpDeliveryId: type: string description: The LP Delivery ID example: mockLpDeliveryId12345 shipmentId: type: string description: String identifier value that represents the shipment example: ABC123 numericSystem: type: string description: Numerical system default: IMPERIAL enum: - IMPERIAL - METRIC responses: '200': description: Create visibility response content: application/json: schema: type: object description: Response default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/visibility/{orderId}/add-deliveries: parameters: - name: orderId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: Visibility summary: Creates a visibility from API call security: - ApiKey: [] - AppId: [] - OAuth: [] operationId: addVisibilityDeliveriesToOrder tags: - Visibility requestBody: $ref: '#/paths/~1v1~1visibility~1create/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1visibility~1create/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/box: post: x-exegesis-controller: Box summary: Create Box operationId: createBox tags: - Box requestBody: required: true content: application/json: schema: type: object description: Box required: - name - lengthIn - widthIn - heightIn - organizationId properties: name: type: string lengthIn: type: number description: Item length in inches. Smallest value is an inch. Float values are rounded up widthIn: type: number description: Item width in inches. Smallest value is an inch. Float values are rounded up heightIn: type: number description: Item height in inches. Smallest value is an inch. Float values are rounded up maxWeight: type: number description: Item maxWeight. Float values are rounded up organizationId: type: string format: uuid responses: '200': description: Box content: application/json: schema: type: object description: Box properties: id: type: string format: uuid name: type: string lengthIn: type: number widthIn: type: number heightIn: type: number maxWeight: type: number organizationId: type: string format: uuid createdAt: description: Timestamp when the box was created type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/box/api: post: x-exegesis-controller: Box summary: Create Box via api operationId: createBoxApi security: - ApiKey: [] AppId: [] tags: - Box requestBody: required: true content: application/json: schema: type: object description: Box required: - name - lengthIn - widthIn - heightIn properties: name: type: string lengthIn: type: number description: Item length in inches. Smallest value is an inch. Float values are rounded up widthIn: type: number description: Item width in inches. Smallest value is an inch. Float values are rounded up heightIn: type: number description: Item height in inches. Smallest value is an inch. Float values are rounded up maxWeight: type: number description: Item maxWeight. Float values are rounded up responses: '200': description: Box content: application/json: schema: $ref: '#/paths/~1v1~1box/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/box/{boxId}: parameters: - name: boxId in: path required: true schema: type: string get: x-exegesis-controller: Box summary: Get Box operationId: getBox tags: - Box responses: '200': description: Box content: application/json: schema: $ref: '#/paths/~1v1~1box/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Box summary: Update a Box operationId: updateBox tags: - Box requestBody: required: true content: application/json: schema: type: object description: Box properties: name: type: string lengthIn: type: number description: Item length in inches. Smallest value is an inch. Float values are rounded up widthIn: type: number description: Item width in inches. Smallest value is an inch. Float values are rounded up heightIn: type: number description: Item height in inches. Smallest value is an inch. Float values are rounded up maxWeight: type: number description: Item maxWeight. Float values are rounded up responses: '200': description: Box content: application/json: schema: $ref: '#/paths/~1v1~1box/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Box summary: Remove box operationId: removeBox tags: - Box responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/box/{boxId}/api: parameters: - name: boxId in: path required: true schema: type: string put: x-exegesis-controller: Box security: - ApiKey: [] AppId: [] summary: Update a Box via api operationId: updateBoxApi tags: - Box requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1box~1%7BboxId%7D/put/requestBody/content/application~1json/schema' responses: '200': description: Box content: application/json: schema: $ref: '#/paths/~1v1~1box/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: Box security: - ApiKey: [] AppId: [] summary: Remove box via api operationId: removeApi tags: - Box responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/cancellation-reasons: get: x-exegesis-controller: CancellationReason summary: View all cancellation reasons operationId: getAllCancellationReasons tags: - Cancellation Reason responses: '200': description: Cancellation reasons content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/deliveryfile-types: get: x-exegesis-controller: FileType summary: View all file types operationId: getAllFileTypes tags: - File Type responses: '200': description: File types content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid fileType: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/cancel-expired-deliveries: post: x-exegesis-controller: Delivery summary: Accepts a filter to determine which deliveries to revoke the routes for and Only cancel deliveries that are not in a "final" status, final statuses security: - ApiKey: [] AppId: [] operationId: cancelExpiredDeliveries tags: - Delivery - Route requestBody: description: Filters to determine which deliveries to revoke the routes for. content: application/json: schema: type: object properties: organizationId: type: string format: uuid attemptedDeliveries: type: boolean requireOrderStatuses: type: array items: type: string ignoreFDOPackingDeliveries: type: boolean triggerAtMidnight: type: boolean createdAtStart: type: string format: date-time createdAtEnd: type: string format: date-time reportOnly: type: boolean manualDispatch: type: boolean shipperContractSlaIds: type: array items: type: string format: uuid deliveryStatuses: type: array items: type: string bins: type: integer minimum: 1 nullable: true responses: '200': description: Revoked routes and cancel deliveries '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/route/{routeId}: parameters: - name: routeId in: path required: true description: route id schema: type: string get: x-exegesis-controller: Route summary: Gets one route by id operationId: getRoute tags: - Route responses: '200': description: Success content: application/json: schema: type: object properties: id: type: string format: uuid status: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time userId: type: string format: uuid expectedCompletionDate: type: string format: date-time plannedStartAt: type: string format: date-time nullable: true calculatedShipperCostCent: type: number calculatedLpCostCent: type: number totalDurationSecondsEstimate: type: number totalMilesEstimate: type: number orgSourcedIdentifier: type: string nullable: true pathCoordinates: type: array items: type: array items: type: array items: type: number nullable: true routeStops: type: array items: type: object properties: id: type: string format: uuid eta: type: string format: date-time computedLegDistanceMile: type: number computedLegDurationSeconds: type: number routeId: type: string format: uuid deliveryId: type: string format: uuid stopType: type: string enum: - PICKUP - DROPOFF order: description: Order of the routestops along the route type: number delivery: type: object properties: id: type: string format: uuid orderId: type: string format: uuid order: type: object properties: id: type: string format: uuid organizationId: type: string format: uuid ownFleetVehicles: type: array items: type: object properties: id: type: string format: uuid name: type: string maxWeightLbs: type: number vin: type: string costPerMileCent: type: number lpMarketId: type: string format: uuid currentRouteId: type: string format: uuid fleetVehicleId: type: string format: uuid driverId: type: string format: uuid nullable: true active: type: boolean createdAt: type: string format: date-time OwnFleetVehicleRoute: type: object properties: ownFleetVehicleId: type: string format: uuid routeId: type: string format: uuid '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/route/{routeId}/risky: parameters: - name: routeId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Route summary: Get information for risky route operationId: getInfoForRiskyRoute tags: - Route responses: '200': description: Risky route information with carriers, costs, and drivers content: application/json: schema: type: array items: type: object properties: organizationId: type: string organizationName: type: string organizationLogo: type: string nullable: true phoneNumber: type: string nullable: true costCents: type: number description: Estimated cost in cents for the route from external rates API organizationSlaId: type: string nullable: true description: Organization SLA ID for the carrier drivers: type: array description: Array of available drivers within 100 miles of the route pickup location items: type: object nullable: true properties: id: type: string firstName: type: string lastName: type: string phoneNumber: type: string driver: type: object properties: id: type: string availability: type: string ownFleetVehicle: type: object distance: type: object '401': $ref: '#/paths/~1v1~1routes/get/responses/404' '403': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/route/{routeId}/rates-with-drivers: parameters: - name: routeId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Route summary: Get external rates with available drivers for route operationId: getRatesWithDriversForRoute tags: - Route responses: '200': description: External rates with available drivers information for route content: application/json: schema: type: array items: type: object properties: organizationId: type: string organizationName: type: string organizationLogo: type: string nullable: true phoneNumber: type: string nullable: true costCents: type: number description: Estimated cost in cents for the route from external rates API rateId: type: string description: Rate ID from external rates API organizationSlaId: type: string nullable: true description: Organization SLA ID for the carrier drivers: type: array description: Array of available drivers within 100 miles of the route pickup location items: type: object properties: id: type: string firstName: type: string lastName: type: string phoneNumber: type: string driver: type: object properties: id: type: string availability: type: string ownFleetVehicle: type: object distance: type: object '404': $ref: '#/paths/~1v1~1routes/get/responses/404' '512': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/routes/bulk-rates-with-drivers: post: x-exegesis-controller: Route summary: Get external rates with available drivers for multiple routes description: Returns carriers that can handle ALL specified routes, with rate information per route operationId: getRatesWithDriversForMultipleRoutes tags: - Route requestBody: required: true content: application/json: schema: type: object required: - routeIds properties: routeIds: type: array items: type: string format: uuid description: Array of route IDs to get rates for minItems: 1 responses: '200': description: External rates with available drivers for carriers that can handle all routes content: application/json: schema: type: array items: type: object properties: organizationId: type: string organizationName: type: string organizationLogo: type: string nullable: true phoneNumber: type: string nullable: true organizationSlaId: type: string nullable: true description: Organization SLA ID for the carrier drivers: type: array description: Array of available drivers within 100 miles of the first route pickup location items: type: object properties: id: type: string firstName: type: string lastName: type: string phoneNumber: type: string driver: type: object properties: id: type: string availability: type: string ownFleetVehicle: type: object distance: type: object ratesByRoute: type: object description: Map of routeId to array of rates for that route additionalProperties: type: array items: type: object properties: rateId: type: string description: Rate ID from external rates API costCents: type: number description: Estimated cost in cents for the route '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '404': $ref: '#/paths/~1v1~1routes/get/responses/404' '512': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/route/{routeId}/route-stop-notes: parameters: - name: routeId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: RouteStopNote summary: Get paginated route stop notes operationId: getAllRouteStopNotes tags: - RouteStopNote parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. schema: type: integer minimum: 1 default: 20 responses: '200': description: Route Stop Notes Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1route~1%7BrouteId%7D~1route-stop-notes/post/responses/201/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: RouteStopNote summary: Creates a route stop note operationId: createRouteStopNote tags: - RouteStopNote requestBody: required: true content: application/json: schema: type: object description: RouteStopNote properties: routeStopId: type: string content: type: string maxLength: 1000 minLength: 1 visibility: type: string description: Sets note's visibility. Only OR Users can set this value. NORMAL is defaulted if user doesn't have enough permissions enum: - NORMAL - OR_ONLY responses: '201': description: Route Stop Note content: application/json: schema: type: object description: RouteStopNote properties: id: type: string format: uuid routeStopId: type: string content: type: string visibility: type: string enum: - NORMAL - OR_ONLY routeStop: type: object description: Route stop properties: id: type: string deliveryId: type: string stopType: type: string user: type: object description: User properties: firstName: type: string lastName: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/route/{routeId}/revoke: parameters: - name: routeId in: path required: true description: route id schema: type: string post: x-exegesis-controller: Route summary: Removes all deliveries and fleet vehicles from route and deletes the route operationId: revokeRoute security: - ApiKey: [] AppId: [] tags: - Route responses: '200': description: Success content: application/json: schema: type: object properties: numOfVehicles: type: number deliveriesCanceled: type: array items: type: string format: uuid deliveriesNotCanceled: type: array items: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/routes: parameters: - name: organizationIds in: query description: organizationIds to filter down to. schema: type: array items: type: string - name: locationIds in: query description: locationIds to filter down to. schema: type: array items: type: string - name: routeStatuses in: query description: routeStatuses to filter down to. schema: type: array items: type: string enum: - CREATED - ASSIGNED - IN_PROGRESS - COMPLETED - CANCELED - name: driverAssignedToRoute in: query description: driverAssignedToRoute to filter down to. schema: type: boolean get: x-exegesis-controller: Route summary: Gets all routes operationId: getAllRoutes tags: - Route responses: '200': description: Success content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid status: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time userId: type: string format: uuid nullable: true expectedCompletionDate: type: string format: date-time nullable: true plannedStartAt: type: string format: date-time nullable: true calculatedShipperCostCent: type: number nullable: true calculatedLpCostCent: type: number nullable: true totalDurationSecondsEstimate: type: number nullable: true totalMilesEstimate: type: number nullable: true orgSourcedIdentifier: type: string nullable: true pathCoordinates: type: array items: type: array items: type: array items: type: number nullable: true routeStops: type: array items: type: object properties: id: type: string format: uuid eta: type: string format: date-time nullable: true computedLegDistanceMile: type: number nullable: true computedLegDurationSeconds: type: number nullable: true routeId: type: string format: uuid deliveryId: type: string format: uuid stopType: type: string enum: - PICKUP - DROPOFF order: description: Order of the routestops along the route type: number ownFleetVehicles: type: array items: type: object properties: id: type: string format: uuid name: type: string maxWeightLbs: type: number vin: type: string costPerMileCent: type: number lpMarketId: type: string format: uuid currentRouteId: type: string format: uuid fleetVehicleId: type: string format: uuid driverId: type: string format: uuid nullable: true active: type: boolean createdAt: type: string format: date-time OwnFleetVehicleRoute: type: object properties: ownFleetVehicleId: type: string format: uuid routeId: type: string format: uuid deliveries: type: array items: type: object properties: id: type: string format: uuid orderId: type: string format: uuid fromId: type: string format: uuid toId: type: string format: uuid altFromId: type: string format: uuid nullable: true altToId: type: string format: uuid nullable: true state: type: string dispatchAt: type: string format: date-time nullable: true deliverySpeedMin: type: number deliveryRatingId: type: string format: uuid nullable: true startTime: type: string format: date-time nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time driversLocationId: type: string format: uuid nullable: true routeVehicleHub: type: object nullable: true properties: id: type: string format: uuid routeId: type: string format: uuid locationId: type: string format: uuid location: type: object properties: id: type: string format: uuid address: type: string contactName: type: string nullable: true location: type: array items: type: number minItems: 2 maxItems: 2 name: type: string storeNumber: type: string nullable: true '404': description: Error content: application/json: schema: type: object required: - code - message properties: code: type: integer format: int32 message: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: Route summary: Create new orders within one or more routes. operationId: createRoutes tags: - Route requestBody: description: Multiple orders with route options. content: application/json: schema: type: object required: - routes properties: routes: type: array items: type: object required: - orders properties: id: type: string minLength: 5 maxLength: 255 description: Custom route id - Will create default if none is given. pattern: ^[a-zA-Z0-9:_-]+$ dispatchToOnerail: type: boolean default: false description: Use if route needs to be dispatched to OneRail. skipOptimizer: type: boolean default: false description: Set to true to skip route optimization step and keep delivery sequence. overflowToOnerail: type: boolean default: false description: Set to true to allow the overflow of routed deliveries to external. orders: type: array items: $ref: '#/paths/~1v1~1order~1api/post/requestBody/content/application~1json/schema' multipart/form-data: schema: type: object description: Set if image should be securely stored and the binary data to upload properties: fileData: type: string format: binary description: CSV File upload responses: '200': description: Success content: application/json: schema: type: object properties: failedOrders: type: array items: type: object properties: orderId: type: string routeId: type: string reason: type: string failedRoutes: type: array items: type: string successfulRoutes: type: array items: type: object properties: orgSourcedIdentifer: type: string deliveryIds: type: array items: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: Route summary: Update exist route. operationId: updateRoutes tags: - Route requestBody: description: Multiple orders with route options. content: application/json: schema: type: object required: - routes properties: routes: type: array items: type: object required: - orders - id properties: id: type: string description: Org source identifier route [orgSourcedIdentifier]. dispatchToOnerail: type: boolean default: false description: Use if route needs to be dispatched to OneRail. returnToDepot: type: boolean default: false description: Use if route needs to account for the driver returning to the distrubtion center at the end. skipOptimizer: type: boolean default: false description: Set to true to skip route optimization step and keep delivery sequence. orders: type: array items: $ref: '#/paths/~1v1~1order~1api/post/requestBody/content/application~1json/schema' multipart/form-data: schema: type: object properties: fileData: type: string format: binary description: CSV File upload responses: '200': description: Success content: application/json: schema: type: object properties: failedRoutes: type: array items: type: string successfulRoutes: type: array items: type: object properties: orgSourcedIdentifer: type: string deliveryIds: type: array items: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/routes/organization/{organizationId}: parameters: - name: organizationId in: path required: true description: organization id schema: type: string post: x-exegesis-controller: Route summary: Create routes with orders for specific organizationId operationId: createForOrganization tags: - Route requestBody: description: Multiple orders with route options. content: application/json: schema: $ref: '#/paths/~1v1~1routes/post/requestBody/content/application~1json/schema' multipart/form-data: schema: type: object description: Optional formData CSV File with list of orders properties: processInBackground: type: boolean default: false fileData: type: string format: binary description: CSV File upload responses: '200': description: Success content: application/json: schema: type: object properties: failedOrders: type: array items: type: object properties: orderId: type: string routeId: type: string reason: type: string failedRoutes: type: array items: type: string successfulRoutes: type: array items: type: object properties: orgSourcedIdentifer: type: string deliveryIds: type: array items: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/routes/{orgSourcedIdentifier}/deliveries: parameters: - name: orgSourcedIdentifier in: path required: true schema: type: string post: x-exegesis-controller: Route summary: Update route deliveries operationId: updateDeliveries tags: - Route requestBody: description: Delivery ids with options content: application/json: schema: type: object required: - deliveryIds properties: dispatchToOnerail: type: boolean default: false skipOptimizer: type: boolean default: false deliveryIds: type: array items: type: string responses: '200': description: Success content: application/json: schema: type: object properties: deliveryIds: type: array items: type: string format: uuid orgSourcedIdentifier: type: string warnings: type: array items: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/power-bi/embedable-report: parameters: - name: reportId in: query required: true schema: type: string format: uuid - name: groupId in: query required: true schema: type: string format: uuid - name: datasetId in: query required: true schema: type: string format: uuid get: x-exegesis-controller: PowerBi summary: Get Embadable report operationId: getEmbedableReport tags: - PowerBi responses: '200': description: Success content: application/json: schema: type: object properties: embedToken: type: string embedUrl: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery-attempt/{deliveryAttemptId}: parameters: - name: deliveryAttemptId in: path required: true schema: type: string put: x-exegesis-controller: DeliveryAttempt summary: Update a delivery attempt's details operationId: updateDeliveryAttempt tags: - Delivery Attempt requestBody: required: true content: application/json: schema: type: object description: Attempt detail data properties: deliveryCost: type: object properties: computedCostCent: type: integer description: Optional LP computed cost, in cents deliveryStatus: type: object description: Optional delivery status data properties: driverName: type: string driverPhone: type: string driverNotes: type: string tmsLinkURL: type: string eta: type: string format: date-time lpDeliveryId: type: string deliveryRating: description: Optional delivery rating $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1rating/post/requestBody/content/application~1json/schema' deliveryStateChange: type: object description: Optional change of happenedOn timestamp properties: id: type: string format: uuid happenedOn: type: string format: date-time description: Date-time in UTC responses: '200': description: Delivery attempt updated successfully content: application/json: schema: type: object properties: deliveryAttempt: type: object properties: id: type: string format: uuid state: type: string enum: - DISPATCHING - ASSIGNED - ACCEPTED_BY_LP - DRIVER_ASSIGNED - EN_ROUTE_TO_PICKUP - ARRIVED_FOR_PICKUP - PICKED_UP - EN_ROUTE_TO_DELIVERY - ARRIVED_FOR_DELIVERY - DELIVERED - DISPATCH_ERROR - INCOMPLETE - ONERAIL_PROCESSING - CANCELED_BY_LP - REVOKED_BY_ONERAIL - CANCELED_BY_SHIPPER - ROUTED failureReason: type: string shipperBillable: type: boolean lpPayable: type: boolean durationMin: type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time deliveryStatus: type: object properties: id: type: string format: uuid location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' driverName: type: string driverPhone: type: string eta: type: string format: date-time driverNotes: type: string tmsLinkURL: type: string lpDeliveryId: type: string lpDeliveryData: type: string deliveryStateChanges: type: array items: type: object properties: id: type: number format: uuid state: type: string enum: - DISPATCHING - ASSIGNED - ACCEPTED_BY_LP - DRIVER_ASSIGNED - EN_ROUTE_TO_PICKUP - ARRIVED_FOR_PICKUP - PICKED_UP - EN_ROUTE_TO_DELIVERY - ARRIVED_FOR_DELIVERY - DELIVERED - DISPATCH_ERROR - INCOMPLETE - ONERAIL_PROCESSING - CANCELED_BY_LP - REVOKED_BY_ONERAIL - CANCELED_BY_SHIPPER - ROUTED - DRAFT - READY_TO_DISPATCH - SCHEDULED - CANCELED_BY_ONERAIL driverName: type: string nullable: true driverPhone: type: string nullable: true location: $ref: '#/paths/~1v1~1location/get/responses/200/content/application~1json/schema/items/properties/location' happenedOn: type: string format: date-time createdBy: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string lpContractSla: $ref: '#/paths/~1v1~1lp-contract-sla~1%7BlpContractSlaId%7D/get/responses/200/content/application~1json/schema' deliveryCost: type: object properties: id: type: string format: uuid computedCostCent: type: integer actualCostCent: type: integer lpContractSlaId: type: string format: uuid lpContractSla: type: object description: LP Contract SLA properties: id: type: string format: uuid approvedOn: type: string format: date-time approvedById: type: string format: uuid shipperContractSlaId: type: string format: uuid description: Reference to Shipper Contract SLA organizationId: type: string format: uuid createdAt: type: string format: date-time lpSignatureId: type: string format: uuid oneRailSignatureId: type: string format: uuid deliveryCostDeviations: type: array items: type: object properties: id: type: string format: uuid reason: type: string costCent: type: integer createdBy: type: object nullable: true properties: id: type: string format: uuid firstName: type: string lastName: type: string delivery: type: object properties: state: type: string deliveryAttemptId: type: string format: uuid deliveryRating: type: object properties: id: type: string format: uuid rating: type: integer feedback: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery-attempt/{deliveryAttemptId}/delivery-state-change: parameters: - name: deliveryAttemptId in: path required: true schema: type: string post: x-exegesis-controller: DeliveryAttempt summary: Creates a delivery state change for the delivery attempt operationId: createDeliveryStateChange tags: - Delivery Attempt requestBody: required: true content: application/json: schema: type: object description: Event data required: - state - happenedOn properties: state: type: string enum: - ACCEPTED_BY_LP - DRIVER_ASSIGNED - EN_ROUTE_TO_PICKUP - ARRIVED_FOR_PICKUP - PICKED_UP - EN_ROUTE_TO_DELIVERY - ARRIVED_FOR_DELIVERY - DELIVERED - CANCELED_BY_LP - REVOKED_BY_ONERAIL happenedOn: type: string format: date-time description: Date-time in UTC responses: '200': $ref: '#/paths/~1v1~1delivery~1%7BdeliveryId%7D~1attempt/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/delivery-attempt/{deliveryAttemptId}/set-as-active: parameters: - name: deliveryAttemptId in: path required: true schema: type: string post: x-exegesis-controller: DeliveryAttempt summary: Sets the attempt as the active attempt operationId: setActiveAttempt tags: - Delivery Attempt requestBody: required: false description: Empty Body content: application/json: schema: type: object responses: '200': description: Success default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/dispatch-platforms: get: x-exegesis-controller: DispatchPlatform summary: Get all Dispatch Platforms operationId: getAllDispatchPlatforms parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Dispatch Platform responses: '200': description: Delivery Records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1dispatch-platform/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/dispatch-platform: post: x-exegesis-controller: DispatchPlatform summary: Create a Dispatch Platform operationId: createDispatchPlatform tags: - Dispatch Platform requestBody: required: true content: application/json: schema: type: object description: Dispatch Platform required: - name properties: name: type: string maxLength: 255 responses: '200': description: Dispatch Platform content: application/json: schema: type: object description: Dispatch Platform properties: id: type: string format: uuid name: type: string token: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/dispatch-platform/{dispatchPlatformId}: parameters: - name: dispatchPlatformId in: path required: true schema: type: string get: x-exegesis-controller: DispatchPlatform summary: Get Dispatch Platform operationId: getDispatchPlatform tags: - Dispatch Platform responses: '200': description: Dispatch Platform content: application/json: schema: $ref: '#/paths/~1v1~1dispatch-platform/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: DispatchPlatform summary: Update a Dispatch Platform operationId: updateDispatchPlatform tags: - Dispatch Platform requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1dispatch-platform/post/requestBody/content/application~1json/schema' responses: '200': description: Dispatch Platform content: application/json: schema: $ref: '#/paths/~1v1~1dispatch-platform/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/dispatch-platform/{dispatchPlatformId}/lps: parameters: - name: dispatchPlatformId in: path required: true schema: type: string get: x-exegesis-controller: DispatchPlatform summary: Get all LPs that have the dispatch platforms operationId: getLPsForDispatchPlatform parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Dispatch Platform responses: '200': description: LPs record content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: type: object description: LPs properties: id: type: string format: uuid name: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/dispatch-platform/{dispatchPlatformId}/settings: parameters: - name: dispatchPlatformId in: path required: true schema: type: string get: x-exegesis-controller: DispatchPlatform summary: Get all settings for a dispatch platform operationId: getSettings parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 maximum: 100 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Dispatch Platform responses: '200': description: Dispatch platform setting records content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1dispatch-platform~1%7BdispatchPlatformId%7D~1setting/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/dispatch-platform/{dispatchPlatformId}/setting: parameters: - name: dispatchPlatformId in: path required: true schema: type: string post: x-exegesis-controller: DispatchPlatformSetting summary: Create a Dispatch Platform Setting operationId: createSetting tags: - Dispatch Platform requestBody: required: true content: application/json: schema: type: object description: Dispatch platform setting required: - name - lpOrganizationId - data properties: name: type: string maxLength: 255 description: Setting name, usually identifying the Lp - Shipper relationship of the setting data: type: object additionalProperties: {} description: JSON data lpOrganizationId: type: string format: uuid description: The LP org with the specific setting shipperLocationId: type: string format: uuid description: The shipper locationID for this specific setting organizationId: type: string format: uuid nullable: true description: Optional Shipper org indicating this specific setting is for this org's account with the LP responses: '200': description: Dispatch platform setting content: application/json: schema: type: object description: Dispatch Platform properties: id: type: string format: uuid name: type: string data: type: string lp: type: object properties: id: type: string format: uuid name: type: string shipper: type: object nullable: true properties: id: type: string format: uuid name: type: string shipperLocation: type: object properties: id: type: string format: uuid name: type: string address: type: object properties: city: type: string label: type: string state: type: string county: type: string street: type: string district: type: string stateCode: type: string postalCode: type: string countryCode: type: string countryName: type: string houseNumber: type: string additionalData: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/dispatch-platform-setting/{dispatchPlatformSettingId}: parameters: - name: dispatchPlatformSettingId in: path required: true schema: type: string get: x-exegesis-controller: DispatchPlatformSetting summary: Get Dispatch platform setting operationId: getDispatchPlatformSetting tags: - Dispatch Platform Setting responses: '200': description: Dispatch platform setting content: application/json: schema: $ref: '#/paths/~1v1~1dispatch-platform~1%7BdispatchPlatformId%7D~1setting/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: DispatchPlatformSetting summary: Update a Dispatch platform setting operationId: updateDispatchPlatformSetting tags: - Dispatch Platform Setting requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1dispatch-platform~1%7BdispatchPlatformId%7D~1setting/post/requestBody/content/application~1json/schema' responses: '200': description: Dispatch platform setting content: application/json: schema: $ref: '#/paths/~1v1~1dispatch-platform~1%7BdispatchPlatformId%7D~1setting/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: DispatchPlatformSetting summary: Remove a dispatch platform setting operationId: removeDispatchPlatformSetting tags: - Dispatch Platform Setting responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/service-level/{serviceLevelId}/triggers: parameters: - name: serviceLevelId in: path required: true schema: type: string get: x-exegesis-controller: ServiceLevel summary: Get all triggers for a service level operationId: getTriggers tags: - Service Level Triggers responses: '200': description: Service level triggers sorted ascending content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1service-level~1%7BserviceLevelId%7D~1trigger/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/service-level/{serviceLevelId}/trigger: parameters: - name: serviceLevelId in: path required: true schema: type: string post: x-exegesis-controller: ServiceLevel summary: Create a service level trigger operationId: createTrigger tags: - Service Level Triggers requestBody: required: true content: application/json: schema: type: object required: - triggerTimeMins properties: triggerTimeMins: type: integer description: Minutes since midnight if repeating is false, otherwise an interval (e.g. 10 for 10 mins) repeating: type: boolean default: false repeatStartTimeMins: type: integer nullable: true description: Minutes since midnight repeatEndTimeMins: type: integer nullable: true description: Minutes since midnight responses: '200': description: Service level trigger content: application/json: schema: type: object properties: id: type: string format: uuid triggerTimeMins: type: integer serviceLevelId: type: string format: uuid repeating: type: boolean repeatStartTimeMins: type: integer nullable: true repeatEndTimeMins: type: integer nullable: true createdAt: type: string updatedAt: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/service-level/{serviceLevelId}/trigger/{triggerId}: parameters: - name: serviceLevelId in: path required: true schema: type: string - name: triggerId in: path required: true schema: type: string get: x-exegesis-controller: ServiceLevel summary: Get trigger for a service level operationId: getTrigger tags: - Service Level Triggers responses: '200': description: Service level trigger content: application/json: schema: $ref: '#/paths/~1v1~1service-level~1%7BserviceLevelId%7D~1trigger/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: ServiceLevel summary: Update trigger for service level operationId: updateTrigger tags: - Service Level Triggers requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1service-level~1%7BserviceLevelId%7D~1trigger/post/requestBody/content/application~1json/schema' responses: '200': description: Updated service level trigger content: application/json: schema: $ref: '#/paths/~1v1~1service-level~1%7BserviceLevelId%7D~1trigger/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: ServiceLevel summary: Remove a service level trigger operationId: removeTrigger tags: - Service Level Triggers responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/service-level/exception-conditions: get: x-exegesis-controller: ServiceLevelExceptionCondition summary: Get all conditions on a service level operationId: getAllServiceLevelExceptionConditions tags: - Service Level Exception Conditions responses: '200': description: Service level Exception Conditions content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1service-level~1exception-conditions~1%7Bid%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/service-level/exception-conditions/{id}: parameters: - name: id in: path required: true schema: type: string get: x-exegesis-controller: ServiceLevelExceptionCondition summary: Get one condition on a service level operationId: getById tags: - Service Level Exception Conditions responses: '200': description: Service level Exception Conditions content: application/json: schema: type: object properties: id: type: string format: uuid condition: type: string noun: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/decision-weights: get: x-exegesis-controller: DecisionWeight summary: Get Decision Weights operationId: getAllDecisionWeights parameters: - name: organizationId in: query description: Organization Id required: false schema: type: string format: uuid - name: marketModifierId in: query description: Market Modifier Id required: false schema: type: string format: uuid - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Decision Weight responses: '200': description: Decision Weights content: application/json: schema: type: array items: type: object description: Decision Weight Record properties: id: type: string format: uuid factor: type: string enum: - FAIRNESS - CANCELLATION_RATE_INST - COST - ONERAIL_BIAS - SLA_MET_RATE value: type: number format: float marketModifierId: type: string format: uuid nullable: true organizationId: type: string format: uuid nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/decision-weight/bulk-create: post: x-exegesis-controller: DecisionWeight summary: Bulk Create Decision Weights operationId: bulkCreateDecisionWeights tags: - Decision Weight requestBody: required: true content: application/json: schema: type: array items: type: object description: Decision Weight New Record required: - factor - value properties: factor: type: string enum: - FAIRNESS - CANCELLATION_RATE_INST - COST - ONERAIL_BIAS - SLA_MET_RATE value: type: number format: float organizationId: type: string format: uuid nullable: true marketModifierId: type: string format: uuid nullable: true responses: '200': $ref: '#/paths/~1v1~1decision-weights/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/decision-weight/bulk-delete: post: x-exegesis-controller: DecisionWeight summary: Bulk Delete Decision Weights operationId: bulkDeleteDecisionWeights tags: - Decision Weight requestBody: required: true content: application/json: schema: type: array items: type: string format: uuid responses: '200': description: Success default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/decision-weight/bulk-update: post: x-exegesis-controller: DecisionWeight summary: Bulk Update Decision Weights operationId: bulkUpdateDecisionWeights tags: - Decision Weight requestBody: required: true content: application/json: schema: type: array items: type: object description: Decision Weight Update Record required: - id properties: id: type: string format: uuid factor: type: string enum: - FAIRNESS - CANCELLATION_RATE_INST - COST - ONERAIL_BIAS - SLA_MET_RATE value: type: number format: float marketModifierId: type: string format: uuid nullable: true organizationId: type: string format: uuid nullable: true responses: '200': $ref: '#/paths/~1v1~1decision-weights/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/api-auths: get: x-exegesis-controller: ApiAuth summary: Get all Api Auths operationId: getAllApiAuths parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Api Auth responses: '200': description: Api Auth Records content: application/json: schema: allOf: - allOf: - type: object description: Pagination required: - total properties: total: type: number - type: object description: Pagination Parameters required: - limit properties: offset: type: number limit: type: number - type: object properties: data: type: array items: $ref: '#/paths/~1v1~1api-auth/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/api-auth: post: x-exegesis-controller: ApiAuth summary: Create an Api Auth operationId: createApiAuth tags: - Api Auth requestBody: required: true content: application/json: schema: type: object description: Api Auth required: - apiType properties: apiType: type: string maxLength: 255 organizationId: type: string format: uuid nullable: true extraData: type: object description: Any additional data in JSON format responses: '200': description: Api Auth content: application/json: schema: type: object description: Api Auth properties: id: type: string format: uuid apiType: type: string apiKey: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time organization: type: object properties: id: type: string format: uuid name: type: string extraData: type: object description: Any additional data in JSON format default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/api-auth/{id}: parameters: - name: id in: path required: true schema: type: string get: x-exegesis-controller: ApiAuth summary: Get Api Auth operationId: getApiAuth tags: - Api Auth responses: '200': description: Api Auth content: application/json: schema: $ref: '#/paths/~1v1~1api-auth/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: ApiAuth summary: Delete an ApiAuth operationId: removeApiAuth tags: - Api Auth responses: '200': description: Success default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/decision-weight-defaults: get: x-exegesis-controller: DecisionWeightDefault summary: Get Decision Weight Defaults operationId: getAllDecisionWeightDefaults parameters: - name: offset in: query description: Number of items to skip before returning the results. required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return. required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string default: DESC enum: - ASC - DESC tags: - Decision Weight Default responses: '200': description: Decision Weight Defaults content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1decision-weight-default~1%7BdecisionWeightDefaultId%7D/put/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/decision-weight-default/{decisionWeightDefaultId}: parameters: - name: decisionWeightDefaultId in: path required: true schema: type: string put: deprecated: true x-exegesis-controller: DecisionWeightDefault summary: Update a Decision Weight Default operationId: updateDecisionWeightDefault tags: - Decision Weight Default requestBody: required: true content: application/json: schema: type: object description: Decision Weight Update Record required: - id properties: id: type: string format: uuid factor: type: string enum: - FAIRNESS - CANCELLATION_RATE_INST - COST - ONERAIL_BIAS - SLA_MET_RATE value: type: number format: float responses: '200': description: Decision Weight Default content: application/json: schema: type: object description: Decision Weight Default Record properties: id: type: string format: uuid factor: type: string enum: - FAIRNESS - CANCELLATION_RATE_INST - COST - ONERAIL_BIAS - SLA_MET_RATE value: type: number format: float default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/decision-weight-default/bulk-update: post: x-exegesis-controller: DecisionWeightDefault summary: Bulk Update Decision Weight Defaults operationId: bulkUpdateDecisionWeightDefaults tags: - Decision Weight Default requestBody: required: true content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1decision-weight-default~1%7BdecisionWeightDefaultId%7D/put/requestBody/content/application~1json/schema' responses: '200': $ref: '#/paths/~1v1~1decision-weight-defaults/get/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/memwatch: post: x-exegesis-controller: MemWatch summary: Capture Heap operationId: startHeapDiff tags: - MemWatch requestBody: required: true content: application/json: schema: type: object required: - collectionTimer properties: collectionTimer: type: integer responses: '200': description: Id to look into the logs content: application/json: schema: type: object properties: id: type: string format: uuid heap: type: object default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/profiling: post: x-exegesis-controller: Profiler summary: Profiler operationId: start tags: - Profiler requestBody: required: true content: application/json: schema: type: object required: - collectionTimer properties: collectionTimer: type: integer default: 1 minimum: 1 maximum: 300 description: in seconds responses: '201': description: Response data content: application/json: schema: type: object properties: status: type: string filename: type: string cbeckBackTime: type: string default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/exception-alerts/{serviceLevelId}: parameters: - name: serviceLevelId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ExceptionAlert summary: View all exception alerts for a given servicelevel operationId: getByServiceLevel tags: - Exception Alert responses: '200': description: Exception alerts content: application/json: schema: type: object properties: serviceLevelId: type: string format: uuid conditions: type: array items: type: object properties: id: type: string format: uuid thresholdValue: type: integer minimum: 0 default: 0 conditionOperator: type: string default: '>' enum: - '>' - < - '=' notes: type: string default: '' deliveryExceptionReasonDefinitionId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/exception-alert: post: x-exegesis-controller: ExceptionAlert summary: Create Exception Alert operationId: createExceptionAlert tags: - Exception Alert requestBody: required: true content: application/json: schema: type: object properties: conditions: type: array items: type: object properties: serviceLevelId: type: string format: uuid organizationId: type: string format: uuid conditionId: type: string format: uuid thresholdValue: type: integer minimum: 0 conditionOperator: type: string enum: - '>' - < - '=' notes: type: string deliveryExceptionReasonDefinitionId: type: string format: uuid enabled: type: boolean responses: '200': description: Exception Alert content: application/json: schema: type: object properties: id: type: string format: uuid condition: description: Drop off location type: object properties: id: type: string format: uuid condition: type: string noun: type: string createdAt: type: string updatedAt: type: string thresholdValue: type: integer conditionOperator: type: string notes: type: string deliveryExceptionReasonDefinitionId: type: string format: uuid enabled: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/exception-alert/{exceptionAlertId}: parameters: - name: exceptionAlertId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: ExceptionAlert summary: Get Exception Alert operationId: getExceptionAlert tags: - Exception Alert responses: '200': description: Exception Alert content: application/json: schema: $ref: '#/paths/~1v1~1exception-alert/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: ExceptionAlert summary: Update Exception Alert operationId: updateExceptionAlert tags: - Exception Alert requestBody: required: true content: application/json: schema: type: object properties: conditionId: type: string format: uuid thresholdValue: type: integer minimum: 0 conditionOperator: type: string enum: - '>' - < - '=' notes: type: string deliveryExceptionReasonDefinitionId: type: string format: uuid enabled: type: boolean responses: '200': description: Exception Alert content: application/json: schema: $ref: '#/paths/~1v1~1exception-alert/post/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: ExceptionAlert summary: Remove Exception Alert operationId: removeExceptionAlert tags: - Exception Alert responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/exception-alert/apply-to-delivery/{deliveryId}: parameters: - name: deliveryId in: path required: true schema: type: string format: uuid post: x-exegesis-controller: ExceptionAlert summary: Apply exception alert to delivery operationId: applyServiceLevelExceptionAlertsOnDelivery tags: - Exception Alert requestBody: required: true content: application/json: schema: type: object properties: selectedAlerts: type: array items: type: object properties: condition: type: string preventExceptionDuplication: type: boolean responses: '200': description: Exception Alert content: application/json: schema: $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-configuration: post: x-exegesis-controller: LpConfiguration summary: Creates an LP Configuration operationId: createLpConfiguration tags: - LpConfiguration requestBody: required: true content: application/json: schema: type: object required: - organizationId - responseLPName - name - default - lockToLPGroup - applicableLPs properties: organizationId: description: Organization ID for this LP Configuration type: string default: description: When enabled, LP's not assigned to an LP Configuration will inherit this LP Configuration type: boolean lockToLPGroup: description: When enabled, once an LP in this LP Configuration is assigned to a delivery, only LP's that are included in this LP Configuration are allowed to be reassigned to the delivery type: boolean name: description: name of LP Configuration type: string responseLPName: description: Identifier passed to client when a delivery is assigned to an LP within this LP Configuration type: string applicableLPs: type: array items: type: string description: LP ID responses: '200': description: LP Configuration Record content: application/json: schema: type: object properties: id: type: string format: uuid organizationId: description: Organization ID for this LP Configuration type: string default: description: When enabled, LP's not assigned to an LP Configuration will inherit this LP Configuration type: boolean lockToLPGroup: description: When enabled, once an LP in this LP Configuration is assigned to a delivery, only LP's that are included in this LP Configuration are allowed to be reassigned to the delivery type: boolean responseLPName: description: Identifier passed to client when a delivery is assigned to an LP within this LP Configuration type: string name: description: name of LP Configuration type: string applicableLPs: type: array items: type: string description: LP ID default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/lp-configuration/{configurationId}: parameters: - name: configurationId in: path required: true description: configurationId schema: type: string put: x-exegesis-controller: LpConfiguration summary: Updates an LP Configuration operationId: updateLpConfiguration tags: - LpConfiguration requestBody: required: true content: application/json: schema: type: object required: - responseLPName - name - default - lockToLPGroup - applicableLPs properties: organizationId: description: Organization ID for this LP Configuration type: string default: description: When enabled, LP's not assigned to an LP Configuration will inherit this LP Configuration type: boolean lockToLPGroup: description: When enabled, once an LP in this LP Configuration is assigned to a delivery, only LP's that are included in this LP Configuration are allowed to be reassigned to the delivery type: boolean name: description: name of LP Configuration type: string responseLPName: description: Identifier passed to client when a delivery is assigned to an LP within this LP Configuration type: string applicableLPs: type: array items: type: string description: LP ID responses: '200': $ref: '#/paths/~1v1~1lp-configuration/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' get: x-exegesis-controller: LpConfiguration summary: Find one LPConfiguration operationId: find tags: - LpConfiguration responses: '200': description: LP Configurations content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid organizationId: description: Organization ID for this LP Configuration type: string default: description: When enabled, LP's not assigned to an LP Configuration will inherit this LP Configuration type: boolean lockToLPGroup: description: When enabled, once an LP in this LP Configuration is assigned to a delivery, only LP's that are included in this LP Configuration are allowed to be reassigned to the delivery type: boolean responseLPName: description: Identifier passed to client when a delivery is assigned to an LP within this LP Configuration type: string name: description: name of LP Configuration type: string applicableLPs: type: array items: type: object properties: id: type: string description: ID of LP organization name: type: string description: Name of LP organization default: $ref: '#/paths/~1v1~1routes/get/responses/404' delete: x-exegesis-controller: LpConfiguration summary: Deletes an LP Configuration operationId: destroy tags: - LpConfiguration responses: '200': description: Success. default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/organization/{organizationId}/lp-configurations: parameters: - name: organizationId in: path required: true description: organizationId schema: type: string get: x-exegesis-controller: LpConfiguration summary: Get organization's LP Configs operationId: getOrganizationLpConfigurations tags: - LpConfiguration - Organization responses: '200': description: LP Configurations content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1lp-configuration~1%7BconfigurationId%7D/get/responses/200/content/application~1json/schema/items' /v1/organization/{organizationId}/dynamic-routing-configs: parameters: - name: organizationId in: path required: true description: organizationId schema: type: string get: x-exegesis-controller: DynamicRoutingConfig summary: Get organization's Dynamic Routing Configs operationId: getAll tags: - DynamicRoutingConfig responses: '200': description: Dynamic Routing Configurations content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1dynamic-routing-configs/put/requestBody/content/application~1json/schema/items' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '500': $ref: '#/paths/~1v1~1routes/get/responses/404' put: x-exegesis-controller: DynamicRoutingConfig summary: Update Dynamic Routing Configurations operationId: updateAllDynamicRoutingConfigs tags: - DynamicRoutingConfig requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string description: Name of the dynamic routing config locationId: type: string format: uuid marketId: type: string format: uuid nullable: true radiusMiles: type: number nullable: true description: Radius in miles activeAt: type: string format: date-time nullable: true description: Date when the config becomes active activeUntil: type: string format: date-time nullable: true description: Date when the config becomes inactive serviceLevelIds: type: array items: type: string format: uuid vehicles: type: array items: type: object required: - userId properties: ownFleetVehicleId: type: string format: uuid description: Own fleet vehicle ID userId: type: string format: uuid nullable: true description: Driver user ID (optional, can be null) createdAt: type: string format: date-time updatedAt: type: string format: date-time _deleted: type: boolean nullable: true description: Whether the config is deleted responses: '200': description: Dynamic Routing Configurations updated successfully content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1organization~1%7BorganizationId%7D~1dynamic-routing-configs/put/requestBody/content/application~1json/schema/items' '400': $ref: '#/paths/~1v1~1routes/get/responses/404' '500': $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/user/lp-self-onboarding: post: x-exegesis-controller: LPSelfOnboarding summary: Creates user operationId: createLpSelfOnboarding security: - ApiKey: [] AppId: [] - bearer: [] tags: - LP Self Onboarding requestBody: description: Organization and User details content: application/json: schema: type: object description: Create user request properties: organization: type: object required: - name properties: name: description: Organization name type: string user: type: object required: - firstName - lastName - emailAddress properties: firstName: type: string lastName: type: string emailAddress: type: string active: type: boolean default: true responses: '200': description: LP Self Onboarding Record content: application/json: schema: type: object description: LP onboarding details. properties: userId: type: string format: uuid organizationId: type: string format: uuid lpAdminRoleId: type: string format: uuid default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/role/{roleId}/lp-self-onboarding: parameters: - name: roleId in: path required: true description: roleId schema: type: string put: x-exegesis-controller: LPSelfOnboarding summary: Update user role permissions operationId: updateRolePermissionsApi security: - ApiKey: [] AppId: [] tags: - LP Self Onboarding requestBody: content: application/json: schema: type: object description: Update role request required: - userId - permissions properties: userId: type: string format: uuid permissions: type: array description: Array of permissions items: type: string responses: '200': $ref: '#/paths/~1v1~1user~1lp-self-onboarding/post/responses/200' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/item-identifiers/bulk: post: x-exegesis-controller: ItemIdentifier summary: Bulk add item identifiers operationId: bulkAddItemIdentifiersFromApi security: - ApiKey: [] AppId: [] tags: - Delivery requestBody: required: true content: application/json: schema: type: object required: - itemIdentifiers properties: itemIdentifiers: type: array items: type: object description: ItemIdentifier required: - identifier - categoryType - organizationId properties: identifier: type: string description: type: string nullable: true categoryType: type: string organizationId: type: string responses: '200': $ref: '#/paths/~1v1~1bulk-dispatch/post/responses/200' /v1/freelancer/{userId}/own-fleet-vehicles: parameters: - name: userId in: path required: true schema: type: string format: uuid get: x-exegesis-controller: Freelancer summary: Gets multiple Own Fleet Vehicles operationId: getOwnFleetVehicles tags: - Own Fleet Vehicle responses: '200': description: Own Fleet Vehicle content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1own-fleet-vehicle~1%7BownFleetVehicleId%7D/get/responses/200/content/application~1json/schema' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/drivers: get: x-exegesis-controller: Drivers summary: Get drivers operationId: getAllDrivers parameters: - name: availability in: query description: Driver availability required: false schema: type: array items: type: string enum: - ON_DUTY - OFF_DUTY - OFFLINE - name: locationId in: query description: Filter by driver location. Ignored if orgazation id is given. required: false schema: type: string format: uuid - name: organizationId in: query description: Filter by organization. This will cause any location id to be ignored. required: false schema: type: string format: uuid tags: - Drivers responses: '200': description: Array of drivers and associated user data content: application/json: schema: description: Array of drivers and associated user data. type: object properties: drivers: type: array items: type: object properties: id: type: string format: uuid availability: type: string enum: - ON_DUTY - OFF_DUTY - OFFLINE ownFleetVehicleId: type: string format: uuid freelancer: type: boolean user: type: object properties: active: type: boolean id: type: string format: uuid employeeId: type: string firstName: type: string fleetId: type: string lastName: type: string phoneNumber: type: string driverId: type: string format: uuid '404': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/bulk-rejection: post: x-exegesis-controller: ControlTower summary: Reject routes and deliveries operationId: bulkRejection tags: - ControlTower requestBody: required: true content: application/json: schema: type: object description: Route ids or delivery ids to reject properties: deliveryIds: type: array items: type: string format: uuid routeIds: type: array items: type: string format: uuid reason: type: object nullable: true properties: title: type: string responses: '200': description: Success '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/bulk-cancelation: post: x-exegesis-controller: ControlTower summary: Deletes routes and deliveries operationId: bulkCancelation tags: - ControlTower requestBody: required: true content: application/json: schema: type: object description: Route ids or delivery ids to cancel properties: deliveryIds: type: array items: type: string format: uuid routeIds: type: array items: type: string format: uuid reason: type: object properties: reason: type: object properties: title: type: string id: type: string deliveryBillableToShipper: type: boolean nullable: true deliveryPayableToLp: type: boolean nullable: true shipperSlaWaived: type: boolean nullable: true lpSlaWaived: type: boolean nullable: true notes: type: string nullable: true responses: '200': description: Success '400': $ref: '#/paths/~1v1~1routes/get/responses/404' default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/pod-ratings: get: x-exegesis-controller: PodRating summary: Retrieve the next POD to rate operationId: getNextPod parameters: - name: organizationId in: query description: ID of the organization to filter the results. required: false schema: type: string format: uuid tags: - Pod Rating responses: '200': description: Next POD to rate content: application/json: schema: type: object description: Product properties: podUrl: type: string description: URL of the POD organizationId: type: string format: uuid description: Organization ID associated with the POD default: $ref: '#/paths/~1v1~1routes/get/responses/404' post: x-exegesis-controller: PodRating summary: Rate a POD operationId: ratePod tags: - Pod Rating requestBody: required: true content: application/json: schema: type: object description: Rate a POD required: - organizationId properties: organizationId: type: string format: uuid podUrl: type: string description: URL of the POD rating: type: boolean description: Rating of the POD, true for positive, false for negative responses: '200': description: Success default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/freight-audit-pay/organizations/summary: post: x-exegesis-controller: FreightAuditPay security: - bearer: [] - ApiKey: [] AppId: [] summary: Get organization summaries for Freight Audit & Pay description: 'Returns lightweight organization summary records for the requested organization IDs. Results are constrained by the caller''s organization access. Unauthorized and missing organization IDs are silently omitted from the response. ' operationId: getFapOrganizationSummaries tags: - Freight Audit & Pay requestBody: required: true content: application/json: schema: type: object additionalProperties: false required: - organizationIds properties: organizationIds: type: array minItems: 1 maxItems: 250 items: type: string format: uuid description: Organization UUIDs to summarize. responses: '200': description: Freight Audit & Pay organization summary records content: application/json: schema: type: array items: type: object description: Lightweight organization summary for Freight Audit & Pay UI enrichment additionalProperties: false required: - id - name - active properties: id: type: string format: uuid name: type: string active: type: boolean logoImageURL: type: string nullable: true dot: type: string nullable: true ach: type: string nullable: true federalTaxId: type: string nullable: true default: $ref: '#/paths/~1v1~1routes/get/responses/404' /v1/freight-audit-pay/organizations/{organizationId}/delivery-attempts: parameters: - name: organizationId in: path required: true description: Organization ID to filter delivery attempts schema: type: string format: uuid get: x-exegesis-controller: FreightAuditPay summary: Get delivery attempts for a specific organization description: 'Returns delivery attempts for a specific organization, scoped by the viewType parameter: shipper billing (the organization is the shipper) or LSP payment (the organization is the logistics provider). Costs are filtered to the requested view type. As of ITO_DEV-785 eligibility filters (billing period, shipperBillable/lpPayable flags, required FAP fields) no longer apply so the FAP UI can search any attempts the user wants to attach. The FAP API batch-attach owns final eligibility decisions. **At least one filter is required**: search parameter or deliveryAttemptIds. This prevents full table scans. ' operationId: getOrganizationDeliveryAttempts security: - bearer: [] - ApiKey: [] AppId: [] tags: - Freight Audit & Pay parameters: - name: viewType in: query required: true description: 'Determines how the organization is interpreted and which costs are returned. - shipper: the organization is the shipper being billed; costs are filtered to shipper costs and shipper location RBAC applies. - lsp: the organization is the logistics provider being paid; costs are filtered to LSP costs. ' schema: type: string enum: - shipper - lsp - name: offset in: query description: Number of items to skip before returning the results required: true schema: type: integer minimum: 0 default: 0 - name: limit in: query description: Maximum number of items to return required: true schema: type: integer minimum: 1 default: 20 - name: sortby in: query description: 'Field to sort by (case-insensitive). Allowed values: - DeliveryDate (terminal state date; maps to endStateAt) - OrderId - DeliveryId - AttemptId - RouteId - ShipperOrganizationName - AssignedDriverName - DeliveryState - UpdatedAt ' required: false schema: type: string - name: order in: query description: Sort order required: false schema: type: string enum: - ASC - asc - DESC - desc default: DESC - name: search in: query required: false description: Search term to filter delivery attempts by delivery attempt ID or order ID (substring match on both fields) schema: type: string maxLength: 100 example: ORD-123 - name: deliveryAttemptIds in: query required: false description: 'Specific delivery attempt IDs to retrieve (exact match, takes precedence over search). Supplied as repeated query keys, e.g. `?deliveryAttemptIds=&deliveryAttemptIds=`. ' style: form explode: true schema: type: array items: type: string format: uuid example: - 123e4567-e89b-12d3-a456-426614174000 - 123e4567-e89b-12d3-a456-426614174001 responses: '200': description: Delivery attempts for the requested view type content: application/json: schema: allOf: - $ref: '#/paths/~1v1~1api-auths/get/responses/200/content/application~1json/schema/allOf/0' - type: object properties: data: type: array description: Array of delivery attempt records items: type: object description: Delivery attempt record combining delivery and attempt scope data for freight audit and payment properties: deliveryId: type: string format: uuid nullable: true description: Unique identifier for the delivery orderId: type: string description: Custom order identifier (e.g., "ORD-123"), not the internal UUID. Always present as delivery attempts without orderId are filtered out. orderUuid: type: string format: uuid nullable: true description: Internal order UUID routeId: type: string nullable: true description: Custom route identifier (orgSourcedIdentifier), not the internal UUID routeUuid: type: string format: uuid nullable: true description: Internal route UUID for navigation purposes pickupWindow: type: object nullable: true description: Pickup window details (from DeliveryWindows where deliverySegment='PICKUP') properties: start: type: string format: date-time nullable: true end: type: string format: date-time nullable: true deliveryDeadline: type: string format: date-time nullable: true description: Latest delivery deadline from dropoff windows (from DeliveryWindows where deliverySegment='DROPOFF') pickupLocation: type: object description: Pickup location details properties: id: type: string format: uuid nullable: true description: Unique identifier for the pickup location (fromId) address: type: object nullable: true description: Full address object name: type: string nullable: true description: Location name contactName: type: string nullable: true description: Name of the contact person at the pickup location phoneNumber: type: string nullable: true description: Contact phone number for the pickup location location: type: object nullable: true description: Geographic coordinates properties: longitude: type: number nullable: true description: Longitude coordinate latitude: type: number nullable: true description: Latitude coordinate dropoffLocation: type: object description: Dropoff location details properties: id: type: string format: uuid nullable: true description: Unique identifier for the dropoff location (toId) address: type: object nullable: true description: Full address object name: type: string nullable: true description: Location name contactName: type: string nullable: true description: Name of the contact person at the dropoff location phoneNumber: type: string nullable: true description: Contact phone number for the dropoff location timezone: type: string nullable: true description: IANA timezone of the dropoff location (e.g. America/New_York) location: type: object nullable: true description: Geographic coordinates properties: longitude: type: number nullable: true description: Longitude coordinate latitude: type: number nullable: true description: Latitude coordinate totalItems: type: integer description: Total number of items in the order totalWeight: type: number description: Total weight of all items in pounds totalVolume: type: number description: Total volume of all items in cubic feet deliveryAttemptId: type: string format: uuid description: Unique identifier for the delivery attempt attemptNumber: type: integer description: Attempt number (calculated from array position) state: type: string description: Current state of the delivery attempt endStateAt: type: string format: date-time nullable: true description: Date when the delivery attempt reached a terminal state (DELIVERED, CANCELED_BY_LP, CANCELED_BY_ONERAIL, CANCELED_BY_SHIPPER, REVOKED_BY_ONERAIL, or INCOMPLETE). This is the date when the attempt became billable/payable. arrivedForPickupAt: type: string format: date-time nullable: true description: Date when the driver arrived for pickup driverName: type: string nullable: true description: Name of the driver assigned to this attempt createdAt: type: string format: date-time description: When the delivery attempt was created updatedAt: type: string format: date-time description: When the delivery attempt was last updated costs: type: array description: Array of cost records expanded by quantity, filtered to the current view type -- shipper or LSP. items: type: object description: Cost record for freight audit and pay, expanded by quantity and filtered to the current view type. properties: id: type: string format: uuid description: Unique identifier for the cost deliveryAttemptId: type: string format: uuid description: Delivery attempt this cost is associated with reason: type: string description: Reason category for the cost enum: - BASE - TOLLS - PICKUP_PENALTIES - DELIVERY_PENALTIES - ITEM_SPECIFIC - ACCESSORIAL costCent: type: integer description: Cost amount in cents name: type: string nullable: true description: Name or description of the cost type: type: string nullable: true description: Type of cost costDetails: type: array nullable: true description: Detailed cost breakdown items: type: object properties: name: type: string type: type: string quantity: type: integer costCent: type: integer costAdjustmentReasonId: type: string format: uuid nullable: true description: Reason for cost adjustment serviceLevel: type: object nullable: true description: Service level agreement details properties: agreementId: type: string format: uuid nullable: true description: LSP contract SLA ID vehicle: type: string nullable: true description: Vehicle name/identifier routeDistance: type: number nullable: true description: Computed delivery distance in miles shipperOrganizationId: type: string format: uuid nullable: true description: ID of the shipper organization shipperOrganizationName: type: string nullable: true description: Name of the shipper organization lspOrganizationId: type: string format: uuid nullable: true description: ID of the LSP organization lspOrganizationName: type: string nullable: true description: Name of the LSP organization lpContractSlaId: type: string format: uuid nullable: true description: ID of the LSP contract SLA, for navigation to LP contract SLA details shipperContractId: type: string format: uuid nullable: true description: ID of the parent ShipperContract, used to build the SLA review hyperlink for traditional invoices shipperContractSlaId: type: string format: uuid nullable: true description: ID of the shipper contract SLA shipperContractSlaName: type: string nullable: true description: Display name of the parent shipper contract (sourced from ShipperContractSla.shipperContract.name). Combined with serviceLevelName for the SLA column label. serviceLevelName: type: string nullable: true description: Service level name resolved from ShipperContractSla.serviceLevel.name. Always sourced from the shipper side regardless of invoice type. Combined with shipperContractSlaName for the SLA column label. shipperRateCardVersionId: type: string format: uuid nullable: true description: Rate card VERSION public ID used to price this delivery on the shipper side, when rate-card pricing is in effect. Null for contract-SLA deliveries. Consumers that need the parent rate card identity must resolve it via the rate cards service. shipperRateCardName: type: string nullable: true description: Display name of the shipper rate card's parent. Null for contract-SLA deliveries. lpRateCardVersionId: type: string format: uuid nullable: true description: Rate card VERSION public ID used to price this attempt on the LSP side, when rate-card pricing is in effect. Null for contract-SLA attempts. Consumers that need the parent rate card identity must resolve it via the rate cards service. lpRateCardName: type: string nullable: true description: Display name of the LSP rate card's parent. Null for contract-SLA attempts. default: $ref: '#/paths/~1v1~1routes/get/responses/404' components: securitySchemes: bearer: type: http scheme: bearer description: 'Standard JWT bearer token used for authenticated OmniPoint users and internal service-to-service calls. Clients send `Authorization: Bearer ` and the token is validated using the shared Core access token secret. ' ApiKey: type: apiKey in: header name: X-ONERAIL-API-KEY description: 'Shared secret key used for machine-to-machine integrations. Must be sent together with `X-ONERAIL-APP-ID` and is validated against the stored ApiAuth record for that application. ' AppId: type: apiKey in: header name: X-ONERAIL-APP-ID description: 'Application identifier (UUID) that pairs with `X-ONERAIL-API-KEY` for machine-to-machine integrations. Both headers are required for ApiKey-based authentication. ' OAuth: type: oauth2 description: 'OAuth 2.0 access token validated by the Operations service (e.g. Okta-backed integrations). Clients obtain tokens from their own IdP outside of this API and call endpoints with `Authorization: OAuth `. The `authorizationUrl` and `tokenUrl` values below are placeholders only to satisfy the OpenAPI schema; this service does not call them directly and the real IdP URLs are configured via environment and introspection logic in code. ' flows: authorizationCode: authorizationUrl: https://dummy-unused-url.com tokenUrl: https://dummy-unused-url.com scopes: {}