{
  "info": {
    "name": "MVMNT API",
    "description": "Official Postman collection for the MVMNT public API, generated from the OpenAPI spec. Import an environment (Demo or Production), fill in clientId/clientSecret, run \"Authentication → Get access token\" once, and every request inherits collection-level bearer auth via {{accessToken}}. Path variables (e.g. :id) are editable per request under the URL bar; optional query parameters are pre-filled but disabled.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{accessToken}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mvmnt.io/v1",
      "type": "string"
    },
    {
      "key": "accessToken",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Authentication",
      "item": [
        {
          "name": "Get access token",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const json = pm.response.json();",
                  "if (json.access_token) {",
                  "  pm.environment.set('accessToken', json.access_token);",
                  "  console.log('accessToken stored for ' + pm.environment.name);",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "auth": {
              "type": "noauth"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/x-www-form-urlencoded"
              }
            ],
            "url": {
              "raw": "{{tokenUrl}}",
              "host": [
                "{{tokenUrl}}"
              ]
            },
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "grant_type",
                  "value": "client_credentials"
                },
                {
                  "key": "client_id",
                  "value": "{{clientId}}"
                },
                {
                  "key": "client_secret",
                  "value": "{{clientSecret}}"
                }
              ]
            },
            "description": "OAuth 2.0 client-credentials token request. Runs against the tokenUrl of the selected environment and stores the returned access_token into the {{accessToken}} environment variable, which every other request uses as its bearer token. Tokens expire after one hour — just re-run this request."
          }
        }
      ]
    },
    {
      "name": "Companies",
      "item": [
        {
          "name": "Filter companies",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/companies/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "companies",
                "filter"
              ]
            },
            "description": "Query companies using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted companies are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"invoiceOnly\": {\n          \"equalTo\": false\n        }\n      },\n      {\n        \"name\": {\n          \"includes\": \"Inc\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a new company",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/companies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "companies"
              ]
            },
            "description": "Create a new company within an organization",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Acme Logistics Inc\",\n  \"addressLine1\": \"123 Main St\",\n  \"addressLine2\": \"Suite 400\",\n  \"city\": \"Chicago\",\n  \"country\": \"USA\",\n  \"fax\": \"+1-555-0123\",\n  \"invoiceOnly\": false,\n  \"invoiceVerbiage\": \"Please remit payment within 30 days\",\n  \"primaryContactName\": \"John Smith\",\n  \"primaryContactEmail\": \"john.smith@acmelogistics.com\",\n  \"primaryContactPhone\": \"+1-555-0100\",\n  \"key\": \"ERP-COMPANY-ACME-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a company by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/companies/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "companies",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single company by its unique identifier"
          }
        },
        {
          "name": "Update a company",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/companies/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "companies",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a company. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Acme Logistics Inc\",\n  \"addressLine1\": \"123 Main St\",\n  \"addressLine2\": \"Suite 400\",\n  \"city\": \"Chicago\",\n  \"country\": \"USA\",\n  \"fax\": \"+1-555-0123\",\n  \"invoiceOnly\": false,\n  \"invoiceVerbiage\": \"Please remit payment within 30 days\",\n  \"primaryContactName\": \"John Smith\",\n  \"primaryContactEmail\": \"john.smith@acmelogistics.com\",\n  \"primaryContactPhone\": \"+1-555-0100\",\n  \"key\": \"ERP-COMPANY-ACME-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a company",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/companies/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "companies",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a company (sets deletedAt timestamp).\n\nThe company will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        }
      ]
    },
    {
      "name": "Carrier Contacts",
      "item": [
        {
          "name": "Filter carrier contacts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-contacts/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-contacts",
                "filter"
              ]
            },
            "description": "Query carrier contacts using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted carrier contacts are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"contactTypes\": {\n          \"includes\": \"DISPATCH\"\n        }\n      },\n      {\n        \"email\": {\n          \"isNull\": false\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create carrier contact",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-contacts"
              ]
            },
            "description": "Create a new carrier contact. The contactInfo will create a new Contact record,\nand the CarrierContact will reference it via contactId (managed internally).\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"carrierId\": \"550e8400-e29b-41d4-a716-446655440001\",\n  \"name\": \"Jane Dispatcher\",\n  \"contactInfo\": {\n    \"name\": \"John Smith\",\n    \"email\": \"john.smith@example.com\",\n    \"phoneNumber\": \"+1-555-0100\",\n    \"title\": \"Operations Manager\"\n  },\n  \"contactTypes\": [\n    \"DISPATCH\",\n    \"AFTER_HOURS\"\n  ],\n  \"key\": \"ERP-CARRIER-CONTACT-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get carrier contact",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carrier-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single carrier contact by its unique identifier"
          }
        },
        {
          "name": "Update carrier contact",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a carrier contact. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n\nWhen updating contactInfo, the underlying Contact record is updated.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Jane Dispatcher\",\n  \"contactInfo\": {},\n  \"contactTypes\": [\n    \"DISPATCH\",\n    \"AFTER_HOURS\"\n  ],\n  \"key\": \"ERP-CARRIER-CONTACT-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete carrier contact",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carrier-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a carrier contact (sets deletedAt timestamp).\n\nThe contact will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        }
      ]
    },
    {
      "name": "Carriers",
      "item": [
        {
          "name": "Filter carriers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carriers/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers",
                "filter"
              ]
            },
            "description": "Query carriers using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted carriers are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n\nReturns carriers of all types (TRUCKLOAD, AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL)\nwith type-specific fields included based on carrier type.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"type\": {\n          \"equalTo\": \"TRUCKLOAD\"\n        }\n      },\n      {\n        \"status\": {\n          \"equalTo\": \"ACTIVE\"\n        }\n      },\n      {\n        \"inFmcsa\": {\n          \"equalTo\": true\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a new carrier",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carriers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers"
              ]
            },
            "description": "Create a new carrier within an organization.\n\nThe carrier type must be specified and determines which fields are available:\n- **TRUCKLOAD**: Includes insurance, safety rating, and FMCSA inspection fields\n- **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Include only base carrier fields\n\nNote: In the backend, null carrier type is represented as TRUCKLOAD in the public API.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Swift Transportation Co\",\n  \"type\": \"TRUCKLOAD\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a carrier by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carriers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single carrier by its unique identifier.\n\nThe response will include type-specific fields based on the carrier's type:\n- **TRUCKLOAD**: Includes insurance, safety rating, and FMCSA inspection fields\n- **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Include only base carrier fields\n"
          }
        },
        {
          "name": "Update a carrier",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carriers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a carrier. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n\nThe carrier type determines which fields can be updated:\n- **TRUCKLOAD**: Can update insurance, safety rating, and FMCSA fields\n- **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Can only update base carrier fields\n\nChanging the carrier type will affect which specialized fields are available.\n",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a carrier",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carriers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a carrier (sets deletedAt timestamp).\n\nThe carrier will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        },
        {
          "name": "Search carriers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carriers/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers",
                "search"
              ]
            },
            "description": "Search carriers using OpenSearch-powered full-text and field-specific search.\n\nThis endpoint searches both:\n- **ONBOARDED carriers**: Carriers with profiles in your organization\n- **FMCSA carriers**: Public carrier records from FMCSA database\n\nFeatures:\n- Full-text search across multiple fields\n- Field-specific filtering with various operators\n- Sorting and pagination\n- Saved search preferences\n\n**Note:** Only active (non-deleted) carriers are searchable. Soft-deleted records are automatically excluded from all search results.\n\n**Response Formats:**\n- `flat` (default): Returns indexed fields only for faster performance\n- `full`: Returns complete carrier objects with all relationships\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"criteria\": {\n    \"id\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"carrierProfileId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"goldenCarrierId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"friendlyId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"name\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"carrierStatus\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"type\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"city\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"market\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"zone\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"primaryContactName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryContactPhone\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryContactEmail\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"fmcsaStatus\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"mcNumber\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"dotNumber\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"einNumber\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"safetyRating\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"equipments\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"powerUnits\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"trucks\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"monthsActiveAuthority\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"highwayId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"highwayRulesAssessment\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"rmisId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"rmisOperatingStatus\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"rmisInvitationStatus\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"mcpStatus\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"mcpReviewStatus\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"quickbooksVendorId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"factorBankNames\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"paymentTermName\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"quickPayFee\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"accountOwnerId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"accountOwnerName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"loadsCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"totalMiles\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"totalRevenue\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"totalCostOfGoodsSold\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"ratePerMile\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"quotesCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"createdAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    }\n  },\n  \"pagination\": {\n    \"pageNumber\": 1,\n    \"pageSize\": 50\n  },\n  \"sort\": [\n    {\n      \"field\": \"createdAt\",\n      \"order\": \"desc\"\n    }\n  ],\n  \"savedSearch\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"format\": \"flat\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get carrier outstanding bills",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carriers/:id/outstanding-bills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers",
                ":id",
                "outstanding-bills"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List outstanding (unpaid) bills for a carrier.\n\nReturns bills with status `APPROVED_TO_PAY`.\n"
          }
        },
        {
          "name": "Get carrier bills available for payment",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carriers/:id/bills-for-payment",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carriers",
                ":id",
                "bills-for-payment"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List bills available for payment from a carrier.\n\nReturns bills with status `APPROVED_TO_PAY` and open balance.\n\n## Carrier factor\n\nIf the carrier has a factor configured, factor details are included.\n"
          }
        }
      ]
    },
    {
      "name": "Carrier Factors",
      "item": [
        {
          "name": "Filter carrier factors",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-factors/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-factors",
                "filter"
              ]
            },
            "description": "Query carrier factors (factoring companies) using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted carrier factors are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n\nCarrier factors represent factoring companies that provide payment services for carriers.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"companyName\": {\n          \"includes\": \"Capital\"\n        }\n      },\n      {\n        \"currency\": {\n          \"equalTo\": \"USD\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create carrier factor",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-factors",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-factors"
              ]
            },
            "description": "Create a new carrier factor (factoring company).\n\nFactoring companies provide payment services for carriers, allowing them to receive\nimmediate payment for invoices.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"companyName\": \"Capital Factoring Services Inc\",\n  \"key\": \"ERP-FACTOR-001\",\n  \"email\": \"accounting@capitalfactoring.com\",\n  \"phoneNumber\": \"+1-555-234-5678\",\n  \"phoneExtension\": \"123\",\n  \"fax\": \"+1-555-234-9999\",\n  \"addressLine1\": \"789 Finance Ave\",\n  \"addressLine2\": \"Suite 500\",\n  \"city\": \"Dallas\",\n  \"state\": \"TX\",\n  \"country\": \"USA\",\n  \"zipCode\": \"75201\",\n  \"bankName\": \"Chase Bank\",\n  \"bankAddress\": \"123 Bank Street, Dallas, TX 75201\",\n  \"accountName\": \"Capital Factoring Services Inc\",\n  \"accountNumber\": \"1234567890\",\n  \"abaAch\": \"021000021\",\n  \"wire\": \"026009593\",\n  \"swiftCode\": \"CHASUS33\",\n  \"eftInstitution\": \"001\",\n  \"eftTransit\": \"00010\",\n  \"clabe\": \"012180001234567897\",\n  \"currency\": \"USD\",\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440002\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get carrier factor",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carrier-factors/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-factors",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single carrier factor by its unique identifier.\n\nCarrier factors represent factoring companies that provide payment services.\n"
          }
        },
        {
          "name": "Update carrier factor",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-factors/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-factors",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a carrier factor. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"companyName\": \"Capital Factoring Services Inc\",\n  \"key\": \"ERP-FACTOR-001\",\n  \"email\": \"accounting@capitalfactoring.com\",\n  \"phoneNumber\": \"+1-555-234-5678\",\n  \"phoneExtension\": \"123\",\n  \"fax\": \"+1-555-234-9999\",\n  \"addressLine1\": \"789 Finance Ave\",\n  \"addressLine2\": \"Suite 500\",\n  \"city\": \"Dallas\",\n  \"state\": \"TX\",\n  \"country\": \"USA\",\n  \"zipCode\": \"75201\",\n  \"bankName\": \"Chase Bank\",\n  \"bankAddress\": \"123 Bank Street, Dallas, TX 75201\",\n  \"accountName\": \"Capital Factoring Services Inc\",\n  \"accountNumber\": \"1234567890\",\n  \"abaAch\": \"021000021\",\n  \"wire\": \"026009593\",\n  \"swiftCode\": \"CHASUS33\",\n  \"eftInstitution\": \"001\",\n  \"eftTransit\": \"00010\",\n  \"clabe\": \"012180001234567897\",\n  \"currency\": \"USD\",\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440002\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete carrier factor",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carrier-factors/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-factors",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a carrier factor (sets deletedAt timestamp).\n\nThe carrier factor will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        },
        {
          "name": "Get bills payable to a carrier factor",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carrier-factors/:id/bills-for-payment",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-factors",
                ":id",
                "bills-for-payment"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List bills that should be paid to this carrier factor.\n\nReturns bills from carriers that use this factor with status `APPROVED_TO_PAY`.\n"
          }
        }
      ]
    },
    {
      "name": "Carrier Payment Methods",
      "item": [
        {
          "name": "Filter carrier payment methods",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-payment-methods/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-payment-methods",
                "filter"
              ]
            },
            "description": "Query carrier payment methods using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted payment methods are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n\nCarrier payment methods define how and where payments are sent for a specific carrier.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"carrierId\": {\n          \"equalTo\": \"770e8400-e29b-41d4-a716-446655440000\"\n        }\n      },\n      {\n        \"paymentRecipientType\": {\n          \"equalTo\": \"DIRECT\"\n        }\n      },\n      {\n        \"isPreferred\": {\n          \"equalTo\": true\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create carrier payment method",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-payment-methods",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-payment-methods"
              ]
            },
            "description": "Create a new carrier payment method.\n\n**Payment Recipient Type Constraints:**\n- **DIRECT**: Payment goes to carrier directly. `carrierFactorId` must be null or omitted.\n- **FACTOR**: Payment goes to factoring company. `carrierFactorId` is required.\n\n**Important**: The `carrierId` cannot be changed after creation.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"carrierId\": \"770e8400-e29b-41d4-a716-446655440000\",\n  \"paymentRecipientType\": \"DIRECT\",\n  \"paymentMethodType\": \"ACH\",\n  \"status\": \"ACTIVE\",\n  \"isPreferred\": true,\n  \"email\": \"payments@carrier.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"companyName\": \"Carrier Payments LLC\",\n  \"username\": \"carrier_payments\",\n  \"bankName\": \"Chase Bank\",\n  \"bankAddress\": \"123 Bank Street, Dallas, TX 75201\",\n  \"accountName\": \"Carrier Transport Inc\",\n  \"accountNumber\": \"1234567890\",\n  \"abaAch\": \"021000021\",\n  \"wire\": \"026009593\",\n  \"swiftCode\": \"CHASUS33\",\n  \"eftInstitution\": \"001\",\n  \"eftTransit\": \"00010\",\n  \"clabe\": \"012180001234567897\",\n  \"currency\": \"USD\",\n  \"carrierFactorId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440002\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get carrier payment method",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carrier-payment-methods/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-payment-methods",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single carrier payment method by its unique identifier.\n\nReturns full details including banking information and associated carrier/factor references.\n"
          }
        },
        {
          "name": "Update carrier payment method",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/carrier-payment-methods/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-payment-methods",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a carrier payment method. Only provided fields will be updated.\n\n**IMPORTANT**: The `carrierId` field cannot be changed after creation.\n\n**Payment Recipient Type Constraints:**\n- When changing to **DIRECT**: `carrierFactorId` must be set to null\n- When changing to **FACTOR**: `carrierFactorId` is required\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"paymentRecipientType\": \"DIRECT\",\n  \"paymentMethodType\": \"ACH\",\n  \"status\": \"ACTIVE\",\n  \"isPreferred\": true,\n  \"email\": \"payments@carrier.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"companyName\": \"Carrier Payments LLC\",\n  \"username\": \"carrier_payments\",\n  \"bankName\": \"Chase Bank\",\n  \"bankAddress\": \"123 Bank Street, Dallas, TX 75201\",\n  \"accountName\": \"Carrier Transport Inc\",\n  \"accountNumber\": \"1234567890\",\n  \"abaAch\": \"021000021\",\n  \"wire\": \"026009593\",\n  \"swiftCode\": \"CHASUS33\",\n  \"eftInstitution\": \"001\",\n  \"eftTransit\": \"00010\",\n  \"clabe\": \"012180001234567897\",\n  \"currency\": \"USD\",\n  \"carrierFactorId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440002\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete carrier payment method",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/carrier-payment-methods/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "carrier-payment-methods",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a carrier payment method (sets deletedAt timestamp).\n\nThe payment method will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        }
      ]
    },
    {
      "name": "Customer Contacts",
      "item": [
        {
          "name": "Filter customer contacts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customer-contacts/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customer-contacts",
                "filter"
              ]
            },
            "description": "Query customer contacts using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted customer contacts are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"isPrimary\": {\n          \"equalTo\": true\n        }\n      },\n      {\n        \"contactTypes\": {\n          \"includes\": \"BILLING\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create customer contact",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customer-contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customer-contacts"
              ]
            },
            "description": "Create a new customer contact. The contact details are provided inline\nvia contactInfo; no internal identifiers are required or exposed.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerId\": \"550e8400-e29b-41d4-a716-446655440001\",\n  \"name\": \"John Smith\",\n  \"contactInfo\": {\n    \"name\": \"John Smith\",\n    \"email\": \"john.smith@example.com\",\n    \"phoneNumber\": \"+1-555-0100\",\n    \"title\": \"Operations Manager\"\n  },\n  \"phoneExtension\": \"1234\",\n  \"isPrimary\": true,\n  \"contactTypes\": [\n    \"BILLING\",\n    \"ACCOUNT_MANAGER\"\n  ],\n  \"notifications\": [\n    \"SHIPMENT_PICKED_UP\",\n    \"SHIPMENT_DELIVERED\"\n  ],\n  \"key\": \"ERP-CONTACT-JOHN-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get customer contact",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customer-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customer-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single customer contact by its unique identifier"
          }
        },
        {
          "name": "Update customer contact",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customer-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customer-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a customer contact. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n\nWhen updating contactInfo, the underlying Contact record is updated.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"John Smith\",\n  \"contactInfo\": {},\n  \"phoneExtension\": \"1234\",\n  \"isPrimary\": true,\n  \"contactTypes\": [\n    \"BILLING\",\n    \"ACCOUNT_MANAGER\"\n  ],\n  \"notifications\": [\n    \"SHIPMENT_PICKED_UP\",\n    \"SHIPMENT_DELIVERED\"\n  ],\n  \"key\": \"ERP-CONTACT-JOHN-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete customer contact",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customer-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customer-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a customer contact (sets deletedAt timestamp).\n\nThe contact will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        }
      ]
    },
    {
      "name": "Customers",
      "item": [
        {
          "name": "Filter customers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customers/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                "filter"
              ]
            },
            "description": "Filter customers using comprehensive query criteria with AND/OR logic and multiple operators.\nSupports complex filtering similar to GraphQL capabilities.\nNote: Soft-deleted customers are excluded by default (deletedAt defaults to { isNull: true }).\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"status\": {\n          \"equalTo\": \"ACTIVE\"\n        }\n      },\n      {\n        \"industry\": {\n          \"equalTo\": \"MANUFACTURING\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers"
              ]
            },
            "description": "Create a new customer in your organization",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Acme Manufacturing Corp\",\n  \"status\": \"NEW\",\n  \"serviceTier\": \"TIER_1\",\n  \"website\": \"https://acme-manufacturing.com\",\n  \"phoneNumber\": \"+1-555-123-4567\",\n  \"industry\": \"AGRICULTURE_FORESTRY\",\n  \"annualRevenue\": \"_0_TO_500K\",\n  \"annualSpend\": \"_0_TO_25K\",\n  \"spendType\": \"CONTRACT\",\n  \"naics\": \"336411\",\n  \"ein\": \"12-3456789\",\n  \"duns\": \"123456789\",\n  \"leadSource\": \"Referral\",\n  \"dbaName\": \"Acme Corp DBA\",\n  \"numberOfEmployees\": \"_0_TO_1\",\n  \"externalId\": \"EXT-12345\",\n  \"currency\": \"USD\",\n  \"creditLimit\": 50000,\n  \"creditUsageWarning\": 40000,\n  \"freeCreditReq\": 5000,\n  \"defaultMode\": \"FTL\",\n  \"defaultMargin\": 0.15,\n  \"minMargin\": 0.1,\n  \"maxMargin\": 0.25,\n  \"defaultInternalNotes\": \"Contact via email only\",\n  \"defaultCarrierNotes\": \"Call pickup contact before arrival\",\n  \"defaultExternalNotes\": \"Please call 1 hour before delivery\",\n  \"defaultShowNotes\": \"ALL\",\n  \"autoAcceptTender\": false,\n  \"groupId\": \"00000000-0000-0000-0000-000000000000\",\n  \"paymentTerm\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"notes\": \"Prefers email communication\",\n  \"deactivationReason\": \"NOT_PAYING_INVOICE\",\n  \"deactivationNotes\": \"string\",\n  \"deactivationDate\": \"2026-01-01T00:00:00Z\",\n  \"corporateAddress\": {\n    \"line1\": \"123 Main St\",\n    \"line2\": \"Suite 400\",\n    \"city\": \"Chicago\",\n    \"state\": \"IL\",\n    \"zipCode\": \"60601\",\n    \"country\": \"USA\",\n    \"market\": \"CHI\",\n    \"latitude\": \"41.8781\",\n    \"longitude\": \"-87.6298\",\n    \"isAirportOrAirbase\": false,\n    \"isConstructionOrUtilitySite\": false,\n    \"isSmartyValidated\": true,\n    \"obeysDst\": true,\n    \"cityId\": \"00000000-0000-0000-0000-000000000000\"\n  },\n  \"billingAddress\": {\n    \"line1\": \"123 Main St\",\n    \"line2\": \"Suite 400\",\n    \"city\": \"Chicago\",\n    \"state\": \"IL\",\n    \"zipCode\": \"60601\",\n    \"country\": \"USA\",\n    \"market\": \"CHI\",\n    \"latitude\": \"41.8781\",\n    \"longitude\": \"-87.6298\",\n    \"isAirportOrAirbase\": false,\n    \"isConstructionOrUtilitySite\": false,\n    \"isSmartyValidated\": true,\n    \"obeysDst\": true,\n    \"cityId\": \"00000000-0000-0000-0000-000000000000\"\n  },\n  \"qboCustomerId\": \"string\",\n  \"key\": \"ERP-CUSTOMER-12345\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get customer",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a customer by ID or client key"
          }
        },
        {
          "name": "Update customer",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a customer. Only provided fields will be updated.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Acme Manufacturing Corp\",\n  \"status\": \"NEW\",\n  \"serviceTier\": \"TIER_1\",\n  \"website\": \"https://acme-manufacturing.com\",\n  \"phoneNumber\": \"+1-555-123-4567\",\n  \"industry\": \"AGRICULTURE_FORESTRY\",\n  \"annualRevenue\": \"_0_TO_500K\",\n  \"annualSpend\": \"_0_TO_25K\",\n  \"spendType\": \"CONTRACT\",\n  \"naics\": \"336411\",\n  \"ein\": \"12-3456789\",\n  \"duns\": \"123456789\",\n  \"leadSource\": \"Referral\",\n  \"dbaName\": \"Acme Corp DBA\",\n  \"numberOfEmployees\": \"_0_TO_1\",\n  \"externalId\": \"EXT-12345\",\n  \"currency\": \"USD\",\n  \"creditLimit\": 50000,\n  \"creditUsageWarning\": 40000,\n  \"freeCreditReq\": 5000,\n  \"defaultMode\": \"FTL\",\n  \"defaultMargin\": 0.15,\n  \"minMargin\": 0.1,\n  \"maxMargin\": 0.25,\n  \"defaultInternalNotes\": \"Contact via email only\",\n  \"defaultCarrierNotes\": \"Call pickup contact before arrival\",\n  \"defaultExternalNotes\": \"Please call 1 hour before delivery\",\n  \"defaultShowNotes\": \"ALL\",\n  \"autoAcceptTender\": false,\n  \"groupId\": null,\n  \"paymentTerm\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"notes\": \"Prefers email communication\",\n  \"deactivationReason\": \"NOT_PAYING_INVOICE\",\n  \"deactivationNotes\": \"string\",\n  \"deactivationDate\": \"2026-01-01T00:00:00Z\",\n  \"corporateAddress\": {},\n  \"billingAddress\": {},\n  \"qboCustomerId\": \"string\",\n  \"key\": \"ERP-CUSTOMER-12345\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete customer",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a customer (sets deletedAt timestamp)"
          }
        },
        {
          "name": "Search customers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customers/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                "search"
              ]
            },
            "description": "Search customers using OpenSearch-powered full-text and field-specific search.\n\nThis endpoint provides fast, indexed search across customer data with support for:\n- Full-text search across multiple fields\n- Field-specific filtering with various operators\n- Sorting and pagination\n- Saved search preferences\n\n**Note:** Only active (non-deleted) customers are searchable. Soft-deleted records are automatically excluded from all search results.\n\n**Response Formats:**\n- `flat` (default): Returns indexed fields only for faster performance\n- `full`: Returns complete customer objects with all relationships\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"criteria\": {\n    \"id\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"friendlyId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"name\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"dbaName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"status\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"city\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"state\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"location\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"zip\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"country\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"teamId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"teamName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"userIds\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"userNames\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"accountOwnerId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"accountOwnerName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"operatedById\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"operatedByName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryContactName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryContactEmail\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryContactPhone\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"serviceTier\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"yearsInBusiness\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"numberOfEmployees\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"industry\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"sic\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"naics\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"paymentTermName\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"creditLimit\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"outstandingBalance\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"totalRevenue\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"totalTransportationCost\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"totalGrossProfit\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"ordersCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"quotesCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"quotesWon\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"quoteWinRate\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"mostRecentOrderCreationAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"nextFollowUp\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": \"2025-01-01\",\n      \"max\": \"2025-01-31\"\n    },\n    \"lastOutreach\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"quickbooksCustomerId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"tags\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"createdAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"updatedAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    }\n  },\n  \"pagination\": {\n    \"pageNumber\": 1,\n    \"pageSize\": 50\n  },\n  \"sort\": [\n    {\n      \"field\": \"createdAt\",\n      \"order\": \"desc\"\n    }\n  ],\n  \"savedSearch\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"format\": \"flat\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get customer payments",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customers/:id/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id",
                "payments"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                },
                {
                  "key": "pageSize",
                  "value": "0",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List all payments from a specific customer."
          }
        },
        {
          "name": "Get outstanding invoices",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customers/:id/outstanding-invoices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id",
                "outstanding-invoices"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List invoices available for payment from a customer.\n\nReturns invoices with status `AWAITING_PAYMENT` or `PARTIALLY_PAID`.\n"
          }
        }
      ]
    },
    {
      "name": "Locations",
      "item": [
        {
          "name": "Filter locations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/locations/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "locations",
                "filter"
              ]
            },
            "description": "Query locations using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted locations are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"customerId\": {\n          \"equalTo\": \"550e8400-e29b-41d4-a716-446655440000\"\n        }\n      },\n      {\n        \"type\": {\n          \"equalTo\": \"SHIPPER\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a new location",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/locations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "locations"
              ]
            },
            "description": "Create a new location for a customer.\n\nLocations represent pickup or delivery points (warehouses, distribution centers, etc.).\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"address\": {\n    \"line1\": \"123 Main St\",\n    \"city\": \"Chicago\",\n    \"country\": \"USA\"\n  },\n  \"name\": \"ABC Warehouse - Dallas\",\n  \"key\": \"ERP-LOC-DALLAS-01\",\n  \"type\": \"SHIPPER\",\n  \"isAppointmentRequired\": true,\n  \"notes\": \"Call 24 hours ahead for appointment\",\n  \"internalNotes\": \"Use dock door 5 for expedited shipments\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a location by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/locations/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "locations",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single location by its unique identifier.\n"
          }
        },
        {
          "name": "Update a location",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/locations/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "locations",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a location. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"address\": {\n    \"line1\": \"123 Main St\",\n    \"line2\": \"Suite 400\",\n    \"city\": \"Chicago\",\n    \"state\": \"IL\",\n    \"zipCode\": \"60601\",\n    \"country\": \"USA\",\n    \"market\": \"CHI\",\n    \"latitude\": \"41.8781\",\n    \"longitude\": \"-87.6298\",\n    \"isAirportOrAirbase\": false,\n    \"isConstructionOrUtilitySite\": false,\n    \"isSmartyValidated\": true,\n    \"obeysDst\": true,\n    \"cityId\": null\n  },\n  \"name\": \"ABC Warehouse - Dallas\",\n  \"key\": \"ERP-LOC-DALLAS-01\",\n  \"type\": \"SHIPPER\",\n  \"isAppointmentRequired\": true,\n  \"notes\": \"Call 24 hours ahead for appointment\",\n  \"internalNotes\": \"Use dock door 5 for expedited shipments\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a location",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/locations/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "locations",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a location (sets deletedAt timestamp).\n\nThe location will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        },
        {
          "name": "Search locations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/locations/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "locations",
                "search"
              ]
            },
            "description": "Search locations using OpenSearch-powered full-text and field-specific search.\n\nThis endpoint provides fast, indexed search across location data with support for:\n- Full-text search across multiple fields\n- Field-specific filtering with various operators\n- Geographic search capabilities\n- Sorting and pagination\n- Saved search preferences\n\n**Note:** Only active (non-deleted) locations are searchable. Soft-deleted records are automatically excluded from all search results.\n\n**Response Formats:**\n- `flat` (default): Returns indexed fields only for faster performance\n- `full`: Returns complete location objects with all relationships\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"criteria\": {\n    \"id\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"customerId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"customerName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"customerFriendlyId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"type\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"name\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"externalId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"line1\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"line2\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"city\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"state\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"postalCode\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"country\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"market\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"zone\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"phoneNumber\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"appointmentRequired\": {\n      \"operator\": \"TRUE\"\n    },\n    \"stopsCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"createdAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    }\n  },\n  \"pagination\": {\n    \"pageNumber\": 1,\n    \"pageSize\": 50\n  },\n  \"sort\": [\n    {\n      \"field\": \"createdAt\",\n      \"order\": \"desc\"\n    }\n  ],\n  \"savedSearch\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"format\": \"flat\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Location Contacts",
      "item": [
        {
          "name": "Filter location contacts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/location-contacts/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "location-contacts",
                "filter"
              ]
            },
            "description": "Query location contacts using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted location contacts are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"locationId\": {\n          \"equalTo\": \"770e8400-e29b-41d4-a716-446655440000\"\n        }\n      },\n      {\n        \"isPrimary\": {\n          \"equalTo\": true\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a new location contact",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/location-contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "location-contacts"
              ]
            },
            "description": "Link a customer contact to a location with specific contact types/roles.\n\nLocation contacts represent the relationship between a customer contact\nand a specific location, defining what role the contact has at that location.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"locationId\": \"770e8400-e29b-41d4-a716-446655440000\",\n  \"customerContactId\": \"660e8400-e29b-41d4-a716-446655440000\",\n  \"isPrimary\": true,\n  \"contactTypes\": [\n    \"LOCATION_MANAGER\",\n    \"SHIPPING\"\n  ],\n  \"key\": \"ERP-LOC-CONTACT-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a location contact by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/location-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "location-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single location contact by its unique identifier.\n"
          }
        },
        {
          "name": "Update a location contact",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/location-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "location-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a location contact. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"locationId\": \"770e8400-e29b-41d4-a716-446655440000\",\n  \"customerContactId\": \"660e8400-e29b-41d4-a716-446655440000\",\n  \"isPrimary\": true,\n  \"contactTypes\": [\n    \"LOCATION_MANAGER\",\n    \"SHIPPING\"\n  ],\n  \"key\": \"ERP-LOC-CONTACT-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a location contact",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/location-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "location-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a location contact (sets deletedAt timestamp).\n\nThe location contact will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        }
      ]
    },
    {
      "name": "Payment Terms",
      "item": [
        {
          "name": "Filter payment terms",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payment-terms/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-terms",
                "filter"
              ]
            },
            "description": "Filter payment terms using comprehensive query criteria with AND/OR logic and multiple operators.\nSupports complex filtering similar to GraphQL capabilities.\nNote: Soft-deleted payment terms are excluded by default (deletedAt defaults to { isNull: true }).\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"doNotUse\": {\n          \"equalTo\": false\n        }\n      },\n      {\n        \"days\": {\n          \"greaterThan\": 0\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create payment term",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payment-terms",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-terms"
              ]
            },
            "description": "Create a new payment term configuration in your organization",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Net 30\",\n  \"description\": \"Payment due 30 days from invoice date\",\n  \"days\": 30,\n  \"quickPayFee\": 0.05,\n  \"apOnly\": false,\n  \"doNotUse\": false,\n  \"key\": \"ERP-PAYTERM-NET30\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get payment term",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payment-terms/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-terms",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a payment term by ID or client key"
          }
        },
        {
          "name": "Update payment term",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payment-terms/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-terms",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a payment term. Only provided fields will be updated.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Net 30\",\n  \"description\": \"Payment due 30 days from invoice date\",\n  \"days\": 30,\n  \"quickPayFee\": 0.05,\n  \"apOnly\": false,\n  \"doNotUse\": false,\n  \"key\": \"ERP-PAYTERM-NET30\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete payment term",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payment-terms/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-terms",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a payment term (sets deletedAt timestamp)"
          }
        }
      ]
    },
    {
      "name": "Reference Data",
      "item": [
        {
          "name": "List equipment",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/reference-data/equipment",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reference-data",
                "equipment"
              ],
              "query": [
                {
                  "key": "categoryId",
                  "value": "",
                  "description": "Only return equipment in this category",
                  "disabled": true
                },
                {
                  "key": "groupId",
                  "value": "",
                  "description": "Only return equipment in this top-level group",
                  "disabled": true
                },
                {
                  "key": "subcategoryId",
                  "value": "",
                  "description": "Only return equipment in this subcategory",
                  "disabled": true
                }
              ]
            },
            "description": "Read-only catalog of equipment types. The ids are what order and load\n`equipment` arrays reference. The list is system-managed and small —\nfetch it once and cache it, or hardcode the ids your integration uses.\n\nThe catalog is global and organization-independent: every\nauthenticated organization sees the same rows.\n"
          }
        },
        {
          "name": "List charge codes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/reference-data/charge-codes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reference-data",
                "charge-codes"
              ],
              "query": [
                {
                  "key": "code",
                  "value": "LH",
                  "description": "Only return the charge code with this exact accounting code",
                  "disabled": true
                }
              ]
            },
            "description": "Read-only catalog of charge codes. The integer ids are what charge\n`chargeCodeId` fields reference. The list is system-managed — fetch it\nonce and cache it.\n\nThe catalog is global and organization-independent: every\nauthenticated organization sees the same rows.\n"
          }
        },
        {
          "name": "List special requirements",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/reference-data/special-requirements",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reference-data",
                "special-requirements"
              ],
              "query": [
                {
                  "key": "type",
                  "value": "EQUIPMENT",
                  "description": "Only return requirements of this type — One of: EQUIPMENT, DRIVER, FREIGHT, SHIPPER_LOCATION",
                  "disabled": true
                }
              ]
            },
            "description": "Read-only catalog of special requirements (equipment accessories,\ndriver services, freight handling, location constraints). The ids are\nwhat order and load `specialRequirements` arrays reference. Filter by\n`type` to get one category.\n\nThe catalog is global and organization-independent: every\nauthenticated organization sees the same rows.\n"
          }
        }
      ]
    },
    {
      "name": "Teams",
      "item": [
        {
          "name": "Filter teams",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/teams/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "teams",
                "filter"
              ]
            },
            "description": "Filter teams using comprehensive query criteria with AND/OR logic and multiple operators.\nSupports complex filtering similar to GraphQL capabilities.\nNote: Soft-deleted teams are excluded by default (deletedAt defaults to { isNull: true }).\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"name\": {\n      \"includes\": \"Sales\"\n    }\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create team",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/teams",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "teams"
              ]
            },
            "description": "Create a new team in your organization",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Sales Team - West Coast\",\n  \"key\": \"ERP-TEAM-WEST\",\n  \"users\": [\n    {\n      \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n    },\n    {\n      \"key\": \"ERP-USER-12345\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get team",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/teams/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "teams",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a team by ID or client key"
          }
        },
        {
          "name": "Update team",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/teams/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "teams",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a team. Only provided fields will be updated.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Sales Team - West Coast\",\n  \"key\": \"ERP-TEAM-WEST\",\n  \"users\": [\n    {\n      \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n    },\n    {\n      \"key\": \"ERP-USER-12345\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete team",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/teams/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "teams",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a team (sets deletedAt timestamp)"
          }
        }
      ]
    },
    {
      "name": "Users",
      "item": [
        {
          "name": "Filter users",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users",
                "filter"
              ]
            },
            "description": "Filter users using comprehensive query criteria with AND/OR logic and multiple operators.\nSupports complex filtering similar to GraphQL capabilities.\nNote: Soft-deleted users are excluded by default (deletedAt defaults to { isNull: true }).\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"status\": {\n          \"equalTo\": \"ACTIVE\"\n        }\n      },\n      {\n        \"roles\": {\n          \"contains\": \"CUSTOMER_REP\"\n        }\n      },\n      {\n        \"email\": {\n          \"includes\": \"@example.com\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create user",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users"
              ]
            },
            "description": "Create a new user in your organization",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"john.doe@example.com\",\n  \"name\": \"John Doe\",\n  \"phone\": \"+1-555-123-4567\",\n  \"phoneExt\": \"123\",\n  \"status\": \"PENDING\",\n  \"roles\": [\n    \"CUSTOMER_REP\"\n  ],\n  \"key\": \"ERP-USER-12345\",\n  \"datUsername\": \"johndoe_dat\",\n  \"mcpUsername\": \"johndoe_mcp\",\n  \"avatarId\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n  \"teams\": [\n    {\n      \"id\": \"123e4567-e89b-12d3-a456-426614174000\"\n    },\n    {\n      \"key\": \"TEAM-WEST-COAST\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get user",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/users/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a user by ID or client key"
          }
        },
        {
          "name": "Update user",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a user. Only provided fields will be updated.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"john.doe@example.com\",\n  \"name\": \"John Doe\",\n  \"phone\": \"+1-555-123-4567\",\n  \"phoneExt\": \"123\",\n  \"status\": \"PENDING\",\n  \"roles\": [\n    \"CUSTOMER_REP\",\n    \"ADMIN\"\n  ],\n  \"key\": \"ERP-USER-12345\",\n  \"datUsername\": \"johndoe_dat\",\n  \"mcpUsername\": \"johndoe_mcp\",\n  \"avatarId\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n  \"teams\": [\n    {\n      \"id\": \"123e4567-e89b-12d3-a456-426614174000\"\n    },\n    {\n      \"key\": \"TEAM-WEST-COAST\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete user",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/users/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a user (sets deletedAt timestamp)"
          }
        },
        {
          "name": "Search users",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users",
                "search"
              ]
            },
            "description": "Search users using OpenSearch-powered full-text and field-specific search.\n\nThis endpoint provides fast, indexed search across user data with support for:\n- Full-text search across multiple fields\n- Field-specific filtering with various operators\n- Sorting and pagination\n- Saved search preferences\n\n**Note:** Only active (non-deleted) users are searchable. Soft-deleted records are automatically excluded from all search results.\n\n**Response Formats:**\n- `flat` (default): Returns indexed fields only for faster performance\n- `full`: Returns complete user objects with all relationships\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"criteria\": {\n    \"id\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"name\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"email\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"emailVerified\": {\n      \"operator\": \"TRUE\"\n    },\n    \"phone\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"status\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"roles\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"visibility\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"teamIds\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"teamNames\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"customersCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"quotesCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"quotesWon\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"quoteWinRate\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"ordersCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"ordersTotalRevenue\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"ordersTotalTransportationCost\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"ordersTotalGrossProfit\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"averageGrossProfitPerOrder\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"carriersCount\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"createdAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"lastInvitedAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    }\n  },\n  \"pagination\": {\n    \"pageNumber\": 1,\n    \"pageSize\": 50\n  },\n  \"sort\": [\n    {\n      \"field\": \"createdAt\",\n      \"order\": \"desc\"\n    }\n  ],\n  \"savedSearch\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"format\": \"flat\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Vendors",
      "item": [
        {
          "name": "Filter vendors",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendors/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors",
                "filter"
              ]
            },
            "description": "Query vendors using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted vendors are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"status\": {\n          \"equalTo\": \"ACTIVE\"\n        }\n      },\n      {\n        \"currency\": {\n          \"equalTo\": \"USD\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a new vendor",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendors",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors"
              ]
            },
            "description": "Create a new vendor within an organization.\n\nVendors represent service providers (warehousing, storage, etc.) that are not carriers.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"ABC Warehouse Services\",\n  \"key\": \"ERP-VENDOR-ABC-001\",\n  \"email\": \"billing@abcwarehouse.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"status\": \"ACTIVE\",\n  \"notes\": \"Preferred vendor for warehouse services\",\n  \"taxId\": \"12-3456789\",\n  \"currency\": \"ARS\",\n  \"corporateAddress\": {\n    \"line1\": \"123 Main St\",\n    \"line2\": \"Suite 400\",\n    \"city\": \"Chicago\",\n    \"state\": \"IL\",\n    \"zipCode\": \"60601\",\n    \"country\": \"USA\",\n    \"market\": \"CHI\",\n    \"latitude\": \"41.8781\",\n    \"longitude\": \"-87.6298\",\n    \"isAirportOrAirbase\": false,\n    \"isConstructionOrUtilitySite\": false,\n    \"isSmartyValidated\": true,\n    \"obeysDst\": true,\n    \"cityId\": \"00000000-0000-0000-0000-000000000000\"\n  },\n  \"billingAddress\": {\n    \"line1\": \"123 Main St\",\n    \"line2\": \"Suite 400\",\n    \"city\": \"Chicago\",\n    \"state\": \"IL\",\n    \"zipCode\": \"60601\",\n    \"country\": \"USA\",\n    \"market\": \"CHI\",\n    \"latitude\": \"41.8781\",\n    \"longitude\": \"-87.6298\",\n    \"isAirportOrAirbase\": false,\n    \"isConstructionOrUtilitySite\": false,\n    \"isSmartyValidated\": true,\n    \"obeysDst\": true,\n    \"cityId\": \"00000000-0000-0000-0000-000000000000\"\n  },\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440001\",\n  \"isMvmnt\": false,\n  \"requiredDocuments\": [\n    \"W9\",\n    \"INSURANCE_CERTIFICATE\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a vendor by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendors/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single vendor by its unique identifier.\n"
          }
        },
        {
          "name": "Update a vendor",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendors/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a vendor. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"ABC Warehouse Services\",\n  \"key\": \"ERP-VENDOR-ABC-001\",\n  \"email\": \"billing@abcwarehouse.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"status\": \"ACTIVE\",\n  \"notes\": \"Preferred vendor for warehouse services\",\n  \"taxId\": \"12-3456789\",\n  \"currency\": \"ARS\",\n  \"corporateAddress\": {\n    \"line1\": \"123 Main St\",\n    \"city\": \"Chicago\",\n    \"country\": \"USA\"\n  },\n  \"billingAddress\": {\n    \"line1\": \"123 Main St\",\n    \"city\": \"Chicago\",\n    \"country\": \"USA\"\n  },\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440001\",\n  \"isMvmnt\": false,\n  \"requiredDocuments\": [\n    \"W9\",\n    \"INSURANCE_CERTIFICATE\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a vendor",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendors/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a vendor (sets deletedAt timestamp).\n\nThe vendor will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        },
        {
          "name": "Search vendors",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendors/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors",
                "search"
              ]
            },
            "description": "Search vendors using OpenSearch-powered full-text and field-specific search.\n\nThis endpoint provides fast, indexed search across vendor data with support for:\n- Full-text search across multiple fields\n- Field-specific filtering with various operators\n- Sorting and pagination\n- Saved search preferences\n\n**Note:** Only active (non-deleted) vendors are searchable. Soft-deleted records are automatically excluded from all search results.\n\n**Response Formats:**\n- `flat` (default): Returns indexed fields only for faster performance\n- `full`: Returns complete vendor objects with all relationships\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"criteria\": {\n    \"id\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"friendlyId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"name\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"status\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"service\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"taxId\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"location\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"city\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"state\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"zip\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"country\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"primaryContactName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryContactEmail\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryContactPhone\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"paymentTermName\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"quickbooksVendorId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"numberOfTimesUsed\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": 10,\n      \"max\": 100\n    },\n    \"lastUsed\": {\n      \"operator\": \"BETWEEN\",\n      \"min\": \"2025-01-01\",\n      \"max\": \"2025-01-31\"\n    },\n    \"createdAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    }\n  },\n  \"pagination\": {\n    \"pageNumber\": 1,\n    \"pageSize\": 50\n  },\n  \"sort\": [\n    {\n      \"field\": \"createdAt\",\n      \"order\": \"desc\"\n    }\n  ],\n  \"savedSearch\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"format\": \"flat\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get vendor outstanding bills",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendors/:id/outstanding-bills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors",
                ":id",
                "outstanding-bills"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List outstanding (unpaid) bills for a vendor.\n\nReturns bills with status `APPROVED_TO_PAY`.\n"
          }
        },
        {
          "name": "Get vendor bills available for payment",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendors/:id/bills-for-payment",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendors",
                ":id",
                "bills-for-payment"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List bills available for payment from a vendor.\n\nReturns bills with status `APPROVED_TO_PAY` and open balance.\n"
          }
        }
      ]
    },
    {
      "name": "Vendor Contacts",
      "item": [
        {
          "name": "Filter vendor contacts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendor-contacts/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-contacts",
                "filter"
              ]
            },
            "description": "Query vendor contacts using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted contacts are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"roles\": {\n          \"includes\": \"BILLING\"\n        }\n      },\n      {\n        \"vendorId\": {\n          \"equalTo\": \"550e8400-e29b-41d4-a716-446655440001\"\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a new vendor contact",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendor-contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-contacts"
              ]
            },
            "description": "Create a new contact for a vendor.\n\nContacts represent individuals at the vendor who can be reached for various purposes.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"vendorId\": \"550e8400-e29b-41d4-a716-446655440001\",\n  \"name\": \"John Smith\",\n  \"email\": \"john.smith@abcwarehouse.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"role\": \"Billing Manager\",\n  \"roles\": [\n    \"BILLING\",\n    \"AGENT\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a vendor contact by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendor-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single vendor contact by its unique identifier.\n"
          }
        },
        {
          "name": "Update a vendor contact",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendor-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a vendor contact. Only provided fields will be updated.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"john.smith@abcwarehouse.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"role\": \"Billing Manager\",\n  \"roles\": [\n    \"BILLING\",\n    \"AGENT\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a vendor contact",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendor-contacts/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-contacts",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a vendor contact (sets deletedAt timestamp).\n\nThe contact will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        }
      ]
    },
    {
      "name": "Vendor Payment Methods",
      "item": [
        {
          "name": "Filter vendor payment methods",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendor-payment-methods/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-payment-methods",
                "filter"
              ]
            },
            "description": "Query vendor payment methods using flexible filter criteria with AND/OR logic.\n\nBy default, only non-deleted payment methods are returned (deletedAt: { isNull: true }).\nOverride this by explicitly setting deletedAt filter criteria.\n\nVendor payment methods define how and where payments are sent for a specific vendor.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"and\": [\n      {\n        \"vendorId\": {\n          \"equalTo\": \"770e8400-e29b-41d4-a716-446655440000\"\n        }\n      },\n      {\n        \"isPreferred\": {\n          \"equalTo\": true\n        }\n      }\n    ]\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create vendor payment method",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendor-payment-methods",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-payment-methods"
              ]
            },
            "description": "Create a new vendor payment method.\n\n**Important**: The `vendorId` cannot be changed after creation.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"vendorId\": \"770e8400-e29b-41d4-a716-446655440000\",\n  \"paymentMethodType\": \"ACH\",\n  \"status\": \"ACTIVE\",\n  \"isPreferred\": true,\n  \"email\": \"payments@vendor.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"companyName\": \"Vendor Payments LLC\",\n  \"username\": \"vendor_payments\",\n  \"bankName\": \"Chase Bank\",\n  \"bankAddress\": \"123 Bank Street, Dallas, TX 75201\",\n  \"accountName\": \"Vendor Services Inc\",\n  \"accountNumber\": \"1234567890\",\n  \"abaAch\": \"021000021\",\n  \"wire\": \"026009593\",\n  \"swiftCode\": \"CHASUS33\",\n  \"eftInstitution\": \"001\",\n  \"eftTransit\": \"00010\",\n  \"clabe\": \"012180001234567897\",\n  \"currency\": \"USD\",\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440002\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get vendor payment method",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendor-payment-methods/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-payment-methods",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a single vendor payment method by its unique identifier.\n\nReturns full details including banking information and associated vendor references.\n"
          }
        },
        {
          "name": "Update vendor payment method",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/vendor-payment-methods/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-payment-methods",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Partially update a vendor payment method. Only provided fields will be updated.\n\n**IMPORTANT**: The `vendorId` field cannot be changed after creation.\n\n- **Omitted fields**: Not modified (current value preserved)\n- **Provided fields**: Updated to the new value\n- **Null values**: Clear the field (set to null) where applicable\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"paymentMethodType\": \"ACH\",\n  \"status\": \"ACTIVE\",\n  \"isPreferred\": true,\n  \"email\": \"payments@vendor.com\",\n  \"phone\": \"+1-555-123-4567\",\n  \"companyName\": \"Vendor Payments LLC\",\n  \"username\": \"vendor_payments\",\n  \"bankName\": \"Chase Bank\",\n  \"bankAddress\": \"123 Bank Street, Dallas, TX 75201\",\n  \"accountName\": \"Vendor Services Inc\",\n  \"accountNumber\": \"1234567890\",\n  \"abaAch\": \"021000021\",\n  \"wire\": \"026009593\",\n  \"swiftCode\": \"CHASUS33\",\n  \"eftInstitution\": \"001\",\n  \"eftTransit\": \"00010\",\n  \"clabe\": \"012180001234567897\",\n  \"currency\": \"USD\",\n  \"paymentTermId\": \"550e8400-e29b-41d4-a716-446655440002\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete vendor payment method",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/vendor-payment-methods/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "vendor-payment-methods",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a vendor payment method (sets deletedAt timestamp).\n\nThe payment method will no longer appear in default queries but can be retrieved\nby explicitly filtering for deleted records.\n"
          }
        }
      ]
    },
    {
      "name": "Saved Searches",
      "item": [
        {
          "name": "Filter saved searches",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/saved-searches/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "saved-searches",
                "filter"
              ]
            },
            "description": "Filter saved searches using comprehensive query criteria with AND/OR logic and multiple operators.\nSupports complex filtering similar to GraphQL capabilities.\nReturns only saved searches accessible to the authenticated user (either owned by them or public).\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"preferenceType\": {\n      \"equalTo\": \"SHIPMENT\"\n    },\n    \"isPublic\": {\n      \"equalTo\": true\n    }\n  },\n  \"pageSize\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create saved search",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/saved-searches",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "saved-searches"
              ]
            },
            "description": "Create a new saved search configuration in your organization.\nThe saved search can be used to quickly apply predefined search criteria, sorting, and display preferences.\n\nThe saved search will be owned by the authenticated user unless otherwise specified.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Active Shipments - West Coast\",\n  \"preferenceType\": \"SHIPMENT\",\n  \"jsonValue\": {\n    \"searchCriteria\": {\n      \"filters\": [\n        {\n          \"field\": \"status\",\n          \"searchCriteria\": {\n            \"operator\": \"ONE_OF\",\n            \"values\": [\n              \"ACTIVE\",\n              \"PENDING\"\n            ]\n          }\n        }\n      ]\n    },\n    \"sorting\": [\n      {\n        \"id\": \"createdAt\",\n        \"desc\": true\n      }\n    ]\n  },\n  \"isPublic\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get saved search",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/saved-searches/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "saved-searches",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Saved search UUID"
                }
              ]
            },
            "description": "Retrieve a saved search by ID.\nYou can only retrieve saved searches that you own or that are public in your organization.\n"
          }
        },
        {
          "name": "Update saved search",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/saved-searches/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "saved-searches",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Saved search UUID"
                }
              ]
            },
            "description": "Partially update a saved search. Only provided fields will be updated.\nYou can only update saved searches that you own.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Updated Shipments View\",\n  \"isPublic\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete saved search",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/saved-searches/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "saved-searches",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Saved search UUID"
                }
              ]
            },
            "description": "Permanently delete a saved search.\nYou can only delete saved searches that you own.\n"
          }
        }
      ]
    },
    {
      "name": "Shipments",
      "item": [
        {
          "name": "Get tracking link",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/shipments/track",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                "track"
              ]
            },
            "description": "Search for shipments by reference field values (BOL #, PRO #, MAWB #, etc.)\nand return tracking information.\n\n## Usage\n\n1. Provide an array of search queries in the `searches` field\n2. Optionally filter which reference field types to search using `referenceFields`\n3. Results are returned in the same order as input searches\n4. If no match is found, the result contains only the original `query` (other fields are null)\n\n## Matching Behavior\n\n- Searches are case-insensitive\n- If multiple shipments match a query, the most recently created shipment is returned\n- If `referenceFields` is omitted, all reference field types are searched\n\n## Example Use Cases\n\n- **Customer portal**: Look up shipment status by BOL or PRO number\n- **EDI integration**: Validate shipment references before sending updates\n- **Bulk status check**: Query multiple shipments in a single request\n\n## Rate Limits\n\n- Maximum 100 searches per request\n- Standard API rate limits apply (see Rate Limiting documentation)\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"searches\": [\n    {\n      \"query\": \"MAWB123456\"\n    },\n    {\n      \"query\": \"BOL789\"\n    }\n  ],\n  \"referenceFields\": [\n    \"MASTER_AIRWAYBILL_NUMBER\",\n    \"BOL_NUMBER\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Search shipments",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/shipments/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                "search"
              ]
            },
            "description": "Search shipments using OpenSearch-powered full-text and field-specific search.\n\nThis endpoint provides fast, indexed search across shipment data with support for:\n- Full-text search across multiple fields (references, locations, parties)\n- Field-specific filtering with various operators\n- Sorting and pagination\n- Saved search preferences\n\n**Note:** Only active (non-deleted) shipments are searchable. Soft-deleted records are\nautomatically excluded from all search results.\n\n**Response Formats:**\n- `flat` (default): Returns indexed fields only for faster performance\n- `full`: Returns complete shipment objects with all relationships\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"criteria\": {\n    \"id\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"friendlyId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"status\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"orderStatus\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"loadStatuses\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"mode\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"tonu\": {\n      \"operator\": \"TRUE\"\n    },\n    \"pickUp\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"pickUpCity\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"pickUpState\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"pickUpZipCode\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"pickUpCountry\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"dropOff\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"dropOffCity\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"dropOffState\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"dropOffZipCode\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"dropOffCountry\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"pickUpStartDatetime\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"dropOffStartDatetime\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"bookedAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"shipperId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"shipperName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"carrierIds\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"carrierNames\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"primaryRepId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"primaryRepName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"bookingRepIds\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"bookingRepNames\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"groupId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"groupName\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"equipmentType\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"weight\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"totalMiles\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"revenue\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"cost\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"profit\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"profitMargin\": {\n      \"operator\": \"GREATER_THAN\",\n      \"value\": 1000.5\n    },\n    \"referenceValues\": {\n      \"operator\": \"INCLUDES\",\n      \"values\": [\n        \"search term\"\n      ]\n    },\n    \"customerRef\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"bol\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"po\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"quoteId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"quoteFriendlyId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"arInvoiceId\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"arInvoiceFriendlyId\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"apInvoiceIds\": {\n      \"operator\": \"EQUALS\",\n      \"values\": [\n        \"550e8400-e29b-41d4-a716-446655440000\"\n      ]\n    },\n    \"apInvoiceFriendlyIds\": {\n      \"operator\": \"ONE_OF\",\n      \"values\": [\n        \"ACTIVE\",\n        \"PENDING\"\n      ]\n    },\n    \"createdAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    },\n    \"orderCreatedAt\": {\n      \"operator\": \"AFTER\",\n      \"value\": \"2025-01-01T00:00:00Z\"\n    }\n  },\n  \"pagination\": {\n    \"pageNumber\": 1,\n    \"pageSize\": 50\n  },\n  \"sort\": [\n    {\n      \"field\": \"createdAt\",\n      \"order\": \"desc\"\n    }\n  ],\n  \"savedSearch\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"format\": \"flat\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Filter shipments",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/shipments/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                "filter"
              ]
            },
            "description": "Search for shipments using filter criteria.\n\nEach row in the response carries the fully nested shipment payload\n(orders with stops, freight, references, charges; loads with\ncarriers). With a large `pageSize`, responses can be sizable — use a\nsmaller page size if you only need scalar fields.\n\n## Common Filters\n\n- Active shipments: `{ \"filter\": { \"status\": { \"notIn\": [\"DELIVERED\", \"CANCELED\"] } } }`\n- Delivered today: `{ \"filter\": { \"deliveredAt\": { \"greaterThanOrEqualTo\": \"2025-01-15T00:00:00Z\" } } }`\n- By customer: `{ \"filter\": { \"customerId\": { \"equalTo\": \"uuid\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"key\": {},\n    \"status\": {},\n    \"customerId\": {},\n    \"customerRepId\": {},\n    \"createdAt\": {},\n    \"updatedAt\": {},\n    \"deliveredAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a shipment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/shipments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments"
              ]
            },
            "description": "Create a new shipment with orders, loads, and services.\n\n## Required fields\n\n- `customer`: Reference to the customer\n- `orders`: At least one order with stops and mode\n\n## What gets created\n\n- Shipment record\n- Order(s) with stops, freight, and charges\n- Optionally: Load(s) and Service(s)\n\n## Relationship to Quotes\n\nIf you have a Quote, use `POST /quotes/{id}/convert-to-shipment` instead.\nDirect shipment creation is for cases without a quote.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customer\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"customerRep\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"orders\": [\n    {\n      \"mode\": \"FTL\",\n      \"stops\": [\n        {\n          \"type\": \"PICKUP\"\n        }\n      ]\n    }\n  ],\n  \"loads\": [\n    {}\n  ],\n  \"services\": [\n    {\n      \"vendor\": {\n        \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n      }\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a shipment",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a shipment by ID or key.\n\nThe response includes embedded orders, loads, and services.\nThe internal ShipmentDetail layer is hidden - all data is flattened.\n"
          }
        },
        {
          "name": "Update a shipment",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update shipment fields.\n\n**Note:** To update orders, loads, or services, use their respective endpoints:\n- Orders: Updates happen via order-specific endpoints\n- Loads: PATCH /loads/{id}\n- Services: PATCH /services/{id}\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customer\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"customerRep\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a shipment",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a shipment.\n\nThe shipment and all associated orders, loads, and services are marked as deleted.\n"
          }
        },
        {
          "name": "Cancel a shipment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id",
                "cancel"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Cancel a shipment.\n\n## What happens\n\n- Shipment status is set to CANCELED\n- All orders are canceled\n- All loads are canceled\n- All services are canceled\n\n## Prerequisites\n\n- Shipment must not already be delivered or canceled\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Un-cancel a shipment",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id/uncancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id",
                "uncancel"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Reactivate a canceled shipment.\n\n## What happens\n\n- Shipment status is restored to previous state\n- Orders, loads, and services are reactivated\n\n## Prerequisites\n\n- Shipment must be in CANCELED status\n"
          }
        },
        {
          "name": "Duplicate a shipment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id/duplicate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id",
                "duplicate"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Create a copy of an existing shipment.\n\n## What gets duplicated\n\n- Customer and customer rep\n- Order(s) with stops, freight, and references\n- Equipment and special requirements\n\n## What is NOT duplicated\n\n- Loads and carriers\n- Services\n- Documents\n- Status history\n\n## New shipment\n\nThe duplicate is created in DRAFT status with new dates if provided.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pickUpDate\": \"2026-01-01\",\n  \"deliveryDate\": \"2026-01-01\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Mark shipment ready to invoice",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id/ready-to-invoice",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id",
                "ready-to-invoice"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Mark a shipment as ready for invoicing.\n\n## What happens\n\n- Shipment billing status changes to READY_TO_INVOICE\n- Shipment is now visible in invoice generation workflows\n\n## Prerequisites\n\n- Shipment must have delivery documents attached\n- Shipment must be in DOCS_NEEDED or NOT_READY_TO_INVOICE status\n"
          }
        },
        {
          "name": "Revert shipment to not ready",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id/not-ready-to-invoice",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id",
                "not-ready-to-invoice"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Revert a shipment from ready-to-invoice back to not ready.\n\n## What happens\n\n- Shipment billing status changes back to NOT_READY_TO_INVOICE\n\n## Prerequisites\n\n- Shipment must be in READY_TO_INVOICE status\n- Shipment must not already be invoiced\n"
          }
        },
        {
          "name": "Generate invoice for shipment",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/shipments/:id/invoice/generate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "shipments",
                ":id",
                "invoice",
                "generate"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Generate an invoice PDF for the shipment.\n\n## What happens\n\n- Invoice PDF is generated\n- Invoice document is attached to the shipment\n- Shipment billing status changes to INVOICED\n\n## Prerequisites\n\n- Shipment must be in READY_TO_INVOICE status\n"
          }
        }
      ]
    },
    {
      "name": "Documents",
      "item": [
        {
          "name": "Filter documents",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/documents/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "filter"
              ]
            },
            "description": "Search for documents using filter criteria.\n\n## Usage\n\nDocuments are typically associated with other entities (orders, loads, services).\nUse filters to find documents by type, status, or date range.\n\n## Example Filters\n\n- Find all invoices: `{ \"filter\": { \"type\": { \"equalTo\": \"INVOICE\" } } }`\n- Find uploaded documents: `{ \"filter\": { \"status\": { \"equalTo\": \"UPLOADED\" } } }`\n- Find documents created today: `{ \"filter\": { \"createdAt\": { \"greaterThanOrEqualTo\": \"2025-01-15T00:00:00Z\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"entityType\": \"ORDER\",\n    \"entityId\": \"00000000-0000-0000-0000-000000000000\",\n    \"id\": {},\n    \"type\": {},\n    \"status\": {},\n    \"fileName\": {},\n    \"contentType\": {},\n    \"extension\": {},\n    \"createdAt\": {},\n    \"updatedAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a document",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/documents",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents"
              ]
            },
            "description": "Create a new document record and receive a pre-signed URL for uploading the file.\n\n## Workflow\n\n1. Call this endpoint with document metadata (type, fileName, contentType)\n2. Receive the created document with an `uploadUrl`\n3. Upload the file directly to S3 using the `uploadUrl` (PUT request)\n4. Document status changes from `PENDING_UPLOAD` to `UPLOADED` automatically\n\n## Upload Instructions\n\nThe `uploadUrl` is a pre-signed S3 URL. Upload your file with:\n\n```bash\ncurl -X PUT -H \"Content-Type: application/pdf\" \\\n  --data-binary @your-file.pdf \\\n  \"https://s3.amazonaws.com/bucket/key?signature=...\"\n```\n\n**Important:**\n- The `uploadUrl` expires after 15 minutes\n- Use the exact `contentType` specified in the request\n- Maximum file size: 100MB\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"key\": \"doc-inv-2025-001\",\n  \"type\": \"INVOICE\",\n  \"fileName\": \"invoice-2025-001.pdf\",\n  \"contentType\": \"application/pdf\",\n  \"fileSize\": 102400,\n  \"tags\": {\n    \"invoiceNumber\": \"INV-2025-001\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a document",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/documents/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a document by ID or key.\n\nReturns the document metadata including a fresh `downloadUrl` if the file is uploaded.\n\n**Note:** The `downloadUrl` is a pre-signed S3 URL that expires after 1 hour.\nEach GET request generates a fresh URL.\n"
          }
        },
        {
          "name": "Update a document",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/documents/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update document metadata.\n\n**Note:** File content cannot be changed after upload.\nTo replace a file, create a new document.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"key\": \"string\",\n  \"type\": \"INVOICE\",\n  \"fileName\": \"string\",\n  \"tags\": {}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a document",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/documents/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a document.\n\nThe document record is marked as deleted but not permanently removed.\nAssociated files in S3 may be cleaned up asynchronously.\n"
          }
        }
      ]
    },
    {
      "name": "Quotes",
      "item": [
        {
          "name": "Filter quotes",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quotes/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quotes",
                "filter"
              ]
            },
            "description": "Search for quotes using filter criteria.\n\n## Common Filters\n\n- Active quotes: `{ \"filter\": { \"status\": { \"in\": [\"DRAFT\", \"REQUESTED\", \"QUOTED\"] } } }`\n- Won quotes: `{ \"filter\": { \"status\": { \"equalTo\": \"WON\" } } }`\n- By customer: `{ \"filter\": { \"customerId\": { \"equalTo\": \"uuid\" } } }`\n- Expiring soon: `{ \"filter\": { \"expiresAt\": { \"lessThanOrEqualTo\": \"2025-01-20T00:00:00Z\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"status\": {},\n    \"side\": {},\n    \"customerId\": {},\n    \"carrierId\": {},\n    \"assigneeId\": {},\n    \"amount\": {},\n    \"expiresAt\": {},\n    \"createdAt\": {},\n    \"updatedAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a quote",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quotes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quotes"
              ]
            },
            "description": "Create a new quote with order details.\n\n## How it works\n\nCreating a quote also creates an associated Order containing the route and freight details.\nThe Order is embedded in the Quote and cannot be managed separately.\n\n## Required fields\n\n- `customer`: Reference to the customer (shipper profile)\n- `order`: Order details including stops and mode\n\n## Example workflow\n\n1. Create quote with customer and order details\n2. Add pricing (amount) via PATCH\n3. Send to customer (status changes to QUOTED)\n4. Convert to shipment when accepted (POST /quotes/{id}/convert-to-shipment)\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customer\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"carrier\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"order\": {\n    \"mode\": \"FTL\",\n    \"stops\": [\n      {\n        \"type\": \"PICKUP\"\n      }\n    ],\n    \"freight\": {},\n    \"equipment\": [\n      {\n        \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n      }\n    ],\n    \"references\": [\n      {\n        \"type\": \"string\",\n        \"value\": \"string\"\n      }\n    ],\n    \"specialRequirements\": [\n      {\n        \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n      }\n    ]\n  },\n  \"amount\": 0,\n  \"expiresAt\": \"2026-01-01T00:00:00Z\",\n  \"assignee\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a quote",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/quotes/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quotes",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a quote by ID or key.\n\nThe response includes embedded order details (route, freight, equipment).\n"
          }
        },
        {
          "name": "Update a quote",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quotes/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quotes",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update quote fields including status changes.\n\n## Status changes\n\nStatus changes use this endpoint (not separate action endpoints):\n- Set to QUOTED: `{ \"status\": \"QUOTED\", \"amount\": 2500 }`\n- Set to WON: `{ \"status\": \"WON\" }`\n- Set to LOST: `{ \"status\": \"LOST\", \"lostReason\": \"TOO_HIGH\" }`\n\n## Validation rules\n\n- When setting `status` to `LOST`, `lostReason` is required\n- When `lostReason` is `OTHER`, `lostReasonText` is required\n\n## Note\n\nTo convert a won quote to a shipment, use POST /quotes/{id}/convert-to-shipment\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"CREATED\",\n  \"amount\": 0,\n  \"target\": 0,\n  \"expiresAt\": \"2026-01-01T00:00:00Z\",\n  \"lostReason\": \"EXPIRED\",\n  \"lostReasonText\": \"string\",\n  \"assignee\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a quote",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/quotes/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quotes",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a quote.\n\nThe quote record is marked as deleted but not permanently removed.\nAssociated orders are also soft deleted.\n"
          }
        },
        {
          "name": "Convert quote to shipment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quotes/:id/convert-to-shipment",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quotes",
                ":id",
                "convert-to-shipment"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Convert an accepted quote into a shipment.\n\n## What happens\n\n1. Quote status is set to WON (if not already)\n2. A new Shipment is created\n3. The Order from the quote is linked to the shipment\n4. Optionally, additional orders can be added\n\n## Prerequisites\n\n- Quote must be in QUOTED or WON status\n- Quote cannot already have a shipment\n\n## Response\n\nReturns the IDs of both the quote and the newly created shipment.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"additionalOrders\": [\n    {\n      \"mode\": \"FTL\",\n      \"stops\": [\n        {\n          \"type\": \"PICKUP\"\n        }\n      ]\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Loads",
      "item": [
        {
          "name": "Filter loads",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/loads/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                "filter"
              ]
            },
            "description": "Search for loads using filter criteria.\n\nEach row carries the fully nested load payload (stops with addresses,\ncarriers with charges). With a large `pageSize`, responses can be\nsizable.\n\n## Common Filters\n\n- By shipment: `{ \"filter\": { \"shipmentId\": { \"equalTo\": \"uuid\" } } }`\n- Active loads: `{ \"filter\": { \"status\": { \"notIn\": [\"COMPLETE\", \"CANCELED\"] } } }`\n- FTL loads: `{ \"filter\": { \"mode\": { \"equalTo\": \"FTL\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"shipmentId\": {},\n    \"status\": {},\n    \"mode\": {},\n    \"createdAt\": {},\n    \"deliveredAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Add an additional load",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/loads",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads"
              ]
            },
            "description": "Add an additional load to an **existing shipment**. This endpoint\nrequires a shipment — it cannot create one. Creating a shipment\nalready creates its first load structure; use this endpoint only for\nmulti-load scenarios (extra legs, split moves).\n\n## What happens\n\n- Load is created for the specified shipment\n- Optionally assigns an initial carrier\n\nTo book a carrier on a load afterwards, use the load-carrier\nendpoints — that is the primary booking flow.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"shipmentId\": \"00000000-0000-0000-0000-000000000000\",\n  \"load\": {\n    \"mode\": \"FTL\",\n    \"orderStopIds\": [\n      \"00000000-0000-0000-0000-000000000000\"\n    ],\n    \"carrier\": {\n      \"carrier\": {\n        \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n      }\n    }\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a load",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/loads/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a load by ID.\n\nThe response includes embedded carriers and stops.\n"
          }
        },
        {
          "name": "Update a load",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/loads/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update load fields.\n\n**Note:** To manage carriers, use the carrier-specific endpoints.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mode\": \"FTL\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a load",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/loads/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a load.\n\n## Prerequisites\n\n- Load must not have any active carriers\n"
          }
        },
        {
          "name": "Add carrier to load",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/loads/:id/add-carrier",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":id",
                "add-carrier"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Add an additional carrier to a load.\n\n## Use cases\n\n- Split loads (multiple carriers for same load)\n- Adding backup carrier\n- Re-assigning after TONU/bounce\n\n## What happens\n\n- New LoadCarrier record is created\n- Carrier is notified (if configured)\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"carrier\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"contact\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"charges\": [\n    {\n      \"chargeCode\": {\n        \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n      },\n      \"amount\": 0\n    }\n  ],\n  \"driverName\": \"string\",\n  \"driverPhone\": \"string\",\n  \"truckNumber\": \"string\",\n  \"trailerNumber\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Rebook a TONU load",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/loads/:id/rebook",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":id",
                "rebook"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Create a new load to replace a TONU'd load.\n\n## Use case\n\nAfter a carrier reports TONU, use this to create a replacement load\nthat can be assigned to a new carrier.\n\n## What happens\n\n- New Load is created with same stops\n- Original load remains in TONU status\n- New load is ready for carrier assignment\n"
          }
        },
        {
          "name": "Get load carrier",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/loads/:loadId/carriers/:carrierId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":loadId",
                "carriers",
                ":carrierId"
              ],
              "variable": [
                {
                  "key": "loadId",
                  "value": "",
                  "description": "Load ID"
                },
                {
                  "key": "carrierId",
                  "value": "",
                  "description": "LoadCarrier ID"
                }
              ]
            },
            "description": "Retrieve a specific carrier assignment for a load."
          }
        },
        {
          "name": "Update load carrier",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/loads/:loadId/carriers/:carrierId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":loadId",
                "carriers",
                ":carrierId"
              ],
              "variable": [
                {
                  "key": "loadId",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "carrierId",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Update carrier assignment details.\n\nUse this to update driver info, truck/trailer numbers, or contact.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contact\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"driverName\": \"string\",\n  \"driverPhone\": \"string\",\n  \"truckNumber\": \"string\",\n  \"trailerNumber\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Bounce carrier",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/loads/:loadId/carriers/:carrierId/bounce",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":loadId",
                "carriers",
                ":carrierId",
                "bounce"
              ],
              "variable": [
                {
                  "key": "loadId",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "carrierId",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Mark carrier as bounced (rejected load without payment).\n\n## What happens\n\n- LoadCarrier status changes to BOUNCED\n- Carrier is removed from active execution\n- No payment is recorded\n\n## When to use\n\nUse bounce when carrier rejects the load before dispatch,\nor fails to show up without prior notice.\n\nFor carriers who were dispatched but cancelled, use TONU instead.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"CAN_NO_LONGER_TAKE_LOAD\",\n  \"reasonText\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Report TONU",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/loads/:loadId/carriers/:carrierId/tonu",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "loads",
                ":loadId",
                "carriers",
                ":carrierId",
                "tonu"
              ],
              "variable": [
                {
                  "key": "loadId",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "carrierId",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Report Truck Ordered Not Used (TONU).\n\n## What happens\n\n- LoadCarrier status changes to TONU\n- TONU costs are recorded if provided\n- Optionally creates a replacement load\n\n## When to use\n\nUse TONU when:\n- Carrier was dispatched but load was cancelled\n- Carrier arrived but freight wasn't ready\n- Carrier was turned away at shipper\n\nTONU typically involves some payment to the carrier.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"string\",\n  \"costs\": [\n    {\n      \"chargeCode\": {\n        \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n      },\n      \"amount\": 0\n    }\n  ],\n  \"createReplacementLoad\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Services",
      "item": [
        {
          "name": "Filter services",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/services/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "services",
                "filter"
              ]
            },
            "description": "Search for services using filter criteria.\n\n## Common Filters\n\n- By shipment: `{ \"filter\": { \"shipmentId\": { \"equalTo\": \"uuid\" } } }`\n- By vendor: `{ \"filter\": { \"vendorId\": { \"equalTo\": \"uuid\" } } }`\n- Awaiting invoice: `{ \"filter\": { \"status\": { \"equalTo\": \"AWAITING_INVOICE\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"shipmentId\": {},\n    \"vendorId\": {},\n    \"status\": {},\n    \"scheduledDate\": {},\n    \"completedDate\": {},\n    \"createdAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a service",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/services",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "services"
              ]
            },
            "description": "Create a new service for a shipment.\n\n## What happens\n\n- Service is created for the specified shipment\n- Vendor is associated with the service\n- Charges are recorded\n\n## Note\n\nServices are typically created as part of shipment creation.\nUse this endpoint to add additional services to an existing shipment.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"shipmentId\": \"00000000-0000-0000-0000-000000000000\",\n  \"service\": {\n    \"vendor\": {\n      \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n    },\n    \"vendorContact\": {\n      \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n    },\n    \"description\": \"string\",\n    \"charges\": [\n      {\n        \"chargeCode\": {\n          \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n        },\n        \"amount\": 0\n      }\n    ],\n    \"scheduledDate\": \"2026-01-01\",\n    \"referenceNumber\": \"string\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a service",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/services/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "services",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a service by ID.\n\nThe response includes vendor info and charges.\n"
          }
        },
        {
          "name": "Update a service",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/services/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "services",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update service fields.\n\n**Note:** Status changes happen automatically based on billing workflow.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"vendorContact\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"description\": \"string\",\n  \"scheduledDate\": \"2026-01-01\",\n  \"completedDate\": \"2026-01-01\",\n  \"referenceNumber\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a service",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/services/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "services",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Soft delete a service.\n\n## Prerequisites\n\n- Service must not be paid\n"
          }
        }
      ]
    },
    {
      "name": "Invoices",
      "item": [
        {
          "name": "Filter invoices",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/invoices/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                "filter"
              ]
            },
            "description": "Search for AR invoices using filter criteria.\n\n## Common Filters\n\n- By customer: `{ \"filter\": { \"customerId\": { \"equalTo\": \"uuid\" } } }`\n- Unpaid: `{ \"filter\": { \"status\": { \"in\": [\"AWAITING_PAYMENT\", \"PARTIALLY_PAID\"] } } }`\n- Overdue: `{ \"filter\": { \"overdue\": true } }`\n- By shipment: `{ \"filter\": { \"shipmentId\": { \"equalTo\": \"uuid\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"orderId\": {},\n    \"shipmentId\": {},\n    \"customerId\": {},\n    \"status\": {},\n    \"invoiceDate\": {},\n    \"dueDate\": {},\n    \"amount\": {},\n    \"amountOwed\": {},\n    \"overdue\": false,\n    \"factored\": false,\n    \"createdAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create an invoice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/invoices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices"
              ]
            },
            "description": "Create a new invoice for an order.\n\n## What happens\n\n- Invoice record is created for the order\n- Order status updates to `DELIVERED_UNPAID`\n- Due date calculated from payment term if not provided\n\n## Note\n\nEach shipment can have only one AR invoice. Use `POST /shipments/{id}/invoice/generate`\nto generate the invoice PDF document.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"orderId\": \"00000000-0000-0000-0000-000000000000\",\n  \"invoiceDate\": \"2026-01-01\",\n  \"dueDate\": \"2026-01-01\",\n  \"amount\": 0,\n  \"reference\": \"string\",\n  \"currency\": \"string\",\n  \"paymentTermId\": \"00000000-0000-0000-0000-000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get an invoice",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/invoices/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve an invoice by ID.\n\nThe response includes payments, credits, and document info.\n"
          }
        },
        {
          "name": "Update an invoice",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/invoices/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update invoice fields.\n\n**Note:** Amount cannot be changed directly. Update order charges instead.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"dueDate\": \"2026-01-01\",\n  \"reference\": \"string\",\n  \"paymentTermId\": \"00000000-0000-0000-0000-000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Void an invoice",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/invoices/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Void/cancel an invoice.\n\n## Prerequisites\n\n- Invoice must not have any payments applied\n- Invoice must not be factored\n"
          }
        },
        {
          "name": "Mark invoice as awaiting payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/invoices/:id/mark-awaiting",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                ":id",
                "mark-awaiting"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Mark invoice as awaiting payment.\n\n## What happens\n\n- Sets invoice date and due date\n- Updates order status to `DELIVERED_UNPAID`\n- Invoice is now ready for payment collection\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"invoiceDate\": \"2026-01-01\",\n  \"dueDate\": \"2026-01-01\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Email invoice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/invoices/:id/send",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                ":id",
                "send"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Send invoice to customer via email.\n\n## What happens\n\n- Generates invoice PDF if not already generated\n- Sends email with PDF attachment\n- Logs email in activity feed\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"toEmails\": [\n    \"user@example.com\"\n  ],\n  \"ccEmails\": [\n    \"user@example.com\"\n  ],\n  \"subject\": \"string\",\n  \"message\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get invoice payments",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/invoices/:id/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                ":id",
                "payments"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List all payments applied to a specific invoice."
          }
        },
        {
          "name": "Batch generate invoices",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/invoices/batch-generate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                "batch-generate"
              ]
            },
            "description": "Generate invoices for multiple shipments in a single request.\n\n## What happens\n\n- Creates invoice records for each shipment\n- Generates PDF documents\n- Optionally sends emails grouped by customer\n\n## Note\n\nShipments that already have invoices or are missing requirements\nwill be skipped and returned in the `failed` array.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"orderIds\": [\n    \"00000000-0000-0000-0000-000000000000\"\n  ],\n  \"sendEmail\": false,\n  \"emailConfig\": {\n    \"ccEmails\": [\n      \"user@example.com\"\n    ],\n    \"groupByCustomer\": false\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get aging report",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/invoices/aging-report",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                "aging-report"
              ],
              "query": [
                {
                  "key": "customerId",
                  "value": "",
                  "description": "Filter by specific customer",
                  "disabled": true
                },
                {
                  "key": "daysPerBucket",
                  "value": "0",
                  "description": "Days per aging bucket",
                  "disabled": true
                },
                {
                  "key": "maxDays",
                  "value": "0",
                  "description": "Maximum days to track",
                  "disabled": true
                }
              ]
            },
            "description": "Generate accounts receivable aging report.\n\n## Report buckets\n\nBy default: Current, 1-30, 31-60, 61-90, 90+ days\n\n## Export formats\n\n- JSON (default)\n- CSV (set Accept header to text/csv)\n"
          }
        },
        {
          "name": "Get available credits for invoice",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/invoices/:id/available-credits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "invoices",
                ":id",
                "available-credits"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List credit memos that can be applied to an invoice.\n\nReturns credits for the same customer with remaining balance\nand matching currency.\n"
          }
        }
      ]
    },
    {
      "name": "Payments",
      "item": [
        {
          "name": "Filter payments",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payments/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payments",
                "filter"
              ]
            },
            "description": "Search for AR payments using filter criteria.\n\n## Common Filters\n\n- By customer: `{ \"filter\": { \"customerId\": { \"equalTo\": \"uuid\" } } }`\n- By invoice: `{ \"filter\": { \"invoiceId\": { \"equalTo\": \"uuid\" } } }`\n- By date range: `{ \"filter\": { \"paymentDate\": { \"greaterThanOrEqualTo\": \"2025-01-01\" } } }`\n- By method: `{ \"filter\": { \"paymentMethodType\": { \"equalTo\": \"check\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"customerId\": {},\n    \"invoiceId\": {},\n    \"shipmentId\": {},\n    \"paymentDate\": {},\n    \"paymentMethodType\": {},\n    \"totalAmount\": {},\n    \"reference\": {},\n    \"createdAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payments"
              ]
            },
            "description": "Record a customer payment applied to invoices.\n\n## What happens\n\n- Payment record is created\n- Specified amounts are applied to invoices\n- Invoice/order status updated to `PAID` when fully paid\n- Overpayment creates a credit memo automatically\n\n## Validations\n\n- Payment date must be >= invoice date for all applied invoices\n- Application amounts must not exceed invoice open balances\n- Customer must match invoice customer\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\n  \"paymentDate\": \"2026-01-01\",\n  \"paymentMethodType\": \"ACH_WIRE\",\n  \"reference\": \"string\",\n  \"notes\": \"string\",\n  \"applications\": [\n    {\n      \"invoiceId\": \"00000000-0000-0000-0000-000000000000\",\n      \"amount\": 0\n    }\n  ],\n  \"creditApplications\": [\n    {\n      \"creditMemoId\": \"00000000-0000-0000-0000-000000000000\",\n      \"amount\": 0\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a payment",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a payment by ID.\n\nThe response includes all invoice applications and credit applications.\n"
          }
        },
        {
          "name": "Update a payment",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update payment details or reassign invoice applications.\n\n## What happens\n\n- Payment fields are updated\n- Invoice applications are replaced if provided\n- Order statuses are recalculated\n\n## Note\n\nUpdating applications replaces all existing applications.\nInclude all desired applications in the request.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"paymentDate\": \"2026-01-01\",\n  \"paymentMethodType\": \"ACH_WIRE\",\n  \"reference\": \"string\",\n  \"notes\": \"string\",\n  \"applications\": [\n    {\n      \"invoiceId\": \"00000000-0000-0000-0000-000000000000\",\n      \"amount\": 0\n    }\n  ],\n  \"creditApplications\": [\n    {\n      \"creditMemoId\": \"00000000-0000-0000-0000-000000000000\",\n      \"amount\": 0\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a payment",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Delete a payment and remove all invoice applications.\n\n## What happens\n\n- Payment record is deleted\n- Invoice applications are removed\n- Order statuses revert if needed (PAID → UNPAID)\n\n## Note\n\nThis action cannot be undone. Consider voiding instead\nif you need to maintain a record.\n"
          }
        },
        {
          "name": "Get payment applications",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payments/:id/applications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payments",
                ":id",
                "applications"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List all invoice applications for a payment."
          }
        }
      ]
    },
    {
      "name": "Credit Memos",
      "item": [
        {
          "name": "Filter credit memos",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/credit-memos/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos",
                "filter"
              ]
            },
            "description": "Search for credit memos using filter criteria.\n\n## Common Filters\n\n- By customer: `{ \"filter\": { \"customerId\": { \"equalTo\": \"uuid\" } } }`\n- With balance: `{ \"filter\": { \"hasRemainingBalance\": true } }`\n- Open credits: `{ \"filter\": { \"status\": { \"in\": [\"OPEN\", \"PARTIALLY_APPLIED\"] } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"customerId\": {},\n    \"status\": {},\n    \"memoDate\": {},\n    \"amount\": {},\n    \"remainingBalance\": {},\n    \"hasRemainingBalance\": false,\n    \"sourcePaymentGroupId\": {},\n    \"createdAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a credit memo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/credit-memos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos"
              ]
            },
            "description": "Create a new credit memo for a customer.\n\n## Use cases\n\n- Customer refunds\n- Service adjustments\n- Promotional credits\n- Manual corrections\n\n## Note\n\nCredit memos from overpayments are created automatically\nwhen a payment exceeds invoice totals.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerId\": \"00000000-0000-0000-0000-000000000000\",\n  \"amount\": 0,\n  \"currency\": \"string\",\n  \"memoDate\": \"2026-01-01\",\n  \"reference\": \"string\",\n  \"notes\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a credit memo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/credit-memos/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a credit memo by ID.\n\nThe response includes all applications showing how the credit has been used.\n"
          }
        },
        {
          "name": "Update a credit memo",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/credit-memos/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update credit memo fields.\n\n## Constraints\n\n- Amount cannot be changed if any applications exist\n- Customer cannot be changed once created\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reference\": \"string\",\n  \"notes\": \"string\",\n  \"memoDate\": \"2026-01-01\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Void a credit memo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/credit-memos/:id/void",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos",
                ":id",
                "void"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Void/cancel a credit memo.\n\n## Prerequisites\n\n- Credit memo must have no applications (full balance remaining)\n- Must unapply all applications before voiding\n\n## What happens\n\n- Credit memo status changes to VOIDED\n- Credit is no longer available for application\n- QBO sync will delete the credit memo\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Apply credit to invoice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/credit-memos/:id/apply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos",
                ":id",
                "apply"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Apply credit memo amount to an invoice.\n\n## What happens\n\n- Creates credit application record\n- Reduces credit memo remaining balance\n- Reduces invoice open balance\n- Updates order status if invoice is fully paid\n\n## Constraints\n\n- Amount must not exceed remaining balance\n- Invoice must belong to same customer\n- Invoice must have outstanding balance\n- Currency must match\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"invoiceId\": \"00000000-0000-0000-0000-000000000000\",\n  \"amount\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get credit applications",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/credit-memos/:id/applications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos",
                ":id",
                "applications"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List all invoice applications for a credit memo."
          }
        },
        {
          "name": "Unapply credit from invoice",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/credit-memos/:creditMemoId/applications/:applicationId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "credit-memos",
                ":creditMemoId",
                "applications",
                ":applicationId"
              ],
              "variable": [
                {
                  "key": "creditMemoId",
                  "value": "",
                  "description": "Credit memo ID"
                },
                {
                  "key": "applicationId",
                  "value": "",
                  "description": "Application ID"
                }
              ]
            },
            "description": "Remove a credit application from an invoice.\n\n## What happens\n\n- Application record is deleted\n- Credit memo remaining balance increases\n- Invoice open balance increases\n- Order status may revert if invoice becomes unpaid\n"
          }
        }
      ]
    },
    {
      "name": "Bills",
      "item": [
        {
          "name": "Filter bills",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bills/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                "filter"
              ]
            },
            "description": "Search for AP bills using filter criteria.\n\n## Common Filters\n\n- By carrier: `{ \"filter\": { \"carrierId\": { \"equalTo\": \"uuid\" } } }`\n- By vendor: `{ \"filter\": { \"vendorId\": { \"equalTo\": \"uuid\" } } }`\n- Awaiting approval: `{ \"filter\": { \"status\": { \"equalTo\": \"IN_REVIEW\" } } }`\n- By shipment: `{ \"filter\": { \"shipmentId\": { \"equalTo\": \"uuid\" } } }`\n- Overdue: `{ \"filter\": { \"overdue\": true } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"loadCarrierId\": {},\n    \"vendedServiceId\": {},\n    \"carrierId\": {},\n    \"vendorId\": {},\n    \"loadId\": {},\n    \"shipmentId\": {},\n    \"status\": {},\n    \"entityType\": {},\n    \"invoiceDate\": {},\n    \"dueDate\": {},\n    \"amount\": {},\n    \"overdue\": false,\n    \"createdAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Record a bill",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills"
              ]
            },
            "description": "Record a carrier or vendor bill (invoice).\n\n## What happens\n\n- Bill record is created for the load carrier or vended service\n- Entity status updates to `IN_REVIEW`\n- Due date calculated from payment term if not provided\n\n## Prerequisites\n\n- LoadCarrier or VendedService must exist\n- Entity must be in `AWAITING_INVOICE` status\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"entityType\": \"CARRIER\",\n  \"entityId\": \"00000000-0000-0000-0000-000000000000\",\n  \"invoiceDate\": \"2026-01-01\",\n  \"dueDate\": \"2026-01-01\",\n  \"amount\": 0,\n  \"reference\": \"string\",\n  \"currency\": \"string\",\n  \"paymentTermId\": \"00000000-0000-0000-0000-000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a bill",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bills/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a bill by ID.\n\nThe response includes payments applied and carrier/vendor details.\n"
          }
        },
        {
          "name": "Update a bill",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bills/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update bill fields.\n\n## Constraints\n\n- Cannot change amount if payments have been applied\n- Status changes use action endpoints\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"invoiceDate\": \"2026-01-01\",\n  \"dueDate\": \"2026-01-01\",\n  \"amount\": 0,\n  \"reference\": \"string\",\n  \"paymentTermId\": \"00000000-0000-0000-0000-000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a bill",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bills/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Delete a bill.\n\n## Prerequisites\n\n- Bill must not have any payments applied\n\n## What happens\n\n- Bill record is deleted\n- Entity status reverts to `AWAITING_INVOICE`\n"
          }
        },
        {
          "name": "Approve bill for payment",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bills/:id/approve",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                ":id",
                "approve"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Approve a bill for payment.\n\n## What happens\n\n- Bill status changes to `APPROVED_TO_PAY`\n- Bill is now ready for payment\n\n## Prerequisites\n\n- Bill must be in `IN_REVIEW` status\n"
          }
        },
        {
          "name": "Batch approve bills",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bills/batch-approve",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                "batch-approve"
              ]
            },
            "description": "Approve multiple bills for payment in a single request.\n\nBills that cannot be approved will be returned in the `failed` array.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"billIds\": [\n    \"00000000-0000-0000-0000-000000000000\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Unapprove bill",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bills/:id/unapprove",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                ":id",
                "unapprove"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Revert bill from approved back to in review.\n\n## What happens\n\n- Bill status changes to `IN_REVIEW`\n\n## Prerequisites\n\n- Bill must be in `APPROVED_TO_PAY` status\n- Bill must not have any payments\n"
          }
        },
        {
          "name": "Revert bill to awaiting invoice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bills/:id/revert",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                ":id",
                "revert"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Revert bill completely back to awaiting invoice state.\n\n## What happens\n\n- Bill record is deleted\n- Any payments are deleted\n- Entity status reverts to `AWAITING_INVOICE`\n\n## Use case\n\nUse when a bill was recorded incorrectly and needs to start over.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get bill payments",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bills/:id/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                ":id",
                "payments"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List all payments applied to a specific bill."
          }
        },
        {
          "name": "Get AP aging report",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bills/aging-report",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bills",
                "aging-report"
              ],
              "query": [
                {
                  "key": "carrierId",
                  "value": "",
                  "description": "Filter by specific carrier",
                  "disabled": true
                },
                {
                  "key": "vendorId",
                  "value": "",
                  "description": "Filter by specific vendor",
                  "disabled": true
                },
                {
                  "key": "entityType",
                  "value": "CARRIER",
                  "description": "Filter by entity type — One of: CARRIER, VENDOR",
                  "disabled": true
                },
                {
                  "key": "daysPerBucket",
                  "value": "0",
                  "description": "Days per aging bucket",
                  "disabled": true
                },
                {
                  "key": "maxDays",
                  "value": "0",
                  "description": "Maximum days to track",
                  "disabled": true
                }
              ]
            },
            "description": "Generate accounts payable aging report.\n\n## Report buckets\n\nBy default: Current, 1-30, 31-60, 61-90, 90+ days\n\n## Export formats\n\n- JSON (default)\n- CSV (set Accept header to text/csv)\n"
          }
        }
      ]
    },
    {
      "name": "Bill Payments",
      "item": [
        {
          "name": "Filter bill payments",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bill-payments/filter",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments",
                "filter"
              ]
            },
            "description": "Search for bill payments using filter criteria.\n\n## Common Filters\n\n- By carrier: `{ \"filter\": { \"carrierId\": { \"equalTo\": \"uuid\" } } }`\n- By vendor: `{ \"filter\": { \"vendorId\": { \"equalTo\": \"uuid\" } } }`\n- By factor: `{ \"filter\": { \"carrierFactorId\": { \"equalTo\": \"uuid\" } } }`\n- By date range: `{ \"filter\": { \"paymentDate\": { \"gte\": \"2025-01-01\", \"lte\": \"2025-01-31\" } } }`\n- By method: `{ \"filter\": { \"paymentMethodType\": { \"equalTo\": \"check\" } } }`\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filter\": {\n    \"id\": {},\n    \"carrierId\": {},\n    \"vendorId\": {},\n    \"carrierFactorId\": {},\n    \"recipientType\": {},\n    \"paymentMethodType\": {},\n    \"paymentDate\": {},\n    \"totalAmount\": {},\n    \"reference\": {},\n    \"createdAt\": {},\n    \"and\": [\n      {}\n    ],\n    \"or\": [\n      {}\n    ],\n    \"not\": {}\n  },\n  \"pageSize\": 0,\n  \"cursor\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a bill payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bill-payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments"
              ]
            },
            "description": "Record a payment for one or more carrier/vendor bills.\n\n## What happens\n\n- PaymentGroup record is created\n- Payment applications are created for each bill\n- Bill open balances are reduced\n- Load/service status updates to PAID when fully paid\n\n## Carrier factor payments\n\nTo pay a carrier's factor instead of the carrier directly,\nspecify `carrierFactorId` in the request.\n\n## Overpayments\n\nIf `allowOverpayment` is true and payment exceeds bill totals,\na credit memo is automatically created for the difference.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"paymentDate\": \"2026-01-01\",\n  \"paymentMethodType\": \"ACH_WIRE\",\n  \"carrierFactorId\": \"00000000-0000-0000-0000-000000000000\",\n  \"reference\": \"string\",\n  \"notes\": \"string\",\n  \"applications\": [\n    {\n      \"billId\": \"00000000-0000-0000-0000-000000000000\",\n      \"amount\": 0\n    }\n  ],\n  \"allowOverpayment\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get a bill payment",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bill-payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Retrieve a bill payment by ID.\n\nThe response includes all payment applications and their associated bills.\n"
          }
        },
        {
          "name": "Update a bill payment",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bill-payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Update bill payment fields.\n\n## Constraints\n\n- Cannot change carrier factor after creation\n- Can add/remove/update payment applications\n\n## Updating applications\n\nIn the `applications` array:\n- Include `id` to update an existing application\n- Omit `id` and include `billId` to add a new application\n- Set `delete: true` with `id` to remove an application\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"paymentDate\": \"2026-01-01\",\n  \"paymentMethodType\": \"ACH_WIRE\",\n  \"reference\": \"string\",\n  \"notes\": \"string\",\n  \"applications\": [\n    {}\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a bill payment",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bill-payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments",
                ":id"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Delete a bill payment and all its applications.\n\n## What happens\n\n- PaymentGroup record is deleted\n- All Payment applications are deleted\n- Bill open balances are restored\n- Load/service status may revert if payment made them PAID\n"
          }
        },
        {
          "name": "Get bill payment applications",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bill-payments/:id/applications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments",
                ":id",
                "applications"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "List all bills paid by this payment group."
          }
        },
        {
          "name": "Generate remittance advice",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/bill-payments/:id/remittance-advice",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments",
                ":id",
                "remittance-advice"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Generate a remittance advice document for a bill payment.\n\n## Formats\n\n- PDF (default): Set Accept header to application/pdf\n- JSON: Set Accept header to application/json\n"
          }
        },
        {
          "name": "Send remittance advice email",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/bill-payments/:id/send-remittance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "bill-payments",
                ":id",
                "send-remittance"
              ],
              "query": [
                {
                  "key": "by",
                  "value": "id",
                  "description": "Specify lookup type for faster retrieval.\nIf omitted, defaults to looking up by ID first, then falls back to client key if not found.\nUse `by=key` when you know you're providing a client key for best performance. — One of: id, key",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Resource ID (UUID) or client key"
                }
              ]
            },
            "description": "Email the remittance advice to the carrier or vendor.\n\nUses the recipient's default email from their profile.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"toEmail\": \"user@example.com\",\n  \"ccEmails\": [\n    \"user@example.com\"\n  ],\n  \"message\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Search",
      "item": [
        {
          "name": "Search globally",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/global-search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "global-search"
              ]
            },
            "description": "Search across multiple entity types simultaneously (shipments, customers, carriers, users, vendors).\n\n**Use Cases:**\n- Unified search bar for finding any type of record\n- Quick lookup by name, ID, or reference number\n- Cross-entity discovery\n\n**Search Behavior:**\n- Searches across default searchable fields for each entity type\n- Results are sorted by object type priority: SHIPMENT → CUSTOMER → CARRIER → USER → VENDOR\n- Within each object type, results are sorted by most recently updated\n\n**Prefix Filtering:**\nUse \"type:query\" syntax to search specific object types:\n- `carrier:acme` - searches only carriers\n- `shipment:12345` - searches only shipments\n- `customer:west` - searches only customers\n\n**IMPORTANT: Eventually Consistent**\nThis endpoint queries OpenSearch indices which are updated asynchronously.\nChanges typically appear within 2 seconds, but this is not guaranteed.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"query\": \"acme corp\",\n  \"objects\": [\n    \"SHIPMENT\",\n    \"CUSTOMER\"\n  ],\n  \"pagination\": {\n    \"pageNumber\": 1,\n    \"pageSize\": 50\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    }
  ]
}