{
  "item": [
    {
      "id": "f02dcfc1-c5b0-4030-aec7-43e6c2cd1a6e",
      "name": "Contacts",
      "description": {
        "content": "Customers, vendors and subcontractors, with their addresses, notes and tags.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "2efca745-f144-4cda-a893-cf877867b2c7",
          "name": "List contacts",
          "request": {
            "name": "List contacts",
            "description": {
              "content": "Returns a cursor-paginated list of contacts for the authenticated tenant.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "type",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "1fefc85b-c39b-4c37-a93f-1d7e2e8c68b0",
              "name": "Contacts page",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7949,\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"companyName\": \"string\",\n      \"email\": \"LRxu@xa.vyic\",\n      \"phone\": \"string\",\n      \"type\": \"string\",\n      \"createdAt\": \"1964-08-01T12:42:41.753Z\",\n      \"updatedAt\": \"1976-06-23T07:15:47.052Z\"\n    },\n    {\n      \"id\": 866,\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"companyName\": \"string\",\n      \"email\": \"3G3MvMCG@hCYjjNYHDg.sd\",\n      \"phone\": \"string\",\n      \"type\": \"string\",\n      \"createdAt\": \"1947-05-07T10:48:07.917Z\",\n      \"updatedAt\": \"1965-10-20T13:38:56.608Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 2015\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "24922532-e659-4ee6-8c8f-ffb129f35e37",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "36bd6aba-0521-4807-9d5c-a888426da088",
          "name": "Create contact",
          "request": {
            "name": "Create contact",
            "description": {
              "content": "Creates a new contact.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"<string>\",\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"companyName\": \"<string>\",\n  \"position\": \"<string,null>\",\n  \"parentContactId\": \"<integer,null>\",\n  \"email\": \"<string,null-email>\",\n  \"phone\": \"<string,null>\",\n  \"mobile\": \"<string,null>\",\n  \"website\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "bcf4a20a-bcaa-45fa-8c9d-e174f96f4b29",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"<string>\",\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"companyName\": \"<string>\",\n  \"position\": \"<string,null>\",\n  \"parentContactId\": \"<integer,null>\",\n  \"email\": \"<string,null-email>\",\n  \"phone\": \"<string,null>\",\n  \"mobile\": \"<string,null>\",\n  \"website\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 327,\n    \"firstName\": \"string\",\n    \"lastName\": \"string\",\n    \"companyName\": \"string\",\n    \"email\": \"j8-Rsrqz6QP@AHEWcBnDhCYNUqmVmCpbv.xe\",\n    \"phone\": \"string\",\n    \"type\": \"string\",\n    \"createdAt\": \"2010-10-13T01:42:51.398Z\",\n    \"updatedAt\": \"1960-11-14T14:05:30.038Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4018\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "08a0502b-c353-413e-81dd-8cf97c640373",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"<string>\",\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"companyName\": \"<string>\",\n  \"position\": \"<string,null>\",\n  \"parentContactId\": \"<integer,null>\",\n  \"email\": \"<string,null-email>\",\n  \"phone\": \"<string,null>\",\n  \"mobile\": \"<string,null>\",\n  \"website\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8a48d017-764a-497c-8bcb-88378216c14f",
          "name": "Bulk-fetch contacts by ID",
          "request": {
            "name": "Bulk-fetch contacts by ID",
            "description": {
              "content": "Fetch up to 50 contacts by ID in a single round-trip. Returns rows for IDs that exist in the tenant — IDs that don't exist (or belong to another tenant) are silently omitted. Compare `meta.requested` to `meta.returned` to detect missing.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                "get-many"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "eeec843c-188e-4e06-892d-d5fdeecdbbf2",
              "name": "Contacts",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7917,\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"companyName\": \"string\",\n      \"email\": \"2Ms5sDJrWre9@SLZSMkZ.tcv\",\n      \"phone\": \"string\",\n      \"type\": \"string\",\n      \"createdAt\": \"1983-01-08T17:14:18.558Z\",\n      \"updatedAt\": \"1954-01-23T02:18:13.750Z\"\n    },\n    {\n      \"id\": 9902,\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"companyName\": \"string\",\n      \"email\": \"XEP844Q@JozSTtI.ys\",\n      \"phone\": \"string\",\n      \"type\": \"string\",\n      \"createdAt\": \"1991-09-02T11:03:07.588Z\",\n      \"updatedAt\": \"1993-11-26T02:33:56.046Z\"\n    }\n  ],\n  \"meta\": {\n    \"requested\": 3807,\n    \"returned\": 9939,\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"has_more\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"count\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0fe64687-ca85-4197-8f64-9f754ddc4563",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "68e7066f-ec25-4cd2-b7ce-595d4e06581d",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2a184058-4794-4046-815f-4514d0eaf890",
          "name": "Count contacts",
          "request": {
            "name": "Count contacts",
            "description": {
              "content": "Returns the total number of contacts in the tenant matching the optional `search`, `type`, `dateFrom`/`dateTo` filters. Mirrors the same filters as `GET /contacts` minus pagination — use this when you only need cardinality and don't want to walk every page.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "type",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "70a782d5-95fb-4cc3-97bc-8c14dcb2d5e7",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c8aa3975-bd33-4f71-979c-98db6bed56cd",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d4126740-05e9-43b4-a2ee-eab8800a6a6c",
          "name": "Aggregate contact totals and breakdown by type",
          "request": {
            "name": "Aggregate contact totals and breakdown by type",
            "description": {
              "content": "Returns the total contact count plus a breakdown by type (customer / vendor / subcontractor / ...). Date filter applies to createdAt and is inclusive on both bounds. Use this instead of contacts list + walk-and-count when you only need roll-ups.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "c54c98e9-3f03-483e-873b-f3ea252a2670",
              "name": "Contact summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"totals\": {\n      \"count\": 465\n    },\n    \"by_type\": [\n      {\n        \"type\": \"string\",\n        \"count\": 1437\n      },\n      {\n        \"type\": \"string\",\n        \"count\": 8078\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7494\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "91689a64-aa55-4b6c-99a8-4a84ff4c56ec",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2c64bffa-bebb-4150-a55c-75a3b9c72988",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0a7a0d84-0630-4e1d-ae68-2b873fe580fd",
          "name": "Get contact by id",
          "request": {
            "name": "Get contact by id",
            "description": {
              "content": "Returns a single contact.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "0728d043-7c66-48f8-9ff2-d615bf2c4c40",
              "name": "Contact",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 327,\n    \"firstName\": \"string\",\n    \"lastName\": \"string\",\n    \"companyName\": \"string\",\n    \"email\": \"j8-Rsrqz6QP@AHEWcBnDhCYNUqmVmCpbv.xe\",\n    \"phone\": \"string\",\n    \"type\": \"string\",\n    \"createdAt\": \"2010-10-13T01:42:51.398Z\",\n    \"updatedAt\": \"1960-11-14T14:05:30.038Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4018\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b3c24de4-a6a4-457c-abb7-c4aaf11be48d",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f3325251-e1af-451d-aa4c-b8c6b3e5fcfd",
          "name": "Update contact",
          "request": {
            "name": "Update contact",
            "description": {
              "content": "Partially updates a contact.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"companyName\": \"<string>\",\n  \"position\": \"<string,null>\",\n  \"parentContactId\": \"<integer,null>\",\n  \"email\": \"<string,null-email>\",\n  \"phone\": \"<string,null>\",\n  \"mobile\": \"<string,null>\",\n  \"website\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"type\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "88bfa8e6-f9a5-42f9-a142-66f012ad7eee",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"companyName\": \"<string>\",\n  \"position\": \"<string,null>\",\n  \"parentContactId\": \"<integer,null>\",\n  \"email\": \"<string,null-email>\",\n  \"phone\": \"<string,null>\",\n  \"mobile\": \"<string,null>\",\n  \"website\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"type\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 327,\n    \"firstName\": \"string\",\n    \"lastName\": \"string\",\n    \"companyName\": \"string\",\n    \"email\": \"j8-Rsrqz6QP@AHEWcBnDhCYNUqmVmCpbv.xe\",\n    \"phone\": \"string\",\n    \"type\": \"string\",\n    \"createdAt\": \"2010-10-13T01:42:51.398Z\",\n    \"updatedAt\": \"1960-11-14T14:05:30.038Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4018\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "685e08ec-ad37-45d8-a8ee-a0ca57eb0c32",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"companyName\": \"<string>\",\n  \"position\": \"<string,null>\",\n  \"parentContactId\": \"<integer,null>\",\n  \"email\": \"<string,null-email>\",\n  \"phone\": \"<string,null>\",\n  \"mobile\": \"<string,null>\",\n  \"website\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"type\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "79ab586f-12d7-4e70-b3fb-66aa92bc9f00",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"companyName\": \"<string>\",\n  \"position\": \"<string,null>\",\n  \"parentContactId\": \"<integer,null>\",\n  \"email\": \"<string,null-email>\",\n  \"phone\": \"<string,null>\",\n  \"mobile\": \"<string,null>\",\n  \"website\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"type\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7f76a8f4-2deb-4fe0-a047-654b17c0e15c",
          "name": "Delete contact",
          "request": {
            "name": "Delete contact",
            "description": {
              "content": "Soft-deletes a contact.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "9a3d1c82-827c-4416-a4e6-01f0589b7683",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "1522295b-5138-4030-9592-0a25712b6b80",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b86f4aab-f906-43c5-9bc4-711ca8a6277e",
          "name": "Start CSV export of contacts",
          "request": {
            "name": "Start CSV export of contacts",
            "description": {
              "content": "Enqueues a CSV export job for contacts. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f47674c2-a264-4d28-ac81-0302a60bf6e3",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5c8381df-1aa0-4905-b12c-59821b872dae",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "626751a9-f7d6-40ef-8a1f-1e7e4452146a",
          "name": "Start CSV import of contacts",
          "request": {
            "name": "Start CSV import of contacts",
            "description": {
              "content": "Enqueues a CSV import job. sourcePath must be an opaque upload path returned by POST /jobs/uploads.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                "imports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "bcc639cb-7077-4a4f-a7be-4be208cc4139",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "811f0c6c-c089-42f2-8192-9a5104546aa4",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0f5368e5-30e8-4a4d-b4dd-de908a5325f1",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2b29cd2b-3a85-48f0-ae0e-44aaba81aff5",
          "name": "Start bulk operation on contacts",
          "request": {
            "name": "Start bulk operation on contacts",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 contact ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "contacts",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b5a3f826-58db-407b-adff-b973f1422d1d",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5f829e2e-6bdf-450e-8147-9ae84649357a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8244af8e-f99a-42fd-a75a-a3822a2c2c75",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "contacts",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "1672dab4-da44-470d-99e0-5262b1ef3634",
      "name": "Leads",
      "description": {
        "content": "Sales pipeline records and their movement through stages.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "b32adc1a-ecd8-4ea9-921d-78db8f6aacf4",
          "name": "Aggregate lead totals and breakdowns by stage and source",
          "request": {
            "name": "Aggregate lead totals and breakdowns by stage and source",
            "description": {
              "content": "Returns flat totals (count, estimated_value_total) plus a breakdown by pipeline stage (with stage name joined from lead_stages) and a breakdown by source. Null source becomes its own bucket. Money values are decimal strings. Date filter applies to createdAt.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "assignedTo",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "stageId",
                  "value": "<integer>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "cce19c91-9bbc-4a6a-9c2f-eb0bd5841795",
              "name": "Lead summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer>"
                    },
                    {
                      "key": "stageId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"totals\": {\n      \"count\": 4153,\n      \"estimated_value_total\": \"string\"\n    },\n    \"by_stage\": [\n      {\n        \"stageId\": 8569,\n        \"stageName\": \"string\",\n        \"count\": 9552,\n        \"estimated_value_total\": \"string\"\n      },\n      {\n        \"stageId\": 7530,\n        \"stageName\": \"string\",\n        \"count\": 2100,\n        \"estimated_value_total\": \"string\"\n      }\n    ],\n    \"by_source\": [\n      {\n        \"source\": \"string\",\n        \"count\": 886,\n        \"estimated_value_total\": \"string\"\n      },\n      {\n        \"source\": \"string\",\n        \"count\": 6983,\n        \"estimated_value_total\": \"string\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 5412\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f965b464-8a87-4ae1-b367-9fb0ec8f90d8",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer>"
                    },
                    {
                      "key": "stageId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f76506bd-4dc1-4211-bc55-03aef43c012d",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer>"
                    },
                    {
                      "key": "stageId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a1aa6864-b944-44ce-94a1-a9bbca696f10",
          "name": "Count leads",
          "request": {
            "name": "Count leads",
            "description": {
              "content": "Returns the total number of leads in the tenant matching the optional `search`, `stageId`, `assignedTo`, `dateFrom`/`dateTo`, `updatedFrom` filters. Mirrors GET /leads minus pagination.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "stageId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "assignedTo",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "updatedFrom",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8b7fc87a-9042-450d-9de1-c125c4e7c1c3",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "stageId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3dd985a3-e14c-4803-bbae-c559b863dc15",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "stageId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "74dc475b-4e7c-4432-b755-d6917489630a",
          "name": "List leads",
          "request": {
            "name": "List leads",
            "description": {
              "content": "Returns a cursor-paginated list of leads for the authenticated tenant.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "stageId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "assignedTo",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "updatedFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "6fc311a3-b2cd-47cc-ad40-dc7e51d40fac",
              "name": "Leads page",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "stageId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7859,\n      \"name\": \"string\",\n      \"contactId\": 4314,\n      \"stageId\": 4477,\n      \"assignedTo\": 2753,\n      \"source\": \"string\",\n      \"projectType\": \"string\",\n      \"estimatedValue\": \"string\",\n      \"probability\": 4619,\n      \"expectedCloseDate\": \"2020-09-06T15:03:36.284Z\",\n      \"description\": \"string\",\n      \"createdAt\": \"1980-11-21T17:48:11.394Z\",\n      \"updatedAt\": \"2008-05-18T18:32:48.367Z\",\n      \"siteAddress\": \"string\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    },\n    {\n      \"id\": 5094,\n      \"name\": \"string\",\n      \"contactId\": 3785,\n      \"stageId\": 7565,\n      \"assignedTo\": 6346,\n      \"source\": \"string\",\n      \"projectType\": \"string\",\n      \"estimatedValue\": \"string\",\n      \"probability\": 4900,\n      \"expectedCloseDate\": \"1960-05-20T12:06:16.568Z\",\n      \"description\": \"string\",\n      \"createdAt\": \"2019-03-29T17:05:49.264Z\",\n      \"updatedAt\": \"2017-04-10T20:15:05.510Z\",\n      \"siteAddress\": \"string\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1825\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a73d1b1a-363a-4bc8-9f77-69d79b39b9d3",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "stageId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2546665e-2225-4b59-80a5-cff68070aced",
          "name": "Create lead",
          "request": {
            "name": "Create lead",
            "description": {
              "content": "Creates a new lead.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"stageId\": \"<integer>\",\n  \"contactId\": \"<integer,null>\",\n  \"assignedTo\": \"<integer,null>\",\n  \"source\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"estimatedValue\": \"<string>\",\n  \"probability\": \"<integer>\",\n  \"expectedCloseDate\": \"<dateTime>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "83c70633-d43d-4e20-bb08-db05d98a26e8",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"stageId\": \"<integer>\",\n  \"contactId\": \"<integer,null>\",\n  \"assignedTo\": \"<integer,null>\",\n  \"source\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"estimatedValue\": \"<string>\",\n  \"probability\": \"<integer>\",\n  \"expectedCloseDate\": \"<dateTime>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5476,\n    \"name\": \"string\",\n    \"contactId\": 7946,\n    \"stageId\": 385,\n    \"assignedTo\": 5728,\n    \"source\": \"string\",\n    \"projectType\": \"string\",\n    \"estimatedValue\": \"string\",\n    \"probability\": 7069,\n    \"expectedCloseDate\": \"1989-10-08T10:09:26.601Z\",\n    \"description\": \"string\",\n    \"createdAt\": \"2011-12-13T22:53:02.612Z\",\n    \"updatedAt\": \"2022-04-23T06:16:27.473Z\",\n    \"siteAddress\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7415\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7168cdd3-f56d-4091-b512-8f4bf11c221b",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"stageId\": \"<integer>\",\n  \"contactId\": \"<integer,null>\",\n  \"assignedTo\": \"<integer,null>\",\n  \"source\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"estimatedValue\": \"<string>\",\n  \"probability\": \"<integer>\",\n  \"expectedCloseDate\": \"<dateTime>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "420c7579-32b8-4183-9b0d-0b3605e91cd5",
          "name": "Get lead by id",
          "request": {
            "name": "Get lead by id",
            "description": {
              "content": "Returns a single lead.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8bc827e6-0f5f-483e-a920-e917bc685787",
              "name": "Lead",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5476,\n    \"name\": \"string\",\n    \"contactId\": 7946,\n    \"stageId\": 385,\n    \"assignedTo\": 5728,\n    \"source\": \"string\",\n    \"projectType\": \"string\",\n    \"estimatedValue\": \"string\",\n    \"probability\": 7069,\n    \"expectedCloseDate\": \"1989-10-08T10:09:26.601Z\",\n    \"description\": \"string\",\n    \"createdAt\": \"2011-12-13T22:53:02.612Z\",\n    \"updatedAt\": \"2022-04-23T06:16:27.473Z\",\n    \"siteAddress\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7415\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "97529e9e-20b9-4f2d-afbe-576b5a32aff3",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2240590a-619f-42cc-b333-2554aca58d4a",
          "name": "Update lead",
          "request": {
            "name": "Update lead",
            "description": {
              "content": "Partially updates a lead.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"stageId\": \"<integer>\",\n  \"contactId\": \"<integer,null>\",\n  \"assignedTo\": \"<integer,null>\",\n  \"source\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"estimatedValue\": \"<string>\",\n  \"probability\": \"<integer>\",\n  \"expectedCloseDate\": \"<dateTime>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "e665c6f6-8a7b-4248-8ac1-8e5f2ec04f6a",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"stageId\": \"<integer>\",\n  \"contactId\": \"<integer,null>\",\n  \"assignedTo\": \"<integer,null>\",\n  \"source\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"estimatedValue\": \"<string>\",\n  \"probability\": \"<integer>\",\n  \"expectedCloseDate\": \"<dateTime>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5476,\n    \"name\": \"string\",\n    \"contactId\": 7946,\n    \"stageId\": 385,\n    \"assignedTo\": 5728,\n    \"source\": \"string\",\n    \"projectType\": \"string\",\n    \"estimatedValue\": \"string\",\n    \"probability\": 7069,\n    \"expectedCloseDate\": \"1989-10-08T10:09:26.601Z\",\n    \"description\": \"string\",\n    \"createdAt\": \"2011-12-13T22:53:02.612Z\",\n    \"updatedAt\": \"2022-04-23T06:16:27.473Z\",\n    \"siteAddress\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7415\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "62e5739f-8e67-4fee-a7de-96585e03462d",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"stageId\": \"<integer>\",\n  \"contactId\": \"<integer,null>\",\n  \"assignedTo\": \"<integer,null>\",\n  \"source\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"estimatedValue\": \"<string>\",\n  \"probability\": \"<integer>\",\n  \"expectedCloseDate\": \"<dateTime>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5b0331de-c78c-443b-aa09-86f7deb306d0",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"stageId\": \"<integer>\",\n  \"contactId\": \"<integer,null>\",\n  \"assignedTo\": \"<integer,null>\",\n  \"source\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"estimatedValue\": \"<string>\",\n  \"probability\": \"<integer>\",\n  \"expectedCloseDate\": \"<dateTime>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e4f7240c-c4e2-4e27-9744-3f6e5301a3e3",
          "name": "Delete lead",
          "request": {
            "name": "Delete lead",
            "description": {
              "content": "Soft-deletes a lead.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "7203a4c8-ef7e-4ec1-98a3-6c5546f4ec11",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "ca15921a-7ff4-4632-ac2c-4b63532a1f9c",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e28ac451-d0a6-4112-9018-7670c71eface",
          "name": "Convert lead to project",
          "request": {
            "name": "Convert lead to project",
            "description": {
              "content": "Promotes a lead to a project. Rejects with 409 if the lead is already in the Won stage.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                ":id",
                "convert"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "4ed5e3d8-8ad7-4372-bc7c-0532eaef0f56",
              "name": "Project created",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id",
                    "convert"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 6076\n    }\n  },\n  \"data\": \"\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7549d9fa-7ac7-4580-a445-5168ececbb7c",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id",
                    "convert"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8bf82a33-c1ef-4200-be04-66751a68add2",
              "name": "Conflict",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    ":id",
                    "convert"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0fde4d97-72b2-48ff-8600-e84aaae1aa9b",
          "name": "List lead stages",
          "request": {
            "name": "List lead stages",
            "description": {},
            "url": {
              "path": [
                "lead-stages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "817000d3-67e7-41cb-adee-879ef86cbe6d",
              "name": "Stages",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 6747,\n      \"name\": \"string\",\n      \"color\": \"string\",\n      \"order\": 9642,\n      \"isDefault\": true,\n      \"isWon\": true,\n      \"isLost\": true,\n      \"createdAt\": \"2018-07-25T05:10:45.314Z\"\n    },\n    {\n      \"id\": 162,\n      \"name\": \"string\",\n      \"color\": \"string\",\n      \"order\": 3935,\n      \"isDefault\": false,\n      \"isWon\": false,\n      \"isLost\": false,\n      \"createdAt\": \"1974-08-03T07:24:37.009Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 5005\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "116cd10e-3174-46be-af63-8e61f2103e3c",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7977b8b1-9178-4c0d-b462-0d68fc9b2c40",
          "name": "Create lead stage",
          "request": {
            "name": "Create lead stage",
            "description": {},
            "url": {
              "path": [
                "lead-stages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"color\": \"<string,null>\",\n  \"order\": \"<integer>\",\n  \"isDefault\": \"<boolean>\",\n  \"isWon\": \"<boolean>\",\n  \"isLost\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "2c182081-d42b-44d1-af4c-350fb62878ba",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"color\": \"<string,null>\",\n  \"order\": \"<integer>\",\n  \"isDefault\": \"<boolean>\",\n  \"isWon\": \"<boolean>\",\n  \"isLost\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2005,\n    \"name\": \"string\",\n    \"color\": \"string\",\n    \"order\": 1144,\n    \"isDefault\": false,\n    \"isWon\": false,\n    \"isLost\": false,\n    \"createdAt\": \"1962-08-10T12:43:44.416Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8356\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3a1d848e-ba25-4846-ae29-891d2d8a4dc6",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"color\": \"<string,null>\",\n  \"order\": \"<integer>\",\n  \"isDefault\": \"<boolean>\",\n  \"isWon\": \"<boolean>\",\n  \"isLost\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1f862386-44f0-48fd-bd5c-2f510c2adf45",
          "name": "Update lead stage",
          "request": {
            "name": "Update lead stage",
            "description": {},
            "url": {
              "path": [
                "lead-stages",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"color\": \"<string,null>\",\n  \"order\": \"<integer>\",\n  \"isDefault\": \"<boolean>\",\n  \"isWon\": \"<boolean>\",\n  \"isLost\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "17ccb0db-6513-488d-b585-e6c8ad4c77cb",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"color\": \"<string,null>\",\n  \"order\": \"<integer>\",\n  \"isDefault\": \"<boolean>\",\n  \"isWon\": \"<boolean>\",\n  \"isLost\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2005,\n    \"name\": \"string\",\n    \"color\": \"string\",\n    \"order\": 1144,\n    \"isDefault\": false,\n    \"isWon\": false,\n    \"isLost\": false,\n    \"createdAt\": \"1962-08-10T12:43:44.416Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8356\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e42a631d-8e5a-44ab-8624-10a5981ad031",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"color\": \"<string,null>\",\n  \"order\": \"<integer>\",\n  \"isDefault\": \"<boolean>\",\n  \"isWon\": \"<boolean>\",\n  \"isLost\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9b783f76-47d2-49ca-afe7-8cc9be1dfc60",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"color\": \"<string,null>\",\n  \"order\": \"<integer>\",\n  \"isDefault\": \"<boolean>\",\n  \"isWon\": \"<boolean>\",\n  \"isLost\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "fbdff283-9504-46b5-b80a-290733b43736",
          "name": "Delete lead stage",
          "request": {
            "name": "Delete lead stage",
            "description": {},
            "url": {
              "path": [
                "lead-stages",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "01d85973-772c-486d-a257-70082fe01dd3",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "7dc186cc-cd26-4de6-830c-b8b38fca7a62",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "lead-stages",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c0c6e2d4-45e8-4931-b6e7-ac5ef5204c93",
          "name": "Start CSV export of leads",
          "request": {
            "name": "Start CSV export of leads",
            "description": {
              "content": "Enqueues a CSV export job for leads. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "d812f025-ac58-4864-b57d-fb670048ed30",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8421bed5-f421-45e1-aa19-0b2167fd8087",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "953ed301-5db0-4b4b-a9c0-e1987ad230e1",
          "name": "Start CSV import of leads",
          "request": {
            "name": "Start CSV import of leads",
            "description": {
              "content": "Enqueues a CSV import job. sourcePath must be an opaque upload path returned by POST /jobs/uploads.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                "imports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "24fd82c5-eb78-4178-8c49-b877b31d069b",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "927784e0-fabf-496d-a642-588ce1d6d0e0",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9eca7dd5-cd7d-4431-beab-cc855654bb7c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ecdce997-c5de-46cd-9e39-dc5e468cc414",
          "name": "Start bulk operation on leads",
          "request": {
            "name": "Start bulk operation on leads",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 lead ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "leads",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "91e08e13-83c8-4109-a564-1f20466ceeaf",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "952f68cb-563f-4e35-b939-927cb29baf6c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fe8068ac-8a95-433a-a3dc-df3705ded5d1",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "leads",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "b53c742b-be56-4fc6-bf56-fc7fe998e88c",
      "name": "Bids",
      "description": {
        "content": "Estimates and proposals, including line items, sublines, distributed costs, templates and sending.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "0d23737b-fe33-4e95-a769-425ca56b689d",
          "name": "List bids",
          "request": {
            "name": "List bids",
            "description": {
              "content": "Returns a cursor-paginated list of bids for the authenticated tenant.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "contactId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "leadId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "updatedFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "7cf67555-afa2-4894-88e7-1deb42fb57e8",
              "name": "Bids page",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "leadId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 636,\n      \"bidNumber\": \"string\",\n      \"contactId\": 1232,\n      \"leadId\": 8914,\n      \"projectId\": 3527,\n      \"status\": \"string\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"taxRate\": \"string\",\n      \"discount\": \"string\",\n      \"discountType\": \"string\",\n      \"validUntil\": \"1972-09-24T17:00:40.605Z\",\n      \"notes\": \"string\",\n      \"terms\": \"string\",\n      \"siteAddress\": \"string\",\n      \"sentAt\": \"1965-09-27T10:27:00.931Z\",\n      \"acceptedAt\": \"1982-01-03T14:08:11.559Z\",\n      \"acceptedBy\": \"string\",\n      \"createdAt\": \"1973-07-01T10:15:52.141Z\",\n      \"updatedAt\": \"2013-03-01T00:01:03.641Z\",\n      \"discountAmount\": \"string\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    },\n    {\n      \"id\": 330,\n      \"bidNumber\": \"string\",\n      \"contactId\": 9282,\n      \"leadId\": 4838,\n      \"projectId\": 826,\n      \"status\": \"string\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"taxRate\": \"string\",\n      \"discount\": \"string\",\n      \"discountType\": \"string\",\n      \"validUntil\": \"1967-04-15T07:41:21.371Z\",\n      \"notes\": \"string\",\n      \"terms\": \"string\",\n      \"siteAddress\": \"string\",\n      \"sentAt\": \"1996-01-08T01:22:53.189Z\",\n      \"acceptedAt\": \"1991-06-25T03:19:50.877Z\",\n      \"acceptedBy\": \"string\",\n      \"createdAt\": \"1952-01-13T05:13:51.664Z\",\n      \"updatedAt\": \"2011-07-19T12:27:09.668Z\",\n      \"discountAmount\": \"string\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7267\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c13e4d83-dea5-4411-a82a-0e15f475fe57",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "leadId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "475d835c-ce95-4d4b-a461-aaa49d2b41b0",
          "name": "Create bid",
          "request": {
            "name": "Create bid",
            "description": {
              "content": "Creates a new bid in draft status.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "8cbbbd39-563a-48f8-9e2e-fd2cc54cd297",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "089ade09-e923-4530-9e02-68bc12a10500",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f42cf9db-6c63-4b44-bc60-efeb905c7b3a",
          "name": "Get bid by id",
          "request": {
            "name": "Get bid by id",
            "description": {
              "content": "Returns a single bid.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "d44621e3-5052-41cc-bbd1-ab343a59e8f9",
              "name": "Bid",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "35ef0a27-dfe3-42c6-a110-494933752680",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9977e073-8c1d-42b2-af0b-4136f7f541de",
          "name": "Update bid",
          "request": {
            "name": "Update bid",
            "description": {
              "content": "Partially updates a bid. Accepted bids are locked.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"acceptedAt\": \"<string,null>\",\n  \"acceptedBy\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"createdBy\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "633a6154-a17d-46d0-b7ad-ad7d32b61405",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"acceptedAt\": \"<string,null>\",\n  \"acceptedBy\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"createdBy\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f3514520-d05d-4967-bb42-8e83011ecc47",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"acceptedAt\": \"<string,null>\",\n  \"acceptedBy\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"createdBy\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5c5a0b87-f65f-4814-be64-3b6f9337972c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"acceptedAt\": \"<string,null>\",\n  \"acceptedBy\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"createdBy\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "63f5d44f-7016-45bb-8208-78c99a2cf639",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidNumber\": \"<string>\",\n  \"name\": \"<string,null>\",\n  \"leadId\": \"<integer,null>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectId\": \"<integer,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"validUntil\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"acceptedAt\": \"<string,null>\",\n  \"acceptedBy\": \"<string,null>\",\n  \"rejectedAt\": \"<string,null>\",\n  \"cancelReason\": \"<string,null>\",\n  \"cancelledAt\": \"<string,null>\",\n  \"cancelledFromStatus\": \"<string,null>\",\n  \"taxRate\": \"<string,null>\",\n  \"discountType\": \"<string,null>\",\n  \"discount\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"latitude\": \"<string,null>\",\n  \"longitude\": \"<string,null>\",\n  \"notes\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"createdBy\": \"<integer,null>\",\n  \"marginPercent\": \"<string,null>\",\n  \"companyOhPercent\": \"<string,null>\",\n  \"commissionPercent\": \"<string,null>\",\n  \"showSublines\": \"<boolean,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\",\n  \"kanbanOrder\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2430618c-f97b-4a1e-8b54-60ae4316ab97",
          "name": "Delete bid",
          "request": {
            "name": "Delete bid",
            "description": {
              "content": "Soft-deletes a bid. Accepted bids are locked.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "037aae02-e2f0-4b28-b206-4f259678259e",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "48c7e2cc-7e53-46cf-9ffb-2b15dcbe5f5f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7d933040-ad3e-4fb5-96e2-e1284abc8a82",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5485b854-5f00-431d-baff-f0ad6caf4da7",
          "name": "Send a bid to the customer",
          "request": {
            "name": "Send a bid to the customer",
            "description": {
              "content": "Transitions a draft bid to sent and emails the customer.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id",
                "send"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "0d4713dc-8b05-458a-9d26-bdf8d169788f",
              "name": "Sent",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "send"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef1d10c4-8070-4c71-988b-b9f9fcfd1eda",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "send"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b3f05764-0ab5-40a8-9ce3-c0aa22c0dc5c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "send"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "54f3fb92-c740-4b4a-87d6-121215a6e25f",
          "name": "Accept a bid",
          "request": {
            "name": "Accept a bid",
            "description": {
              "content": "Marks any non-accepted bid (draft, sent, expired, or rejected) as accepted. Returns 409 if the bid is already accepted.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id",
                "accept"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"acceptedBy\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "0c5e4e56-7335-4043-8392-b8a2aa1173c4",
              "name": "Accepted",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "accept"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"acceptedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "277fd547-a66d-467a-b332-7f8c43ea14fb",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "accept"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"acceptedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3936567-ac0c-4efa-bc88-c145543d759f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "accept"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"acceptedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8967ddd8-6c5d-4043-9e90-327ca00ec348",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "accept"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"acceptedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2c6aa8c1-8885-42c9-9c05-a30fc4bc6cf5",
          "name": "Revert acceptance of a bid",
          "request": {
            "name": "Revert acceptance of a bid",
            "description": {
              "content": "Moves an accepted bid back to a non-accepted status (draft, sent, expired, or rejected) and clears acceptedAt/acceptedBy. Use to undo an acceptance recorded by mistake.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id",
                "revert-acceptance"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "3d390f69-db6b-433d-88ba-0cf0481a9854",
              "name": "Reverted",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "revert-acceptance"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "44ce9418-dd0c-41d4-ba86-0e863806f6b4",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "revert-acceptance"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "05ce663c-3fb0-4b3b-b884-85a658d368b4",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "revert-acceptance"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3363cdb5-27fb-4daf-abd4-887b1978d489",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "revert-acceptance"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6fabe66f-6596-476c-815f-accd03cc0243",
          "name": "Reject a bid",
          "request": {
            "name": "Reject a bid",
            "description": {},
            "url": {
              "path": [
                "bids",
                ":id",
                "reject"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "64006982-2cbf-4dc5-b2c8-eb7de96d0a1d",
              "name": "Rejected",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0e8b3557-5bf2-4799-a9d2-568f6e9fcdee",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ecd4121-548c-41a9-b8a9-a9823ed4b3f1",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2c716013-d580-40f1-830e-9ca2e20f2530",
          "name": "Duplicate a bid",
          "request": {
            "name": "Duplicate a bid",
            "description": {
              "content": "Creates a new draft bid copied from the given bid.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id",
                "duplicate"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "54e0e95a-8eaf-4f9a-aa38-e347fefc6614",
              "name": "Duplicated",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "duplicate"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6989,\n    \"bidNumber\": \"string\",\n    \"contactId\": 2187,\n    \"leadId\": 9159,\n    \"projectId\": 8092,\n    \"status\": \"string\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"taxRate\": \"string\",\n    \"discount\": \"string\",\n    \"discountType\": \"string\",\n    \"validUntil\": \"1993-12-23T13:28:23.594Z\",\n    \"notes\": \"string\",\n    \"terms\": \"string\",\n    \"siteAddress\": \"string\",\n    \"sentAt\": \"1988-01-31T09:51:37.322Z\",\n    \"acceptedAt\": \"1959-09-24T00:12:16.296Z\",\n    \"acceptedBy\": \"string\",\n    \"createdAt\": \"1973-05-05T05:57:54.189Z\",\n    \"updatedAt\": \"1959-09-24T08:37:04.306Z\",\n    \"discountAmount\": \"string\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3244\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5169422f-b3e5-4cbe-9740-d86ef9500fa7",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "duplicate"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4eb8f861-cb27-4f73-a51e-eccfd2ddd496",
          "name": "Convert accepted bid to project",
          "request": {
            "name": "Convert accepted bid to project",
            "description": {},
            "url": {
              "path": [
                "bids",
                ":id",
                "convert-to-project"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mappingStrategy\": \"<string>\",\n  \"templateId\": \"<integer>\",\n  \"lineItemPhaseMapping\": {\n    \"key_0\": \"<integer>\",\n    \"key_1\": \"<integer>\"\n  },\n  \"name\": \"<string>\",\n  \"startDate\": \"<string>\",\n  \"expectedEndDate\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5a1dd9cf-eb6a-475f-900b-e0a34348e8eb",
              "name": "Project created",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "convert-to-project"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"mappingStrategy\": \"<string>\",\n  \"templateId\": \"<integer>\",\n  \"lineItemPhaseMapping\": {\n    \"key_0\": \"<integer>\",\n    \"key_1\": \"<integer>\",\n    \"key_2\": \"<integer>\"\n  },\n  \"name\": \"<string>\",\n  \"startDate\": \"<string>\",\n  \"expectedEndDate\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 6076\n    }\n  },\n  \"data\": \"\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dea7b71c-fffa-42d1-87ca-95fac6756a59",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "convert-to-project"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"mappingStrategy\": \"<string>\",\n  \"templateId\": \"<integer>\",\n  \"lineItemPhaseMapping\": {\n    \"key_0\": \"<integer>\",\n    \"key_1\": \"<integer>\",\n    \"key_2\": \"<integer>\"\n  },\n  \"name\": \"<string>\",\n  \"startDate\": \"<string>\",\n  \"expectedEndDate\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d9142143-c185-499d-9d63-e779dbf65d15",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "convert-to-project"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"mappingStrategy\": \"<string>\",\n  \"templateId\": \"<integer>\",\n  \"lineItemPhaseMapping\": {\n    \"key_0\": \"<integer>\",\n    \"key_1\": \"<integer>\",\n    \"key_2\": \"<integer>\"\n  },\n  \"name\": \"<string>\",\n  \"startDate\": \"<string>\",\n  \"expectedEndDate\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d8cc2874-4391-4696-ad9f-53f7f943fcd8",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "convert-to-project"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"mappingStrategy\": \"<string>\",\n  \"templateId\": \"<integer>\",\n  \"lineItemPhaseMapping\": {\n    \"key_0\": \"<integer>\",\n    \"key_1\": \"<integer>\",\n    \"key_2\": \"<integer>\"\n  },\n  \"name\": \"<string>\",\n  \"startDate\": \"<string>\",\n  \"expectedEndDate\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8d605a12-afeb-4a8e-9fb3-50015b32aa44",
          "name": "List bid line items",
          "request": {
            "name": "List bid line items",
            "description": {},
            "url": {
              "path": [
                "bids",
                ":id",
                "line-items"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "488649ff-dac2-440f-9e9e-bb79aa7b5997",
              "name": "Line items",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 404,\n      \"bidId\": 5960,\n      \"description\": \"string\",\n      \"quantity\": \"string\",\n      \"unitPrice\": \"string\",\n      \"total\": \"string\"\n    },\n    {\n      \"id\": 336,\n      \"bidId\": 6937,\n      \"description\": \"string\",\n      \"quantity\": \"string\",\n      \"unitPrice\": \"string\",\n      \"total\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 9649\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ce6a89bf-c778-4d09-b7c1-dfdece8e1000",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4d088ed4-a4ce-413c-89be-8542dfec4b5b",
          "name": "Create bid line item",
          "request": {
            "name": "Create bid line item",
            "description": {},
            "url": {
              "path": [
                "bids",
                ":id",
                "line-items"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"description\": \"<string>\",\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b6e1dff9-4d5c-48a1-90f2-e69231534e26",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2475,\n    \"bidId\": 6093,\n    \"description\": \"string\",\n    \"quantity\": \"string\",\n    \"unitPrice\": \"string\",\n    \"total\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 2110\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9c1132f6-f92b-4849-9975-16486229c6bb",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff27ee97-2a3a-43c6-b734-09428f67d7c7",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "321927ba-a463-40e7-b5ae-e82d7a988805",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c740d25a-ae9f-4b47-b7ea-9306d8fbaa98",
          "name": "Update bid line item",
          "request": {
            "name": "Update bid line item",
            "description": {},
            "url": {
              "path": [
                "bids",
                ":id",
                "line-items",
                ":itemId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "itemId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "a3b1d373-8f93-44b0-b40c-7588fc9cd603",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2475,\n    \"bidId\": 6093,\n    \"description\": \"string\",\n    \"quantity\": \"string\",\n    \"unitPrice\": \"string\",\n    \"total\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 2110\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "79938f34-491c-44f6-9515-5b49182a7a65",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b36efbb4-03db-44d2-ad74-5dd8ac00900d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5a6418b7-8d48-4a5a-9e90-3e49c8925fbe",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"productId\": \"<integer,null>\",\n  \"markName\": \"<string,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string,null>\",\n  \"width\": \"<string,null>\",\n  \"height\": \"<string,null>\",\n  \"depth\": \"<string,null>\",\n  \"area\": \"<string,null>\",\n  \"perimeterLf\": \"<string,null>\",\n  \"volumeCf\": \"<string,null>\",\n  \"order\": \"<integer,null>\",\n  \"deletedAt\": \"<string,null>\",\n  \"unitPrice\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "78e0e76d-1d94-4b47-a439-413d4db114e6",
          "name": "Delete bid line item",
          "request": {
            "name": "Delete bid line item",
            "description": {},
            "url": {
              "path": [
                "bids",
                ":id",
                "line-items",
                ":itemId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "itemId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "08ed3ca4-8bb9-4943-92d6-b9d0d7283c91",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "f96c8ecf-9cc0-4c8e-b3c0-bd66e80ae95d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "436ff082-b8d5-4456-949c-96dd109175be",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "line-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "033a7186-ef91-4a81-b181-dc4d8b707372",
          "name": "Start CSV export of bids",
          "request": {
            "name": "Start CSV export of bids",
            "description": {
              "content": "Enqueues a CSV export job for bids. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5663b5b8-8a82-41a5-a918-bd8204e7cf2a",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3f6e0145-a2f5-4181-87da-c8cd1b2d5bf9",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "132d8c3a-958b-4121-a76b-785033f37a3a",
          "name": "Start bulk operation on bids",
          "request": {
            "name": "Start bulk operation on bids",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 bid ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "c265d0fc-319c-4d98-84af-8f0114662d17",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0f5e8cd8-112c-4782-90fc-f9a8ff7c2146",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9473db53-e800-4a97-902e-b0cfc0ef6955",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c59f46d5-5c19-4fce-a1ac-02a148da9d2d",
          "name": "Bulk-fetch bids by ID",
          "request": {
            "name": "Bulk-fetch bids by ID",
            "description": {
              "content": "Fetch up to 50 bids by ID in a single round-trip. Returns flat bid rows only (no line items / sublines / distributed costs — call GET /bids/{id} per id for the full tree). IDs that don't exist are silently omitted; compare meta.requested vs meta.returned to detect missing.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                "get-many"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b49d3361-b57b-4711-bee6-3fac5d2c7ecb",
              "name": "Bids",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 9805,\n      \"bidNumber\": \"string\",\n      \"contactId\": 2227,\n      \"leadId\": 9242,\n      \"projectId\": 1483,\n      \"status\": \"string\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"taxRate\": \"string\",\n      \"discount\": \"string\",\n      \"discountType\": \"string\",\n      \"validUntil\": \"2023-03-27T21:04:48.376Z\",\n      \"notes\": \"string\",\n      \"terms\": \"string\",\n      \"siteAddress\": \"string\",\n      \"sentAt\": \"2011-10-19T21:05:17.406Z\",\n      \"acceptedAt\": \"1991-11-28T09:27:01.749Z\",\n      \"acceptedBy\": \"string\",\n      \"createdAt\": \"2000-09-29T12:47:07.542Z\",\n      \"updatedAt\": \"2002-08-17T11:36:17.689Z\",\n      \"discountAmount\": \"string\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    },\n    {\n      \"id\": 2444,\n      \"bidNumber\": \"string\",\n      \"contactId\": 8245,\n      \"leadId\": 1816,\n      \"projectId\": 5333,\n      \"status\": \"string\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"taxRate\": \"string\",\n      \"discount\": \"string\",\n      \"discountType\": \"string\",\n      \"validUntil\": \"2020-08-26T04:39:39.890Z\",\n      \"notes\": \"string\",\n      \"terms\": \"string\",\n      \"siteAddress\": \"string\",\n      \"sentAt\": \"2018-04-21T19:18:10.814Z\",\n      \"acceptedAt\": \"2006-06-07T12:50:42.011Z\",\n      \"acceptedBy\": \"string\",\n      \"createdAt\": \"2024-06-07T11:05:03.493Z\",\n      \"updatedAt\": \"1989-11-02T07:40:41.833Z\",\n      \"discountAmount\": \"string\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"requested\": 5187,\n    \"returned\": 1132,\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"has_more\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"count\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "40b90022-b489-4108-a380-ba6f54222427",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b0b363fd-7d76-4f98-b612-4a3265dd7b88",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "71299d85-5086-4ded-b648-1f3febb58016",
          "name": "Count bids",
          "request": {
            "name": "Count bids",
            "description": {
              "content": "Returns the total number of bids in the tenant matching the optional filters (`search`, `status`, `contactId`, `leadId`, `projectId`, `dateFrom`/`dateTo`, `updatedFrom`). Mirrors GET /bids minus pagination.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "contactId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "leadId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "updatedFrom",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "bfc98117-d465-4e18-8e72-f011458ff10c",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "leadId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7081e94e-420d-4d9c-8d69-2e77651d373e",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "leadId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "45e640fb-31ae-4fec-87b7-d2f5f6d77e00",
          "name": "Aggregate bid totals and breakdown by status",
          "request": {
            "name": "Aggregate bid totals and breakdown by status",
            "description": {
              "content": "Returns flat totals (count, total_value) plus a breakdown by status (draft / sent / accepted / rejected / expired). Money values are decimal strings. Filters on createdAt for date range.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "contactId",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "createdBy",
                  "value": "<integer>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "3a9fa80c-cc2f-491b-9724-d1b7d2aca7b9",
              "name": "Bid summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer>"
                    },
                    {
                      "key": "createdBy",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"totals\": {\n      \"count\": 3078,\n      \"total_value\": \"string\"\n    },\n    \"by_status\": [\n      {\n        \"status\": \"string\",\n        \"count\": 1109,\n        \"total_value\": \"string\"\n      },\n      {\n        \"status\": \"string\",\n        \"count\": 1769,\n        \"total_value\": \"string\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8836\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "44afe4b3-f061-4c61-b453-7884cfb8878f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer>"
                    },
                    {
                      "key": "createdBy",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "44d63b03-bea7-4779-bda3-9e74ac9f0791",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer>"
                    },
                    {
                      "key": "createdBy",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "59235adb-3318-4d6f-8080-21e2f06562ee",
          "name": "Generate PDF for a bid (async)",
          "request": {
            "name": "Generate PDF for a bid (async)",
            "description": {
              "content": "Enqueues an async PDF generation job. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "bids",
                ":id",
                "pdf"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "77ced0cf-4e3e-44de-a30a-c3db98bb2776",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1d456fc9-79aa-4293-a300-ef77b3c189f3",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7de46524-7c8b-4bf9-a2fc-1cbfa3395c8a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "bids",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "8562a7b1-5f95-44e7-b59f-57fc666c95a8",
      "name": "Projects",
      "description": {
        "content": "Awarded work: phases, tasks, subtasks, dependencies and assigned contacts.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "d334da3e-0550-423e-8555-5a4097cd2188",
          "name": "Count projects",
          "request": {
            "name": "Count projects",
            "description": {
              "content": "Returns the total number of projects in the tenant matching the optional `search`, `status`, `contactId`, `dateFrom`/`dateTo`, `updatedFrom` filters. Mirrors GET /projects minus pagination.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "contactId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "updatedFrom",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "23c7cb10-da6a-4902-aa45-f8aae25fb7fc",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "35472a3b-c092-4665-ac9d-5a29f3d26fd1",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "19474ef3-de91-4e3c-ba46-97e99ecf28a2",
          "name": "Aggregate project totals and breakdowns by status and type",
          "request": {
            "name": "Aggregate project totals and breakdowns by status and type",
            "description": {
              "content": "Returns totals (count, contract_value_total, approved_co_delta_total, overdue_count) plus breakdowns by status and by project type. Money values are decimal strings. Date filter applies to createdAt and is inclusive on both bounds.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "contactId",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "assignedTo",
                  "value": "<integer>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "3fc86e05-782f-46f1-8003-0585a750c9cc",
              "name": "Project summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"totals\": {\n      \"count\": 3930,\n      \"contract_value_total\": \"string\",\n      \"approved_co_delta_total\": \"string\",\n      \"overdue_count\": 4718\n    },\n    \"by_status\": [\n      {\n        \"status\": \"string\",\n        \"count\": 5115,\n        \"contract_value_total\": \"string\"\n      },\n      {\n        \"status\": \"string\",\n        \"count\": 4436,\n        \"contract_value_total\": \"string\"\n      }\n    ],\n    \"by_type\": [\n      {\n        \"project_type\": \"string\",\n        \"count\": 4694,\n        \"contract_value_total\": \"string\"\n      },\n      {\n        \"project_type\": \"string\",\n        \"count\": 384,\n        \"contract_value_total\": \"string\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8491\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "347aafe4-cfd6-4bf1-b26a-cbbccf1a93ce",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d474d4a2-f9bb-425e-afff-e71e13308fbc",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8ef3ea13-5639-4186-be3e-867c3ae464fc",
          "name": "Bulk-fetch projects by ID",
          "request": {
            "name": "Bulk-fetch projects by ID",
            "description": {
              "content": "Fetch up to 50 projects by ID in a single round-trip. Returns flat project rows only (no phases / tasks / contacts). IDs that don't exist are silently omitted; compare meta.requested vs meta.returned to detect missing.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                "get-many"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "ce8278fc-2622-44ea-9549-5e8e77b3483e",
              "name": "Projects",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 2287,\n      \"name\": \"string\",\n      \"projectNumber\": \"string\",\n      \"contactId\": 6014,\n      \"bidId\": 7407,\n      \"projectType\": \"string\",\n      \"status\": \"string\",\n      \"priority\": \"string\",\n      \"startDate\": \"1988-08-22T19:27:43.773Z\",\n      \"expectedEndDate\": \"2010-12-18T17:15:42.369Z\",\n      \"actualEndDate\": \"1954-07-16T07:38:16.516Z\",\n      \"contractValue\": \"string\",\n      \"originalContractValue\": \"string\",\n      \"description\": \"string\",\n      \"siteAddress\": \"string\",\n      \"assignedTo\": 9690,\n      \"createdAt\": \"1971-01-10T07:00:20.398Z\",\n      \"updatedAt\": \"1951-09-09T08:45:23.682Z\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    },\n    {\n      \"id\": 4195,\n      \"name\": \"string\",\n      \"projectNumber\": \"string\",\n      \"contactId\": 9686,\n      \"bidId\": 975,\n      \"projectType\": \"string\",\n      \"status\": \"string\",\n      \"priority\": \"string\",\n      \"startDate\": \"1981-07-17T11:43:19.935Z\",\n      \"expectedEndDate\": \"1980-02-24T22:21:26.371Z\",\n      \"actualEndDate\": \"1979-04-12T11:03:11.096Z\",\n      \"contractValue\": \"string\",\n      \"originalContractValue\": \"string\",\n      \"description\": \"string\",\n      \"siteAddress\": \"string\",\n      \"assignedTo\": 1872,\n      \"createdAt\": \"1947-09-17T04:09:11.917Z\",\n      \"updatedAt\": \"2013-01-05T05:00:36.413Z\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"requested\": 2298,\n    \"returned\": 9006,\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"has_more\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"count\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef18a5bf-0bbf-4718-917e-8e67a7acc4cb",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ed6e5e0-1fda-4053-8c93-ef5e15682faa",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f8757ebd-67fb-440c-bf7a-ff20c6816bb7",
          "name": "List projects",
          "request": {
            "name": "List projects",
            "description": {
              "content": "Returns a cursor-paginated list of projects for the authenticated tenant.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "contactId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "updatedFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "b8fcad7f-58b9-4fc8-ad01-d27fb45c3636",
              "name": "Projects page",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 4644,\n      \"name\": \"string\",\n      \"projectNumber\": \"string\",\n      \"contactId\": 6096,\n      \"bidId\": 2027,\n      \"projectType\": \"string\",\n      \"status\": \"string\",\n      \"priority\": \"string\",\n      \"startDate\": \"2020-05-21T09:00:21.407Z\",\n      \"expectedEndDate\": \"1999-02-26T19:35:25.666Z\",\n      \"actualEndDate\": \"2004-06-03T17:08:54.030Z\",\n      \"contractValue\": \"string\",\n      \"originalContractValue\": \"string\",\n      \"description\": \"string\",\n      \"siteAddress\": \"string\",\n      \"assignedTo\": 9301,\n      \"createdAt\": \"1963-10-20T02:41:16.763Z\",\n      \"updatedAt\": \"1984-02-29T19:50:29.804Z\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    },\n    {\n      \"id\": 5461,\n      \"name\": \"string\",\n      \"projectNumber\": \"string\",\n      \"contactId\": 1842,\n      \"bidId\": 2481,\n      \"projectType\": \"string\",\n      \"status\": \"string\",\n      \"priority\": \"string\",\n      \"startDate\": \"1960-03-18T06:36:54.634Z\",\n      \"expectedEndDate\": \"2004-01-16T23:55:41.477Z\",\n      \"actualEndDate\": \"2012-04-23T07:30:59.420Z\",\n      \"contractValue\": \"string\",\n      \"originalContractValue\": \"string\",\n      \"description\": \"string\",\n      \"siteAddress\": \"string\",\n      \"assignedTo\": 9899,\n      \"createdAt\": \"1991-09-06T18:42:01.351Z\",\n      \"updatedAt\": \"1996-11-11T18:13:39.104Z\",\n      \"siteCity\": \"string\",\n      \"siteState\": \"string\",\n      \"siteZipCode\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3444\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7044e89c-93c6-461f-9731-aeabe30399a4",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "updatedFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b6095ac5-44f9-481b-a14f-52616699a7c5",
          "name": "Create project",
          "request": {
            "name": "Create project",
            "description": {
              "content": "Creates a new project.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"projectNumber\": \"<string>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectType\": \"<string,null>\",\n  \"status\": \"<string>\",\n  \"priority\": \"<string,null>\",\n  \"startDate\": \"<dateTime>\",\n  \"expectedEndDate\": \"<dateTime>\",\n  \"actualEndDate\": \"<dateTime>\",\n  \"originalContractValue\": \"<string>\",\n  \"contractValue\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"assignedTo\": \"<integer,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "7b138d8e-c447-408b-8de4-175d466500ca",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"projectNumber\": \"<string>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectType\": \"<string,null>\",\n  \"status\": \"<string>\",\n  \"priority\": \"<string,null>\",\n  \"startDate\": \"<dateTime>\",\n  \"expectedEndDate\": \"<dateTime>\",\n  \"actualEndDate\": \"<dateTime>\",\n  \"originalContractValue\": \"<string>\",\n  \"contractValue\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"assignedTo\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7047,\n    \"name\": \"string\",\n    \"projectNumber\": \"string\",\n    \"contactId\": 9847,\n    \"bidId\": 7754,\n    \"projectType\": \"string\",\n    \"status\": \"string\",\n    \"priority\": \"string\",\n    \"startDate\": \"2011-04-28T03:13:24.612Z\",\n    \"expectedEndDate\": \"1984-09-04T10:04:10.840Z\",\n    \"actualEndDate\": \"2009-10-10T04:16:11.885Z\",\n    \"contractValue\": \"string\",\n    \"originalContractValue\": \"string\",\n    \"description\": \"string\",\n    \"siteAddress\": \"string\",\n    \"assignedTo\": 140,\n    \"createdAt\": \"1986-03-17T05:25:02.545Z\",\n    \"updatedAt\": \"1948-09-05T23:08:18.112Z\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4280\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8aa0a666-ea69-4890-882f-5e8034c1493a",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"projectNumber\": \"<string>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectType\": \"<string,null>\",\n  \"status\": \"<string>\",\n  \"priority\": \"<string,null>\",\n  \"startDate\": \"<dateTime>\",\n  \"expectedEndDate\": \"<dateTime>\",\n  \"actualEndDate\": \"<dateTime>\",\n  \"originalContractValue\": \"<string>\",\n  \"contractValue\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"assignedTo\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ad02cfc9-d01f-4fc1-9f1b-1c8006221d38",
          "name": "Get project by id",
          "request": {
            "name": "Get project by id",
            "description": {
              "content": "Returns a single project.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "cee491dd-8197-4e4b-9769-e1c5e59ec1f9",
              "name": "Project",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7047,\n    \"name\": \"string\",\n    \"projectNumber\": \"string\",\n    \"contactId\": 9847,\n    \"bidId\": 7754,\n    \"projectType\": \"string\",\n    \"status\": \"string\",\n    \"priority\": \"string\",\n    \"startDate\": \"2011-04-28T03:13:24.612Z\",\n    \"expectedEndDate\": \"1984-09-04T10:04:10.840Z\",\n    \"actualEndDate\": \"2009-10-10T04:16:11.885Z\",\n    \"contractValue\": \"string\",\n    \"originalContractValue\": \"string\",\n    \"description\": \"string\",\n    \"siteAddress\": \"string\",\n    \"assignedTo\": 140,\n    \"createdAt\": \"1986-03-17T05:25:02.545Z\",\n    \"updatedAt\": \"1948-09-05T23:08:18.112Z\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4280\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "15ee036a-305a-41fb-8694-2b15a8a0a064",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2ed709b5-90a6-4acd-babc-b6e5d27e3b64",
          "name": "Update project",
          "request": {
            "name": "Update project",
            "description": {
              "content": "Partially updates a project.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"projectNumber\": \"<string>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectType\": \"<string,null>\",\n  \"status\": \"<string>\",\n  \"priority\": \"<string,null>\",\n  \"startDate\": \"<dateTime>\",\n  \"expectedEndDate\": \"<dateTime>\",\n  \"actualEndDate\": \"<dateTime>\",\n  \"originalContractValue\": \"<string>\",\n  \"contractValue\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"assignedTo\": \"<integer,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "844e6aff-0b29-48fa-aa62-a662454e10b3",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"projectNumber\": \"<string>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectType\": \"<string,null>\",\n  \"status\": \"<string>\",\n  \"priority\": \"<string,null>\",\n  \"startDate\": \"<dateTime>\",\n  \"expectedEndDate\": \"<dateTime>\",\n  \"actualEndDate\": \"<dateTime>\",\n  \"originalContractValue\": \"<string>\",\n  \"contractValue\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"assignedTo\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7047,\n    \"name\": \"string\",\n    \"projectNumber\": \"string\",\n    \"contactId\": 9847,\n    \"bidId\": 7754,\n    \"projectType\": \"string\",\n    \"status\": \"string\",\n    \"priority\": \"string\",\n    \"startDate\": \"2011-04-28T03:13:24.612Z\",\n    \"expectedEndDate\": \"1984-09-04T10:04:10.840Z\",\n    \"actualEndDate\": \"2009-10-10T04:16:11.885Z\",\n    \"contractValue\": \"string\",\n    \"originalContractValue\": \"string\",\n    \"description\": \"string\",\n    \"siteAddress\": \"string\",\n    \"assignedTo\": 140,\n    \"createdAt\": \"1986-03-17T05:25:02.545Z\",\n    \"updatedAt\": \"1948-09-05T23:08:18.112Z\",\n    \"siteCity\": \"string\",\n    \"siteState\": \"string\",\n    \"siteZipCode\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4280\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "161eacd4-91e4-4cf0-86c7-dd41547f7975",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"projectNumber\": \"<string>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectType\": \"<string,null>\",\n  \"status\": \"<string>\",\n  \"priority\": \"<string,null>\",\n  \"startDate\": \"<dateTime>\",\n  \"expectedEndDate\": \"<dateTime>\",\n  \"actualEndDate\": \"<dateTime>\",\n  \"originalContractValue\": \"<string>\",\n  \"contractValue\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"assignedTo\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5fa41007-9aba-4a21-96d8-b6944d29721c",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"projectNumber\": \"<string>\",\n  \"contactId\": \"<integer,null>\",\n  \"projectType\": \"<string,null>\",\n  \"status\": \"<string>\",\n  \"priority\": \"<string,null>\",\n  \"startDate\": \"<dateTime>\",\n  \"expectedEndDate\": \"<dateTime>\",\n  \"actualEndDate\": \"<dateTime>\",\n  \"originalContractValue\": \"<string>\",\n  \"contractValue\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"siteAddress\": \"<string,null>\",\n  \"siteCity\": \"<string,null>\",\n  \"siteState\": \"<string,null>\",\n  \"siteZipCode\": \"<string,null>\",\n  \"assignedTo\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "179f5723-fd71-429b-97da-91bd11497cfc",
          "name": "Delete project",
          "request": {
            "name": "Delete project",
            "description": {
              "content": "Soft-deletes a project.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "209e3ede-a4a9-42e3-92c3-bbb26fa5b430",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "6381f049-99c6-4b63-820d-80102eaf2945",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "373b5636-e139-4035-9e77-1e96584f49bd",
          "name": "Start CSV export of projects",
          "request": {
            "name": "Start CSV export of projects",
            "description": {
              "content": "Enqueues a CSV export job for projects. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "ad8beb76-97f0-46d3-8f11-86fc61f0a839",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45fcf593-79cb-4846-a4e1-93c94ebda006",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "dd890b4a-c211-48cf-b1d3-3442370b106a",
          "name": "Start CSV import of projects",
          "request": {
            "name": "Start CSV import of projects",
            "description": {
              "content": "Enqueues a CSV import job. sourcePath must be an opaque upload path returned by POST /jobs/uploads.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                "imports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "633ef46a-49b8-4833-bbae-04506a9f0050",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1a0fb7fd-4f8f-4755-ab72-1ee07700bfd8",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "336f48e9-628c-409e-a044-46fc412ddaa4",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2484e486-e453-475e-b342-b4ea58ae09af",
          "name": "Start bulk operation on projects",
          "request": {
            "name": "Start bulk operation on projects",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 project ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "projects",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "0b9b60e6-b860-434e-9ee7-256a61e1ed83",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b50759c5-a975-4689-8cc5-0da85167e399",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "067694c1-5d3c-4a8c-92c6-b2a9fe8f4765",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "projects",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c81d8ea2-f061-4ce5-a749-e3746847e7d2",
      "name": "ProjectTemplates",
      "description": {
        "content": "Reusable phase and task structures applied when a bid becomes a project.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "510dbb1e-b965-4994-be4a-116d33451229",
          "name": "List project templates",
          "request": {
            "name": "List project templates",
            "description": {
              "content": "Returns a cursor-paginated list of project templates.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "project-templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "e7a8b818-d91d-4d95-9ce2-ed584e9d3177",
              "name": "ProjectTemplates page",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 2883,\n      \"name\": \"string\",\n      \"description\": \"string\",\n      \"createdAt\": \"1948-01-06T14:07:12.726Z\",\n      \"updatedAt\": \"2016-11-22T14:09:26.991Z\"\n    },\n    {\n      \"id\": 3736,\n      \"name\": \"string\",\n      \"description\": \"string\",\n      \"createdAt\": \"1983-08-25T20:52:55.546Z\",\n      \"updatedAt\": \"1956-05-20T13:27:08.538Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3617\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e23582ae-67e2-4e64-9e6d-933f3f568229",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "89706570-d8dd-410f-854e-25d1910d47d4",
          "name": "Create project template",
          "request": {
            "name": "Create project template",
            "description": {},
            "url": {
              "path": [
                "project-templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"createdBy\": \"<integer,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "2182b65f-93a4-45d7-aa3b-3741a085d556",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"createdBy\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 9253,\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"createdAt\": \"1985-09-12T04:04:03.205Z\",\n    \"updatedAt\": \"1991-08-16T13:02:28.503Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3983\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a5ce0cae-93e4-4254-92ba-eec113dd4409",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"createdBy\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2778b842-4ba3-423a-b201-5700ebad7b46",
          "name": "Get project template by id",
          "request": {
            "name": "Get project template by id",
            "description": {},
            "url": {
              "path": [
                "project-templates",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "e1b00cb1-ee4f-402d-987b-61d42fd2085a",
              "name": "ProjectTemplate",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 9253,\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"createdAt\": \"1985-09-12T04:04:03.205Z\",\n    \"updatedAt\": \"1991-08-16T13:02:28.503Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3983\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ac1df6ad-678a-4cb2-afab-df59a2b4fd1d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "894c4f95-d44b-4c84-9152-517d3afea04e",
          "name": "Update project template",
          "request": {
            "name": "Update project template",
            "description": {},
            "url": {
              "path": [
                "project-templates",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"createdBy\": \"<integer,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "0098cb84-96b1-4268-8afc-7b8e2dd94974",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"createdBy\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 9253,\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"createdAt\": \"1985-09-12T04:04:03.205Z\",\n    \"updatedAt\": \"1991-08-16T13:02:28.503Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3983\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4200c34b-2dcd-4aec-be6d-9c73e4d7232d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"createdBy\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9d7c487d-628e-457d-b8c9-022fd75737ab",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"projectType\": \"<string,null>\",\n  \"createdBy\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7a8d9e0e-bde4-49d7-8b13-950a34b9b5de",
          "name": "Delete project template",
          "request": {
            "name": "Delete project template",
            "description": {},
            "url": {
              "path": [
                "project-templates",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "036787c9-926a-4317-87c0-b353f2879314",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "e380287e-2e44-4189-9704-1c17a93ea328",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "project-templates",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "9daa03ec-023a-482a-8497-e6e5ad397913",
      "name": "ChangeOrders",
      "description": {
        "content": "Scope changes against a project, with approval workflow and line items.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "7a86cbf7-6f90-4da1-9e7c-badaad2df920",
          "name": "Count change orders",
          "request": {
            "name": "Count change orders",
            "description": {
              "content": "Returns the total number of change orders in the tenant matching the optional `search`, `status`, `projectId`, `dateFrom`/`dateTo` filters. Mirrors GET /change-orders minus pagination.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "change-orders",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "9c1fbd4e-deae-4c35-9b76-ee6cc27cf122",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "beb17db5-bd20-40b6-82a4-3226542a9fe3",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "cb5c80c5-939e-4745-8c31-85e1ea1e96c0",
          "name": "Aggregate change order totals and breakdown by status",
          "request": {
            "name": "Aggregate change order totals and breakdown by status",
            "description": {
              "content": "Returns flat totals (count, total_amount) plus a breakdown by status (draft / submitted / approved / rejected / void). Money values are decimal strings. Filters on createdAt for date range.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "change-orders",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "87d61a4e-713f-4c1a-8567-fc94c0735468",
              "name": "Change order summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"totals\": {\n      \"count\": 525,\n      \"total_amount\": \"string\"\n    },\n    \"by_status\": [\n      {\n        \"status\": \"string\",\n        \"count\": 7642,\n        \"total_amount\": \"string\"\n      },\n      {\n        \"status\": \"string\",\n        \"count\": 8596,\n        \"total_amount\": \"string\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 5507\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cd0f75ae-0b9a-40e3-abe5-eb8adfa0e95b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "999c548c-2249-4f2a-bb37-e67c37200962",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c32f5777-12a3-46fa-bfb6-39c8346e99b8",
          "name": "Bulk-fetch change orders by ID",
          "request": {
            "name": "Bulk-fetch change orders by ID",
            "description": {
              "content": "Fetch up to 50 change orders by ID in a single round-trip. Returns flat rows only (no items / project / creator). IDs that don't exist are silently omitted.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "change-orders",
                "get-many"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "21534c32-188a-4887-8a96-e4b7f321f8e4",
              "name": "ChangeOrders",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 5893,\n      \"changeOrderNumber\": \"string\",\n      \"projectId\": 5449,\n      \"title\": \"string\",\n      \"description\": \"string\",\n      \"status\": \"string\",\n      \"reason\": \"string\",\n      \"totalAmount\": \"string\",\n      \"approvedAt\": \"1960-05-18T04:49:29.611Z\",\n      \"approvedBy\": \"string\",\n      \"rejectedAt\": \"2021-11-02T19:36:55.843Z\",\n      \"rejectionReason\": \"string\",\n      \"createdAt\": \"2007-08-29T07:04:57.765Z\",\n      \"updatedAt\": \"1952-03-29T22:02:15.228Z\"\n    },\n    {\n      \"id\": 6966,\n      \"changeOrderNumber\": \"string\",\n      \"projectId\": 1581,\n      \"title\": \"string\",\n      \"description\": \"string\",\n      \"status\": \"string\",\n      \"reason\": \"string\",\n      \"totalAmount\": \"string\",\n      \"approvedAt\": \"2005-10-26T10:05:00.226Z\",\n      \"approvedBy\": \"string\",\n      \"rejectedAt\": \"2023-10-20T04:57:05.961Z\",\n      \"rejectionReason\": \"string\",\n      \"createdAt\": \"2010-10-02T16:43:11.225Z\",\n      \"updatedAt\": \"1967-12-28T13:23:43.584Z\"\n    }\n  ],\n  \"meta\": {\n    \"requested\": 2637,\n    \"returned\": 7344,\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"has_more\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"count\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1f8e6c0b-0355-4c26-a401-15f6ad36598a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a3278b73-586d-4c20-8a7d-b267bba7a4eb",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bee4b8e3-7535-49e5-97cc-3f6dacc96a34",
          "name": "List change orders",
          "request": {
            "name": "List change orders",
            "description": {
              "content": "Returns a cursor-paginated list of change orders.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "change-orders"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "2d6797f7-f968-456e-a46b-0ccf1cc25cbc",
              "name": "ChangeOrders page",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7947,\n      \"changeOrderNumber\": \"string\",\n      \"projectId\": 6352,\n      \"title\": \"string\",\n      \"description\": \"string\",\n      \"status\": \"string\",\n      \"reason\": \"string\",\n      \"totalAmount\": \"string\",\n      \"approvedAt\": \"1972-01-26T06:57:41.501Z\",\n      \"approvedBy\": \"string\",\n      \"rejectedAt\": \"1995-02-28T12:11:57.802Z\",\n      \"rejectionReason\": \"string\",\n      \"createdAt\": \"1953-03-09T02:49:48.853Z\",\n      \"updatedAt\": \"1973-10-25T23:37:20.071Z\"\n    },\n    {\n      \"id\": 7686,\n      \"changeOrderNumber\": \"string\",\n      \"projectId\": 5480,\n      \"title\": \"string\",\n      \"description\": \"string\",\n      \"status\": \"string\",\n      \"reason\": \"string\",\n      \"totalAmount\": \"string\",\n      \"approvedAt\": \"2009-01-21T11:43:22.596Z\",\n      \"approvedBy\": \"string\",\n      \"rejectedAt\": \"1964-06-23T06:09:57.371Z\",\n      \"rejectionReason\": \"string\",\n      \"createdAt\": \"1967-12-21T09:30:50.638Z\",\n      \"updatedAt\": \"1954-11-26T12:29:28.125Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3445\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "292d6ad1-364c-4836-9eb1-d9f50b2b0366",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8f8189bf-7d4e-4409-8beb-aee6064bd5fb",
          "name": "Create change order",
          "request": {
            "name": "Create change order",
            "description": {},
            "url": {
              "path": [
                "change-orders"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"projectId\": \"<integer>\",\n  \"title\": \"<string>\",\n  \"reason\": \"<string>\",\n  \"changeOrderNumber\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "73c2c327-3def-429f-aa08-922298c6706d",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"title\": \"<string>\",\n  \"reason\": \"<string>\",\n  \"changeOrderNumber\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7670,\n    \"changeOrderNumber\": \"string\",\n    \"projectId\": 8308,\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"status\": \"string\",\n    \"reason\": \"string\",\n    \"totalAmount\": \"string\",\n    \"approvedAt\": \"1971-03-27T13:21:01.647Z\",\n    \"approvedBy\": \"string\",\n    \"rejectedAt\": \"2021-09-19T05:07:41.082Z\",\n    \"rejectionReason\": \"string\",\n    \"createdAt\": \"1992-10-22T13:17:05.371Z\",\n    \"updatedAt\": \"1962-08-23T14:20:41.756Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8845\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ab3dee3-dec5-4ae9-9106-5819c53e65ac",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"title\": \"<string>\",\n  \"reason\": \"<string>\",\n  \"changeOrderNumber\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8465339d-60b1-4baf-941b-3b4dfe5b712c",
          "name": "Get change order by id",
          "request": {
            "name": "Get change order by id",
            "description": {},
            "url": {
              "path": [
                "change-orders",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "d60955f4-459c-4a70-96aa-449ebfadbfa5",
              "name": "ChangeOrder",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7670,\n    \"changeOrderNumber\": \"string\",\n    \"projectId\": 8308,\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"status\": \"string\",\n    \"reason\": \"string\",\n    \"totalAmount\": \"string\",\n    \"approvedAt\": \"1971-03-27T13:21:01.647Z\",\n    \"approvedBy\": \"string\",\n    \"rejectedAt\": \"2021-09-19T05:07:41.082Z\",\n    \"rejectionReason\": \"string\",\n    \"createdAt\": \"1992-10-22T13:17:05.371Z\",\n    \"updatedAt\": \"1962-08-23T14:20:41.756Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8845\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "107a4ee9-72a3-445c-9003-c0c76f433cea",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "823782c6-1167-4792-801c-450dbb378c96",
          "name": "Update draft change order",
          "request": {
            "name": "Update draft change order",
            "description": {},
            "url": {
              "path": [
                "change-orders",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"changeOrderNumber\": \"<string>\",\n  \"title\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"reason\": \"<string>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "05afd295-77b6-41bc-a4d2-b93cd0bd482e",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"changeOrderNumber\": \"<string>\",\n  \"title\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"reason\": \"<string>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7670,\n    \"changeOrderNumber\": \"string\",\n    \"projectId\": 8308,\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"status\": \"string\",\n    \"reason\": \"string\",\n    \"totalAmount\": \"string\",\n    \"approvedAt\": \"1971-03-27T13:21:01.647Z\",\n    \"approvedBy\": \"string\",\n    \"rejectedAt\": \"2021-09-19T05:07:41.082Z\",\n    \"rejectionReason\": \"string\",\n    \"createdAt\": \"1992-10-22T13:17:05.371Z\",\n    \"updatedAt\": \"1962-08-23T14:20:41.756Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8845\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9f8c9ce3-d660-499a-9054-86782d3ff9b6",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"changeOrderNumber\": \"<string>\",\n  \"title\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"reason\": \"<string>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d8cb6edc-8ab4-41cd-9f3d-a8eb2ec08fca",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"changeOrderNumber\": \"<string>\",\n  \"title\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"reason\": \"<string>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a4fd619f-abed-491f-8f78-e0632146a4a0",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"changeOrderNumber\": \"<string>\",\n  \"title\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"reason\": \"<string>\",\n  \"roundSalesAmounts\": \"<boolean,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a1461b89-8329-4f8c-a550-e22c03e69d9e",
          "name": "Delete change order",
          "request": {
            "name": "Delete change order",
            "description": {},
            "url": {
              "path": [
                "change-orders",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "421ed35e-268f-400d-bd9f-fac80afc4b48",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "346fe964-17ec-44a9-a204-001235cf8a40",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "62e466b4-85ad-4194-8775-fe83dfbaa5f8",
          "name": "Submit change order for approval",
          "request": {
            "name": "Submit change order for approval",
            "description": {},
            "url": {
              "path": [
                "change-orders",
                ":id",
                "submit"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "a20c7636-f914-4f5d-903d-f9421d723b1a",
              "name": "Submitted",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "submit"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7670,\n    \"changeOrderNumber\": \"string\",\n    \"projectId\": 8308,\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"status\": \"string\",\n    \"reason\": \"string\",\n    \"totalAmount\": \"string\",\n    \"approvedAt\": \"1971-03-27T13:21:01.647Z\",\n    \"approvedBy\": \"string\",\n    \"rejectedAt\": \"2021-09-19T05:07:41.082Z\",\n    \"rejectionReason\": \"string\",\n    \"createdAt\": \"1992-10-22T13:17:05.371Z\",\n    \"updatedAt\": \"1962-08-23T14:20:41.756Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8845\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "70eb9d23-32ca-48bf-9264-7b15a914fcf7",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "submit"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd5e9354-af3c-4483-a732-4d0cfd332131",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "submit"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "22ee60a5-5bd4-4dbe-b92a-ff4a34d90147",
          "name": "Approve change order",
          "request": {
            "name": "Approve change order",
            "description": {},
            "url": {
              "path": [
                "change-orders",
                ":id",
                "approve"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"approvedBy\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5ff87d02-367a-41b0-b2d5-b75e80c0a07e",
              "name": "Approved",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "approve"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"approvedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7670,\n    \"changeOrderNumber\": \"string\",\n    \"projectId\": 8308,\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"status\": \"string\",\n    \"reason\": \"string\",\n    \"totalAmount\": \"string\",\n    \"approvedAt\": \"1971-03-27T13:21:01.647Z\",\n    \"approvedBy\": \"string\",\n    \"rejectedAt\": \"2021-09-19T05:07:41.082Z\",\n    \"rejectionReason\": \"string\",\n    \"createdAt\": \"1992-10-22T13:17:05.371Z\",\n    \"updatedAt\": \"1962-08-23T14:20:41.756Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8845\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fb27763c-fc87-42fe-9fbf-2bdddabd86dd",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "approve"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"approvedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d6540477-c958-492b-a051-13761c7b14ca",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "approve"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"approvedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "36eff256-e632-45bc-8891-8d3f6a03b989",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "approve"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"approvedBy\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "60b52f1b-7181-435b-8c36-ac15ffaa2332",
          "name": "Reject change order",
          "request": {
            "name": "Reject change order",
            "description": {},
            "url": {
              "path": [
                "change-orders",
                ":id",
                "reject"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "94447975-4b93-4a44-b79c-85a648b66ce4",
              "name": "Rejected",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7670,\n    \"changeOrderNumber\": \"string\",\n    \"projectId\": 8308,\n    \"title\": \"string\",\n    \"description\": \"string\",\n    \"status\": \"string\",\n    \"reason\": \"string\",\n    \"totalAmount\": \"string\",\n    \"approvedAt\": \"1971-03-27T13:21:01.647Z\",\n    \"approvedBy\": \"string\",\n    \"rejectedAt\": \"2021-09-19T05:07:41.082Z\",\n    \"rejectionReason\": \"string\",\n    \"createdAt\": \"1992-10-22T13:17:05.371Z\",\n    \"updatedAt\": \"1962-08-23T14:20:41.756Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8845\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "18fe1a9f-acd3-429e-9106-96787c21b046",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "05cf118b-8955-420f-be2e-943728087057",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ceda013-6622-4d22-9900-c4b28cd1c9d0",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6ce5a76d-4f96-4361-b24a-db7e86344042",
          "name": "Start CSV export of change orders",
          "request": {
            "name": "Start CSV export of change orders",
            "description": {
              "content": "Enqueues a CSV export job for change orders. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "change-orders",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "6bc9334c-c57f-4664-b8b3-25b82979e552",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "211c7dc0-0bd3-403e-9ba1-cf78adc2156a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "fd5d99b8-0d9c-400f-aed0-b18c440162a0",
          "name": "Start bulk operation on change orders",
          "request": {
            "name": "Start bulk operation on change orders",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 change order ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "change-orders",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "c770b64e-3cad-4726-853d-6dd924324d65",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "144ab1cb-9a64-4971-807f-6fed77b8f154",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "894984ad-c5ba-47d3-82e2-5360b84ae495",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "20161299-2d16-4575-b0b4-0463d206d7ce",
          "name": "Generate PDF for a change order (async)",
          "request": {
            "name": "Generate PDF for a change order (async)",
            "description": {
              "content": "Enqueues an async PDF generation job. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "change-orders",
                ":id",
                "pdf"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "7dc8db9a-df0f-47e5-8977-512ec083db46",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e25eb067-2692-482b-b990-c4e355a4d7f6",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e74bc1f9-1646-4219-9bed-cb140eb19539",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "change-orders",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "bfcb443a-8e96-4cbe-8d05-dcd8d8439f63",
      "name": "PayApps",
      "description": {
        "content": "AIA-style payment applications: schedule of values, retainage and approval.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "2f4e4dec-66a8-4f63-b398-290403381235",
          "name": "Count pay applications",
          "request": {
            "name": "Count pay applications",
            "description": {
              "content": "Returns the total number of pay apps in the tenant matching the optional `search`, `status`, `projectId`, `dateFrom`/`dateTo` filters. Mirrors GET /pay-apps minus pagination.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "pay-apps",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "3b5f0419-b84e-438a-a738-55fdb3834691",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d9ffaf48-659e-4ad9-b39b-ec2c164b2bde",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bc519ce9-6232-4143-a2aa-46bcd8573582",
          "name": "Aggregate pay-app totals and breakdown by status",
          "request": {
            "name": "Aggregate pay-app totals and breakdown by status",
            "description": {
              "content": "Returns totals (count, invoiced_total, paid_total, outstanding_total) plus a breakdown by status. Money values are decimal strings. Date filter applies to submittedAt.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "pay-apps",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "512f4e8e-83bb-4fde-9981-b72c56e31759",
              "name": "Pay-app summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"totals\": {\n      \"count\": 7834,\n      \"invoiced_total\": \"string\",\n      \"paid_total\": \"string\",\n      \"outstanding_total\": \"string\"\n    },\n    \"by_status\": [\n      {\n        \"status\": \"string\",\n        \"count\": 4759,\n        \"current_billed_total\": \"string\"\n      },\n      {\n        \"status\": \"string\",\n        \"count\": 2015,\n        \"current_billed_total\": \"string\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 3261\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d94cad60-3d8f-49e4-ba63-a9c3685a2800",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5fd9aeea-f0ce-4365-a809-55c74c220005",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b7832e35-a87e-49d2-bc5e-77b2f0b9d868",
          "name": "Bulk-fetch pay apps by ID",
          "request": {
            "name": "Bulk-fetch pay apps by ID",
            "description": {
              "content": "Fetch up to 50 pay apps by ID in a single round-trip. Returns flat rows only (no line items / project / approver). IDs that don't exist are silently omitted.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "pay-apps",
                "get-many"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "e134829c-8d72-49cd-ab27-cf2d53cdc34d",
              "name": "PayApps",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7631,\n      \"payAppNumber\": \"string\",\n      \"projectId\": 7134,\n      \"status\": \"string\",\n      \"periodStart\": \"2000-02-20T05:31:22.164Z\",\n      \"periodEnd\": \"2015-09-29T10:44:00.981Z\",\n      \"contractSum\": \"string\",\n      \"changeOrdersTotal\": \"string\",\n      \"revisedContractSum\": \"string\",\n      \"previouslyBilled\": \"string\",\n      \"currentBilled\": \"string\",\n      \"materialsStored\": \"string\",\n      \"totalCompleted\": \"string\",\n      \"retainagePercent\": \"string\",\n      \"retainageAmount\": \"string\",\n      \"currentPaymentDue\": \"string\",\n      \"createdAt\": \"2013-09-29T19:32:13.048Z\",\n      \"updatedAt\": \"2010-07-24T09:48:58.520Z\"\n    },\n    {\n      \"id\": 2564,\n      \"payAppNumber\": \"string\",\n      \"projectId\": 84,\n      \"status\": \"string\",\n      \"periodStart\": \"2010-04-13T19:16:47.929Z\",\n      \"periodEnd\": \"1962-04-12T08:44:37.007Z\",\n      \"contractSum\": \"string\",\n      \"changeOrdersTotal\": \"string\",\n      \"revisedContractSum\": \"string\",\n      \"previouslyBilled\": \"string\",\n      \"currentBilled\": \"string\",\n      \"materialsStored\": \"string\",\n      \"totalCompleted\": \"string\",\n      \"retainagePercent\": \"string\",\n      \"retainageAmount\": \"string\",\n      \"currentPaymentDue\": \"string\",\n      \"createdAt\": \"2003-04-25T21:12:10.228Z\",\n      \"updatedAt\": \"1977-02-06T16:36:38.955Z\"\n    }\n  ],\n  \"meta\": {\n    \"requested\": 9384,\n    \"returned\": 8404,\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"has_more\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"count\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dfa59f21-d70c-439e-9717-926d8fd4a4d8",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "721b5d58-c385-4cd2-a96a-01c582721491",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "345f8e86-0cff-4f41-9e8d-c68c1d7ca39e",
          "name": "List pay applications",
          "request": {
            "name": "List pay applications",
            "description": {
              "content": "Returns a cursor-paginated list of pay apps for the authenticated tenant.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "pay-apps"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8ec2cf21-281e-4993-9b0a-9a47c2da4efd",
              "name": "PayApps page",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 3163,\n      \"payAppNumber\": \"string\",\n      \"projectId\": 3119,\n      \"status\": \"string\",\n      \"periodStart\": \"1985-02-17T08:46:20.263Z\",\n      \"periodEnd\": \"1977-05-17T10:17:16.283Z\",\n      \"contractSum\": \"string\",\n      \"changeOrdersTotal\": \"string\",\n      \"revisedContractSum\": \"string\",\n      \"previouslyBilled\": \"string\",\n      \"currentBilled\": \"string\",\n      \"materialsStored\": \"string\",\n      \"totalCompleted\": \"string\",\n      \"retainagePercent\": \"string\",\n      \"retainageAmount\": \"string\",\n      \"currentPaymentDue\": \"string\",\n      \"createdAt\": \"2009-11-28T18:20:43.289Z\",\n      \"updatedAt\": \"1981-08-09T16:37:03.956Z\"\n    },\n    {\n      \"id\": 7312,\n      \"payAppNumber\": \"string\",\n      \"projectId\": 6346,\n      \"status\": \"string\",\n      \"periodStart\": \"1973-04-06T13:01:17.269Z\",\n      \"periodEnd\": \"2015-02-03T08:01:40.790Z\",\n      \"contractSum\": \"string\",\n      \"changeOrdersTotal\": \"string\",\n      \"revisedContractSum\": \"string\",\n      \"previouslyBilled\": \"string\",\n      \"currentBilled\": \"string\",\n      \"materialsStored\": \"string\",\n      \"totalCompleted\": \"string\",\n      \"retainagePercent\": \"string\",\n      \"retainageAmount\": \"string\",\n      \"currentPaymentDue\": \"string\",\n      \"createdAt\": \"1973-05-10T12:36:26.645Z\",\n      \"updatedAt\": \"1968-01-30T06:32:01.368Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9359\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3d861f70-a6f4-4401-b3a8-76d50e30d200",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "efc7ccb2-ac14-467e-8a63-685b017350f8",
          "name": "Create pay application (draft)",
          "request": {
            "name": "Create pay application (draft)",
            "description": {},
            "url": {
              "path": [
                "pay-apps"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"projectId\": \"<integer>\",\n  \"payAppNumber\": \"<string>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "d38ae6a7-b0d3-4ca0-a300-23aa4f98cd64",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"payAppNumber\": \"<string>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2233,\n    \"payAppNumber\": \"string\",\n    \"projectId\": 9190,\n    \"status\": \"string\",\n    \"periodStart\": \"2013-08-25T15:42:17.912Z\",\n    \"periodEnd\": \"1962-07-09T03:26:42.205Z\",\n    \"contractSum\": \"string\",\n    \"changeOrdersTotal\": \"string\",\n    \"revisedContractSum\": \"string\",\n    \"previouslyBilled\": \"string\",\n    \"currentBilled\": \"string\",\n    \"materialsStored\": \"string\",\n    \"totalCompleted\": \"string\",\n    \"retainagePercent\": \"string\",\n    \"retainageAmount\": \"string\",\n    \"currentPaymentDue\": \"string\",\n    \"createdAt\": \"2025-06-18T17:25:31.685Z\",\n    \"updatedAt\": \"2003-05-05T22:47:31.822Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1889\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7fbb3172-908b-4cf9-9333-f417c705ef57",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"payAppNumber\": \"<string>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "defd7116-d2c0-40e5-9a5b-b9c41ac7c26a",
          "name": "Get pay application by id",
          "request": {
            "name": "Get pay application by id",
            "description": {},
            "url": {
              "path": [
                "pay-apps",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "d22ab7b0-4d66-4148-a8ab-dfa4aa52e1a9",
              "name": "PayApp",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2233,\n    \"payAppNumber\": \"string\",\n    \"projectId\": 9190,\n    \"status\": \"string\",\n    \"periodStart\": \"2013-08-25T15:42:17.912Z\",\n    \"periodEnd\": \"1962-07-09T03:26:42.205Z\",\n    \"contractSum\": \"string\",\n    \"changeOrdersTotal\": \"string\",\n    \"revisedContractSum\": \"string\",\n    \"previouslyBilled\": \"string\",\n    \"currentBilled\": \"string\",\n    \"materialsStored\": \"string\",\n    \"totalCompleted\": \"string\",\n    \"retainagePercent\": \"string\",\n    \"retainageAmount\": \"string\",\n    \"currentPaymentDue\": \"string\",\n    \"createdAt\": \"2025-06-18T17:25:31.685Z\",\n    \"updatedAt\": \"2003-05-05T22:47:31.822Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1889\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "69e652aa-5d2c-47bc-8bab-c5b26e7a52f3",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "500dd103-e18f-4529-bea7-694aceb36fa3",
          "name": "Update draft pay application",
          "request": {
            "name": "Update draft pay application",
            "description": {},
            "url": {
              "path": [
                "pay-apps",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"payAppNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "dea00305-82b1-45cf-a229-d1d504dddd09",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2233,\n    \"payAppNumber\": \"string\",\n    \"projectId\": 9190,\n    \"status\": \"string\",\n    \"periodStart\": \"2013-08-25T15:42:17.912Z\",\n    \"periodEnd\": \"1962-07-09T03:26:42.205Z\",\n    \"contractSum\": \"string\",\n    \"changeOrdersTotal\": \"string\",\n    \"revisedContractSum\": \"string\",\n    \"previouslyBilled\": \"string\",\n    \"currentBilled\": \"string\",\n    \"materialsStored\": \"string\",\n    \"totalCompleted\": \"string\",\n    \"retainagePercent\": \"string\",\n    \"retainageAmount\": \"string\",\n    \"currentPaymentDue\": \"string\",\n    \"createdAt\": \"2025-06-18T17:25:31.685Z\",\n    \"updatedAt\": \"2003-05-05T22:47:31.822Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1889\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c81c86a1-d84d-4246-9b33-1418e7aeab8a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3c33eb21-b948-4f02-adf9-99216b9dc080",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b633fab7-a1f3-4828-bb53-1ab25a76c422",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"periodStart\": \"<string,null>\",\n  \"periodEnd\": \"<string,null>\",\n  \"contractSum\": \"<string,null>\",\n  \"changeOrdersTotal\": \"<string,null>\",\n  \"retainagePercent\": \"<string,null>\",\n  \"changeOrders\": \"<string>\",\n  \"voidedBy\": \"<integer,null>\",\n  \"voidedAt\": \"<string,null>\",\n  \"voidReason\": \"<string,null>\",\n  \"sentAt\": \"<string,null>\",\n  \"sentBy\": \"<integer,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d8f3b7fb-dec6-4020-9b4e-c060fd464e90",
          "name": "Delete draft pay application",
          "request": {
            "name": "Delete draft pay application",
            "description": {},
            "url": {
              "path": [
                "pay-apps",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "d840c287-51da-42ef-b0c0-0965f5ef9cc8",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "e72f01bb-d024-4614-b9d1-318a4656522e",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "46dba1f0-79e8-46d7-99da-ec53977828d2",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b175d66e-c63e-4650-afc0-79cfac3f3654",
          "name": "Submit pay app for approval",
          "request": {
            "name": "Submit pay app for approval",
            "description": {},
            "url": {
              "path": [
                "pay-apps",
                ":id",
                "submit"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "c3b3c9d7-d927-417c-aa87-81e905c30b38",
              "name": "Submitted",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "submit"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2233,\n    \"payAppNumber\": \"string\",\n    \"projectId\": 9190,\n    \"status\": \"string\",\n    \"periodStart\": \"2013-08-25T15:42:17.912Z\",\n    \"periodEnd\": \"1962-07-09T03:26:42.205Z\",\n    \"contractSum\": \"string\",\n    \"changeOrdersTotal\": \"string\",\n    \"revisedContractSum\": \"string\",\n    \"previouslyBilled\": \"string\",\n    \"currentBilled\": \"string\",\n    \"materialsStored\": \"string\",\n    \"totalCompleted\": \"string\",\n    \"retainagePercent\": \"string\",\n    \"retainageAmount\": \"string\",\n    \"currentPaymentDue\": \"string\",\n    \"createdAt\": \"2025-06-18T17:25:31.685Z\",\n    \"updatedAt\": \"2003-05-05T22:47:31.822Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1889\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ae426cf2-31a6-4fc0-a2c2-98b2eb7b64c1",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "submit"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ec9ac0ce-3d9a-45ae-ab18-77222be30d5c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "submit"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5ba81d68-b1e4-4df4-8be0-ebd183471df4",
          "name": "Approve pay application",
          "request": {
            "name": "Approve pay application",
            "description": {},
            "url": {
              "path": [
                "pay-apps",
                ":id",
                "approve"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "badfe773-ec07-4676-b4b1-d3ba2eec4115",
              "name": "Approved",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "approve"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2233,\n    \"payAppNumber\": \"string\",\n    \"projectId\": 9190,\n    \"status\": \"string\",\n    \"periodStart\": \"2013-08-25T15:42:17.912Z\",\n    \"periodEnd\": \"1962-07-09T03:26:42.205Z\",\n    \"contractSum\": \"string\",\n    \"changeOrdersTotal\": \"string\",\n    \"revisedContractSum\": \"string\",\n    \"previouslyBilled\": \"string\",\n    \"currentBilled\": \"string\",\n    \"materialsStored\": \"string\",\n    \"totalCompleted\": \"string\",\n    \"retainagePercent\": \"string\",\n    \"retainageAmount\": \"string\",\n    \"currentPaymentDue\": \"string\",\n    \"createdAt\": \"2025-06-18T17:25:31.685Z\",\n    \"updatedAt\": \"2003-05-05T22:47:31.822Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1889\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c717b54-9c0f-4ff3-94fe-d25d3f377814",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "approve"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "853f992d-b9e0-4e3d-b58d-ef80ae1468c4",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "approve"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "415eb66c-c99e-437d-bc08-e60833f16da3",
          "name": "Reject pay application",
          "request": {
            "name": "Reject pay application",
            "description": {},
            "url": {
              "path": [
                "pay-apps",
                ":id",
                "reject"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "fc79527f-d089-412f-a5ef-d64000acad12",
              "name": "Rejected",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2233,\n    \"payAppNumber\": \"string\",\n    \"projectId\": 9190,\n    \"status\": \"string\",\n    \"periodStart\": \"2013-08-25T15:42:17.912Z\",\n    \"periodEnd\": \"1962-07-09T03:26:42.205Z\",\n    \"contractSum\": \"string\",\n    \"changeOrdersTotal\": \"string\",\n    \"revisedContractSum\": \"string\",\n    \"previouslyBilled\": \"string\",\n    \"currentBilled\": \"string\",\n    \"materialsStored\": \"string\",\n    \"totalCompleted\": \"string\",\n    \"retainagePercent\": \"string\",\n    \"retainageAmount\": \"string\",\n    \"currentPaymentDue\": \"string\",\n    \"createdAt\": \"2025-06-18T17:25:31.685Z\",\n    \"updatedAt\": \"2003-05-05T22:47:31.822Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1889\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "20f772f2-201b-4f07-9dc5-13b0c6848fc7",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ddf6325e-14fc-47c5-aa99-b9efc7403f3b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "reject"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "100cc8cf-318e-4c2a-825e-3262d68147c3",
          "name": "Mark approved pay app as paid",
          "request": {
            "name": "Mark approved pay app as paid",
            "description": {},
            "url": {
              "path": [
                "pay-apps",
                ":id",
                "mark-paid"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "25cb63f1-19d6-4a00-bd79-a89f358bcfd4",
              "name": "Paid",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "mark-paid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2233,\n    \"payAppNumber\": \"string\",\n    \"projectId\": 9190,\n    \"status\": \"string\",\n    \"periodStart\": \"2013-08-25T15:42:17.912Z\",\n    \"periodEnd\": \"1962-07-09T03:26:42.205Z\",\n    \"contractSum\": \"string\",\n    \"changeOrdersTotal\": \"string\",\n    \"revisedContractSum\": \"string\",\n    \"previouslyBilled\": \"string\",\n    \"currentBilled\": \"string\",\n    \"materialsStored\": \"string\",\n    \"totalCompleted\": \"string\",\n    \"retainagePercent\": \"string\",\n    \"retainageAmount\": \"string\",\n    \"currentPaymentDue\": \"string\",\n    \"createdAt\": \"2025-06-18T17:25:31.685Z\",\n    \"updatedAt\": \"2003-05-05T22:47:31.822Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1889\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4f055e21-dc31-464a-9c0c-0fd965d08f10",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "mark-paid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "59c57ae0-b386-483c-b4a5-903d9d51bdcf",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "mark-paid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8abec1a5-0f28-4e41-9555-394fb3cf4f88",
          "name": "Start CSV export of pay applications",
          "request": {
            "name": "Start CSV export of pay applications",
            "description": {
              "content": "Enqueues a CSV export job for pay apps. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "pay-apps",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "13bec3f8-13c0-4cc8-878b-e9997fc6dd2b",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "df6991e1-d94a-41b0-85d4-2918d13844f5",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "eef7ba9a-fc0a-4e48-a77e-85a68432d8fd",
          "name": "Start bulk operation on pay applications",
          "request": {
            "name": "Start bulk operation on pay applications",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 pay app ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "pay-apps",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "61f57443-4298-4a56-9480-e2b9c2726a0f",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4d80a027-d401-4fb4-a03f-df45824a859b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5b949192-a325-4b6a-b5b3-88f064aa82cb",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8c5dcf3c-2f40-4d3a-bbe8-74d49e627e4b",
          "name": "Generate PDF for a pay application (async)",
          "request": {
            "name": "Generate PDF for a pay application (async)",
            "description": {
              "content": "Enqueues an async PDF generation job. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "pay-apps",
                ":id",
                "pdf"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "ee8d22f7-6e59-4ca5-9762-f8f4081055a7",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f1d9c91a-ad8d-45b1-a671-e87a10bd0de3",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3c3a5276-a97b-4d24-b442-b6f24fee71e3",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "pay-apps",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "5d7d1aa4-bf87-4d5d-953f-be1a174f252f",
      "name": "Invoices",
      "description": {
        "content": "Accounts receivable: invoices, line items, payments, sending and voiding.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "bf4a902f-8669-441b-9bf4-77730695a1b1",
          "name": "List invoices",
          "request": {
            "name": "List invoices",
            "description": {
              "content": "Returns a page of invoices for the authenticated tenant. This is the one v1 list endpoint that pages by `page`/`pageSize` rather than a cursor — the tenant UI's invoice table jumps to arbitrary pages, and that shape is mirrored here rather than reshaped. Page details are returned in `meta.pagination`. `status` accepts a comma-separated list.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "page",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "pageSize",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "contactId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "dueBefore",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dueAfter",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "q",
                  "value": "<string>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "bd895c43-2f7b-49b7-a5c5-675f1520dd7e",
              "name": "Invoice page",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "<integer>"
                    },
                    {
                      "key": "pageSize",
                      "value": "<integer>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dueBefore",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dueAfter",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "q",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7979,\n      \"tenantId\": 4040,\n      \"invoiceNumber\": \"string\",\n      \"projectId\": 7673,\n      \"contactId\": 1364,\n      \"status\": \"voided\",\n      \"issueDate\": \"1968-08-26T19:43:13.862Z\",\n      \"dueDate\": \"1970-01-24T14:44:52.499Z\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"amountPaid\": \"string\",\n      \"balanceDue\": \"string\",\n      \"notesToCustomer\": \"string\",\n      \"createdAt\": \"2021-03-23T06:29:59.208Z\",\n      \"updatedAt\": \"1963-11-09T03:48:41.027Z\"\n    },\n    {\n      \"id\": 279,\n      \"tenantId\": 1122,\n      \"invoiceNumber\": \"string\",\n      \"projectId\": 6688,\n      \"contactId\": 7618,\n      \"status\": \"sent\",\n      \"issueDate\": \"1981-10-15T08:09:26.488Z\",\n      \"dueDate\": \"2015-08-22T10:28:10.413Z\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"amountPaid\": \"string\",\n      \"balanceDue\": \"string\",\n      \"notesToCustomer\": \"string\",\n      \"createdAt\": \"1982-09-13T20:45:59.300Z\",\n      \"updatedAt\": \"1996-01-26T03:34:57.656Z\"\n    }\n  ],\n  \"meta\": {\n    \"pagination\": {\n      \"count\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"cursor\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"has_more\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"page\": 692,\n      \"pageSize\": 9022,\n      \"total\": 2481\n    },\n    \"request_id\": \"string\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7034b459-0c55-4065-9964-87a72bda2e00",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "<integer>"
                    },
                    {
                      "key": "pageSize",
                      "value": "<integer>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dueBefore",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dueAfter",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "q",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6372fe93-19a3-48ff-8777-1b5a532c1bba",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "<integer>"
                    },
                    {
                      "key": "pageSize",
                      "value": "<integer>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "contactId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dueBefore",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dueAfter",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "q",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "504eb9a0-f7cc-451c-b184-4317a45e13b5",
          "name": "Create an invoice",
          "request": {
            "name": "Create an invoice",
            "description": {
              "content": "Creates a draft invoice together with its line items.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"invoice\": {\n    \"projectId\": \"<integer>\",\n    \"contactId\": \"<integer>\",\n    \"issueDate\": \"<string,null>\",\n    \"invoiceNumber\": \"<string>\",\n    \"sourceBidId\": \"<integer,null>\",\n    \"sourcePayAppId\": \"<integer,null>\",\n    \"sourceType\": \"<string>\",\n    \"dueDate\": \"<string,null>\",\n    \"taxRate\": \"<string>\",\n    \"discountType\": \"<string>\",\n    \"discount\": \"<string>\",\n    \"notesToCustomer\": \"<string,null>\",\n    \"terms\": \"<string,null>\",\n    \"paymentTermsText\": \"<string,null>\",\n    \"paymentTermId\": \"<integer,null>\",\n    \"paymentTermInstallmentId\": \"<integer,null>\",\n    \"percentOfBid\": \"<string,null>\"\n  },\n  \"lines\": [\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    },\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "300b4dbb-311f-4a68-bb3b-4e64e7b3f1a2",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"invoice\": {\n    \"projectId\": \"<integer>\",\n    \"contactId\": \"<integer>\",\n    \"issueDate\": \"<string,null>\",\n    \"invoiceNumber\": \"<string>\",\n    \"sourceBidId\": \"<integer,null>\",\n    \"sourcePayAppId\": \"<integer,null>\",\n    \"sourceType\": \"<string>\",\n    \"dueDate\": \"<string,null>\",\n    \"taxRate\": \"<string>\",\n    \"discountType\": \"<string>\",\n    \"discount\": \"<string>\",\n    \"notesToCustomer\": \"<string,null>\",\n    \"terms\": \"<string,null>\",\n    \"paymentTermsText\": \"<string,null>\",\n    \"paymentTermId\": \"<integer,null>\",\n    \"paymentTermInstallmentId\": \"<integer,null>\",\n    \"percentOfBid\": \"<string,null>\"\n  },\n  \"lines\": [\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    },\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6709,\n    \"tenantId\": 705,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5417,\n    \"contactId\": 5623,\n    \"status\": \"sent\",\n    \"issueDate\": \"1964-07-17T17:24:54.402Z\",\n    \"dueDate\": \"1962-05-20T21:11:40.421Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2015-05-23T23:42:04.990Z\",\n    \"updatedAt\": \"1969-11-19T21:39:46.176Z\",\n    \"lineItems\": [\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      },\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 7402\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5a7dafc2-1c50-4973-af6f-abcf48c4843d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"invoice\": {\n    \"projectId\": \"<integer>\",\n    \"contactId\": \"<integer>\",\n    \"issueDate\": \"<string,null>\",\n    \"invoiceNumber\": \"<string>\",\n    \"sourceBidId\": \"<integer,null>\",\n    \"sourcePayAppId\": \"<integer,null>\",\n    \"sourceType\": \"<string>\",\n    \"dueDate\": \"<string,null>\",\n    \"taxRate\": \"<string>\",\n    \"discountType\": \"<string>\",\n    \"discount\": \"<string>\",\n    \"notesToCustomer\": \"<string,null>\",\n    \"terms\": \"<string,null>\",\n    \"paymentTermsText\": \"<string,null>\",\n    \"paymentTermId\": \"<integer,null>\",\n    \"paymentTermInstallmentId\": \"<integer,null>\",\n    \"percentOfBid\": \"<string,null>\"\n  },\n  \"lines\": [\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    },\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c105603c-d7d8-447c-8bd6-55a3fc16182f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"invoice\": {\n    \"projectId\": \"<integer>\",\n    \"contactId\": \"<integer>\",\n    \"issueDate\": \"<string,null>\",\n    \"invoiceNumber\": \"<string>\",\n    \"sourceBidId\": \"<integer,null>\",\n    \"sourcePayAppId\": \"<integer,null>\",\n    \"sourceType\": \"<string>\",\n    \"dueDate\": \"<string,null>\",\n    \"taxRate\": \"<string>\",\n    \"discountType\": \"<string>\",\n    \"discount\": \"<string>\",\n    \"notesToCustomer\": \"<string,null>\",\n    \"terms\": \"<string,null>\",\n    \"paymentTermsText\": \"<string,null>\",\n    \"paymentTermId\": \"<integer,null>\",\n    \"paymentTermInstallmentId\": \"<integer,null>\",\n    \"percentOfBid\": \"<string,null>\"\n  },\n  \"lines\": [\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    },\n    {\n      \"description\": \"<string>\",\n      \"position\": \"<integer>\",\n      \"productId\": \"<integer,null>\",\n      \"quantity\": \"<string>\",\n      \"unitPrice\": \"<string>\",\n      \"isTaxable\": \"<boolean>\",\n      \"deletedAt\": \"<string,null>\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bfe9d76b-7dfb-4e41-83eb-8627a04eb963",
          "name": "Aggregate invoice totals",
          "request": {
            "name": "Aggregate invoice totals",
            "description": {
              "content": "Tenant-wide KPI summary: counts and money totals by status. Money values are decimal strings.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "1ecf3ef9-e534-4455-8daa-91a9900e6640",
              "name": "Summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1176\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e5ace319-cee7-4ae7-86b2-02f748906e03",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "65145fcf-c80a-4eed-9e9a-544cc156ce8b",
          "name": "Fetch an invoice",
          "request": {
            "name": "Fetch an invoice",
            "description": {
              "content": "Returns the invoice with its line items.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "482bbf83-63fe-4763-83b3-3d6f2a9872c1",
              "name": "Invoice",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6709,\n    \"tenantId\": 705,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5417,\n    \"contactId\": 5623,\n    \"status\": \"sent\",\n    \"issueDate\": \"1964-07-17T17:24:54.402Z\",\n    \"dueDate\": \"1962-05-20T21:11:40.421Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2015-05-23T23:42:04.990Z\",\n    \"updatedAt\": \"1969-11-19T21:39:46.176Z\",\n    \"lineItems\": [\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      },\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 7402\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "deec9823-6c90-4897-afaf-01e9a9e91842",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e5022215-2fe6-4e71-a766-19a6ab6bff8d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "787fdbaa-7e08-4455-b4fb-5b31435bf57f",
          "name": "Update a draft invoice",
          "request": {
            "name": "Update a draft invoice",
            "description": {
              "content": "Draft-only. A sent, partial, paid or voided invoice answers 409.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"invoiceNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"contactId\": \"<integer>\",\n  \"sourceBidId\": \"<integer,null>\",\n  \"sourcePayAppId\": \"<integer,null>\",\n  \"sourceType\": \"<string>\",\n  \"issueDate\": \"<string,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"taxRate\": \"<string>\",\n  \"discountType\": \"<string>\",\n  \"discount\": \"<string>\",\n  \"notesToCustomer\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"paymentTermInstallmentId\": \"<integer,null>\",\n  \"percentOfBid\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "2d52e60b-723d-4094-88b3-4d3f31ddc329",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"invoiceNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"contactId\": \"<integer>\",\n  \"sourceBidId\": \"<integer,null>\",\n  \"sourcePayAppId\": \"<integer,null>\",\n  \"sourceType\": \"<string>\",\n  \"issueDate\": \"<string,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"taxRate\": \"<string>\",\n  \"discountType\": \"<string>\",\n  \"discount\": \"<string>\",\n  \"notesToCustomer\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"paymentTermInstallmentId\": \"<integer,null>\",\n  \"percentOfBid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6709,\n    \"tenantId\": 705,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5417,\n    \"contactId\": 5623,\n    \"status\": \"sent\",\n    \"issueDate\": \"1964-07-17T17:24:54.402Z\",\n    \"dueDate\": \"1962-05-20T21:11:40.421Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2015-05-23T23:42:04.990Z\",\n    \"updatedAt\": \"1969-11-19T21:39:46.176Z\",\n    \"lineItems\": [\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      },\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 7402\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b0c73014-15ab-4f91-8d08-ca6d9e747e69",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"invoiceNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"contactId\": \"<integer>\",\n  \"sourceBidId\": \"<integer,null>\",\n  \"sourcePayAppId\": \"<integer,null>\",\n  \"sourceType\": \"<string>\",\n  \"issueDate\": \"<string,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"taxRate\": \"<string>\",\n  \"discountType\": \"<string>\",\n  \"discount\": \"<string>\",\n  \"notesToCustomer\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"paymentTermInstallmentId\": \"<integer,null>\",\n  \"percentOfBid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2b0da587-dfc5-4a66-a805-2fd3aafa0d2c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"invoiceNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"contactId\": \"<integer>\",\n  \"sourceBidId\": \"<integer,null>\",\n  \"sourcePayAppId\": \"<integer,null>\",\n  \"sourceType\": \"<string>\",\n  \"issueDate\": \"<string,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"taxRate\": \"<string>\",\n  \"discountType\": \"<string>\",\n  \"discount\": \"<string>\",\n  \"notesToCustomer\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"paymentTermInstallmentId\": \"<integer,null>\",\n  \"percentOfBid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a63d3f5b-f966-48a8-a40a-5b3289bb3664",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"invoiceNumber\": \"<string>\",\n  \"projectId\": \"<integer>\",\n  \"contactId\": \"<integer>\",\n  \"sourceBidId\": \"<integer,null>\",\n  \"sourcePayAppId\": \"<integer,null>\",\n  \"sourceType\": \"<string>\",\n  \"issueDate\": \"<string,null>\",\n  \"dueDate\": \"<string,null>\",\n  \"taxRate\": \"<string>\",\n  \"discountType\": \"<string>\",\n  \"discount\": \"<string>\",\n  \"notesToCustomer\": \"<string,null>\",\n  \"terms\": \"<string,null>\",\n  \"paymentTermsText\": \"<string,null>\",\n  \"paymentTermId\": \"<integer,null>\",\n  \"paymentTermInstallmentId\": \"<integer,null>\",\n  \"percentOfBid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6cbcc1a6-ecaf-4c70-8340-27f9f7e60615",
          "name": "Soft-delete a draft invoice",
          "request": {
            "name": "Soft-delete a draft invoice",
            "description": {
              "content": "Draft-only, and a soft delete — the row is retained with `deletedAt` set.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8472b223-0652-459d-b555-c26b8400ab78",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "740a1486-a629-4641-859b-b7c60f3bad1b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "80be3709-ab09-44a2-9683-111fc41ee8a2",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ed742c65-3916-4671-acce-6c5ce70aa325",
          "name": "Create an invoice from a bid",
          "request": {
            "name": "Create an invoice from a bid",
            "description": {
              "content": "Bills an accepted bid. `mode: full` invoices the whole contract; `percent` invoices `value` percent of it; `fixed` invoices `value` as an amount. `value` is required for `percent` and `fixed`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                "from-bid"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"bidId\": \"<integer>\",\n  \"mode\": \"<string>\",\n  \"value\": \"<number>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b3324d14-0875-44bc-840d-156579afc46b",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-bid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidId\": \"<integer>\",\n  \"mode\": \"<string>\",\n  \"value\": \"<number>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6709,\n    \"tenantId\": 705,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5417,\n    \"contactId\": 5623,\n    \"status\": \"sent\",\n    \"issueDate\": \"1964-07-17T17:24:54.402Z\",\n    \"dueDate\": \"1962-05-20T21:11:40.421Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2015-05-23T23:42:04.990Z\",\n    \"updatedAt\": \"1969-11-19T21:39:46.176Z\",\n    \"lineItems\": [\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      },\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 7402\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "10bcc78e-537e-4a94-a935-19fee3deddd0",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-bid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidId\": \"<integer>\",\n  \"mode\": \"<string>\",\n  \"value\": \"<number>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "54f26f2c-40e6-46d7-bb95-308a584f591b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-bid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidId\": \"<integer>\",\n  \"mode\": \"<string>\",\n  \"value\": \"<number>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "22eb4f27-fec2-4dfc-98f3-f7f59fcb4762",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-bid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bidId\": \"<integer>\",\n  \"mode\": \"<string>\",\n  \"value\": \"<number>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1845b2e4-60e2-4667-b840-2892d8f1db29",
          "name": "Create an invoice from an approved pay application",
          "request": {
            "name": "Create an invoice from an approved pay application",
            "description": {},
            "url": {
              "path": [
                "invoices",
                "from-pay-app"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"payAppId\": \"<integer>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "a88ed2c0-9a0d-4800-a61b-1428deca9110",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-pay-app"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppId\": \"<integer>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 6709,\n    \"tenantId\": 705,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5417,\n    \"contactId\": 5623,\n    \"status\": \"sent\",\n    \"issueDate\": \"1964-07-17T17:24:54.402Z\",\n    \"dueDate\": \"1962-05-20T21:11:40.421Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2015-05-23T23:42:04.990Z\",\n    \"updatedAt\": \"1969-11-19T21:39:46.176Z\",\n    \"lineItems\": [\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      },\n      {\n        \"id\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"invoiceId\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"description\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"quantity\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"unitPrice\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"amount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"order\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 7402\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2a2b63ae-fdc3-49ff-b859-5b7a36e4339f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-pay-app"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppId\": \"<integer>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7ff4cd3a-d9c4-4d36-86c5-28c374e6d774",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-pay-app"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppId\": \"<integer>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "58fb7fc2-318e-408c-b9fe-abdb6367e417",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    "from-pay-app"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"payAppId\": \"<integer>\",\n  \"dueDate\": \"<dateTime>\",\n  \"notesToCustomer\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "111cba52-93d0-4f81-a5c2-a249945fd292",
          "name": "Email the invoice and mark it sent",
          "request": {
            "name": "Email the invoice and mark it sent",
            "description": {
              "content": "Renders the invoice PDF, emails it, and transitions draft → sent. Omitted recipient defaults to the linked contact's email.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "send"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"recipientEmail\": \"<email>\",\n  \"ccEmails\": [\n    \"<email>\",\n    \"<email>\"\n  ],\n  \"subject\": \"<string>\",\n  \"body\": \"<string>\",\n  \"templateId\": \"<integer>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "6dc1a356-9b6d-422b-b545-ed2aa541c318",
              "name": "Sent",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "send"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"recipientEmail\": \"<email>\",\n  \"ccEmails\": [\n    \"<email>\",\n    \"<email>\"\n  ],\n  \"subject\": \"<string>\",\n  \"body\": \"<string>\",\n  \"templateId\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4136,\n    \"tenantId\": 9869,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5604,\n    \"contactId\": 8353,\n    \"status\": \"partial\",\n    \"issueDate\": \"1959-01-17T06:49:49.897Z\",\n    \"dueDate\": \"1951-02-20T06:09:10.070Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2008-09-09T00:10:52.751Z\",\n    \"updatedAt\": \"1990-07-16T12:01:24.953Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8193\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f472b8e6-a754-416a-a3e2-4d794d4160e0",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "send"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"recipientEmail\": \"<email>\",\n  \"ccEmails\": [\n    \"<email>\",\n    \"<email>\"\n  ],\n  \"subject\": \"<string>\",\n  \"body\": \"<string>\",\n  \"templateId\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "08c1d2d4-3ea3-48ea-ab87-1c246ff93814",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "send"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"recipientEmail\": \"<email>\",\n  \"ccEmails\": [\n    \"<email>\",\n    \"<email>\"\n  ],\n  \"subject\": \"<string>\",\n  \"body\": \"<string>\",\n  \"templateId\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5b4de994-fae2-4c54-8051-7883674cc865",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "send"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"recipientEmail\": \"<email>\",\n  \"ccEmails\": [\n    \"<email>\",\n    \"<email>\"\n  ],\n  \"subject\": \"<string>\",\n  \"body\": \"<string>\",\n  \"templateId\": \"<integer>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e836a772-0935-4413-a483-0b495403969b",
          "name": "Mark an invoice sent without emailing it",
          "request": {
            "name": "Mark an invoice sent without emailing it",
            "description": {
              "content": "For invoices delivered out of band. Transitions draft → sent.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "mark-sent"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "ae4583c6-44d7-4461-9ca2-e45c99079ad6",
              "name": "Sent",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "mark-sent"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4136,\n    \"tenantId\": 9869,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5604,\n    \"contactId\": 8353,\n    \"status\": \"partial\",\n    \"issueDate\": \"1959-01-17T06:49:49.897Z\",\n    \"dueDate\": \"1951-02-20T06:09:10.070Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2008-09-09T00:10:52.751Z\",\n    \"updatedAt\": \"1990-07-16T12:01:24.953Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8193\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1495fb41-15b3-43c9-8094-56f2e2df8f67",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "mark-sent"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f3ae0c78-fa5e-48ba-8631-78057e98869e",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "mark-sent"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e2a226ad-538b-46e6-9e8a-c98497b4f8fc",
          "name": "Mark an invoice paid in full",
          "request": {
            "name": "Mark an invoice paid in full",
            "description": {
              "content": "Idempotent for an already-paid invoice. A draft or voided invoice answers 409.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "mark-paid"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"paidAt\": \"<dateTime>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "fa393263-f545-4f22-be68-4fd9733aa341",
              "name": "Paid",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "mark-paid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"paidAt\": \"<dateTime>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4136,\n    \"tenantId\": 9869,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5604,\n    \"contactId\": 8353,\n    \"status\": \"partial\",\n    \"issueDate\": \"1959-01-17T06:49:49.897Z\",\n    \"dueDate\": \"1951-02-20T06:09:10.070Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2008-09-09T00:10:52.751Z\",\n    \"updatedAt\": \"1990-07-16T12:01:24.953Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8193\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d033a36a-3812-49d2-bf50-23bed42589e1",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "mark-paid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"paidAt\": \"<dateTime>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3b9157bd-25d2-45d5-9305-4b73ffc1e362",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "mark-paid"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"paidAt\": \"<dateTime>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5562b856-87dd-4636-8948-ca367acfc731",
          "name": "Void an invoice",
          "request": {
            "name": "Void an invoice",
            "description": {
              "content": "Terminal — a voided invoice cannot be edited, paid or un-voided.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "void"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "8b3db048-3499-46bb-9141-c8dc3681f20a",
              "name": "Voided",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4136,\n    \"tenantId\": 9869,\n    \"invoiceNumber\": \"string\",\n    \"projectId\": 5604,\n    \"contactId\": 8353,\n    \"status\": \"partial\",\n    \"issueDate\": \"1959-01-17T06:49:49.897Z\",\n    \"dueDate\": \"1951-02-20T06:09:10.070Z\",\n    \"subtotal\": \"string\",\n    \"taxAmount\": \"string\",\n    \"total\": \"string\",\n    \"amountPaid\": \"string\",\n    \"balanceDue\": \"string\",\n    \"notesToCustomer\": \"string\",\n    \"createdAt\": \"2008-09-09T00:10:52.751Z\",\n    \"updatedAt\": \"1990-07-16T12:01:24.953Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8193\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cc06125c-92ad-480f-876f-6de296e9c7dc",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ca049a9-2225-4326-a292-db9f4e577047",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9510e080-d053-4b3d-8bdd-bf0891bc1dd2",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e60b44c3-f6a9-48f9-8314-843392946b66",
          "name": "Queue a QuickBooks Online push",
          "request": {
            "name": "Queue a QuickBooks Online push",
            "description": {
              "content": "Enqueues a background sync and returns 202 immediately — the response does not mean QBO accepted it.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "qbo",
                "sync"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8227c8c0-3481-4998-a510-1ffb5adeb106",
              "name": "Queued",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "qbo",
                    "sync"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"queued\": false\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8a0d635f-6859-4af9-bad1-6016fcad9ef5",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "qbo",
                    "sync"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "42ebebed-e0bf-4500-ab37-8e4604044db4",
          "name": "List the invoice's payment ledger",
          "request": {
            "name": "List the invoice's payment ledger",
            "description": {},
            "url": {
              "path": [
                "invoices",
                ":id",
                "payments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "6dd092f7-2b51-4eb0-9d0f-51cbbc473cd7",
              "name": "Payments",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7336,\n      \"invoiceId\": 4202,\n      \"amount\": \"string\",\n      \"paidAt\": \"1974-06-21T16:49:17.692Z\",\n      \"method\": \"string\",\n      \"reference\": \"string\",\n      \"notes\": \"string\",\n      \"voidedAt\": \"1954-08-27T04:51:33.067Z\"\n    },\n    {\n      \"id\": 3921,\n      \"invoiceId\": 9997,\n      \"amount\": \"string\",\n      \"paidAt\": \"1991-03-26T12:20:22.317Z\",\n      \"method\": \"string\",\n      \"reference\": \"string\",\n      \"notes\": \"string\",\n      \"voidedAt\": \"2000-02-03T06:09:34.936Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 5137\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "007aaa4c-e1bc-4ff3-a4fd-f2bb6632b3df",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "56dbdd23-6e96-4630-95c4-77efdabdeace",
          "name": "Record a manual payment",
          "request": {
            "name": "Record a manual payment",
            "description": {
              "content": "Only against a sent or partially-paid invoice. A draft answers 409 (send it first), as does a voided or fully-paid one.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "payments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f213dd1d-dfa4-4dd3-ba60-608ab182240c",
              "name": "Recorded",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"payment\": {\n      \"id\": 1314,\n      \"invoiceId\": 1225,\n      \"amount\": \"string\",\n      \"paidAt\": \"1958-10-18T02:50:19.074Z\",\n      \"method\": \"string\",\n      \"reference\": \"string\",\n      \"notes\": \"string\",\n      \"voidedAt\": \"2023-07-19T05:12:12.723Z\"\n    },\n    \"invoice\": {\n      \"id\": 2330,\n      \"tenantId\": 9713,\n      \"invoiceNumber\": \"string\",\n      \"projectId\": 3108,\n      \"contactId\": 7878,\n      \"status\": \"sent\",\n      \"issueDate\": \"1991-11-04T00:20:21.500Z\",\n      \"dueDate\": \"2013-12-07T03:07:22.331Z\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"amountPaid\": \"string\",\n      \"balanceDue\": \"string\",\n      \"notesToCustomer\": \"string\",\n      \"createdAt\": \"1960-11-01T08:14:41.667Z\",\n      \"updatedAt\": \"1995-08-02T18:21:22.513Z\"\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 625\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "58b0625d-27b6-418b-ace4-c18773758936",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f7c66148-0de2-4ade-acd3-123ead6bb710",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a42377c9-1f08-4764-b1d3-f023e4aa4291",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6f02440b-5b3e-47e7-ab2a-768a87402db4",
          "name": "Edit a manual payment",
          "request": {
            "name": "Edit a manual payment",
            "description": {},
            "url": {
              "path": [
                "invoices",
                ":id",
                "payments",
                ":paymentId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "paymentId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "cc596949-cb97-410b-af1b-db62897d89f6",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments",
                    ":paymentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "paymentId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"payment\": {\n      \"id\": 1314,\n      \"invoiceId\": 1225,\n      \"amount\": \"string\",\n      \"paidAt\": \"1958-10-18T02:50:19.074Z\",\n      \"method\": \"string\",\n      \"reference\": \"string\",\n      \"notes\": \"string\",\n      \"voidedAt\": \"2023-07-19T05:12:12.723Z\"\n    },\n    \"invoice\": {\n      \"id\": 2330,\n      \"tenantId\": 9713,\n      \"invoiceNumber\": \"string\",\n      \"projectId\": 3108,\n      \"contactId\": 7878,\n      \"status\": \"sent\",\n      \"issueDate\": \"1991-11-04T00:20:21.500Z\",\n      \"dueDate\": \"2013-12-07T03:07:22.331Z\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"amountPaid\": \"string\",\n      \"balanceDue\": \"string\",\n      \"notesToCustomer\": \"string\",\n      \"createdAt\": \"1960-11-01T08:14:41.667Z\",\n      \"updatedAt\": \"1995-08-02T18:21:22.513Z\"\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 625\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6e77417b-7ea3-46ff-aff9-870b3d6411af",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments",
                    ":paymentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "paymentId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "64b9facf-712b-4ca3-9231-369a49c20ff4",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments",
                    ":paymentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "paymentId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "321ecb0e-933b-4f3a-b027-19ced0c3413a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments",
                    ":paymentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "paymentId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": \"<string>\",\n  \"paidAt\": \"<string,null>\",\n  \"method\": \"<string>\",\n  \"reference\": \"<string,null>\",\n  \"notes\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "947b7fe5-10f8-4279-9022-7ce3732c369f",
          "name": "Void a manual payment",
          "request": {
            "name": "Void a manual payment",
            "description": {
              "content": "Voids rather than erases — the ledger row is retained with `voidedAt` set.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "payments",
                ":paymentId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "paymentId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "12b61e5f-a33b-41bf-b2fc-a2b4e562898e",
              "name": "Voided",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments",
                    ":paymentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "paymentId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"payment\": {\n      \"id\": 1314,\n      \"invoiceId\": 1225,\n      \"amount\": \"string\",\n      \"paidAt\": \"1958-10-18T02:50:19.074Z\",\n      \"method\": \"string\",\n      \"reference\": \"string\",\n      \"notes\": \"string\",\n      \"voidedAt\": \"2023-07-19T05:12:12.723Z\"\n    },\n    \"invoice\": {\n      \"id\": 2330,\n      \"tenantId\": 9713,\n      \"invoiceNumber\": \"string\",\n      \"projectId\": 3108,\n      \"contactId\": 7878,\n      \"status\": \"sent\",\n      \"issueDate\": \"1991-11-04T00:20:21.500Z\",\n      \"dueDate\": \"2013-12-07T03:07:22.331Z\",\n      \"subtotal\": \"string\",\n      \"taxAmount\": \"string\",\n      \"total\": \"string\",\n      \"amountPaid\": \"string\",\n      \"balanceDue\": \"string\",\n      \"notesToCustomer\": \"string\",\n      \"createdAt\": \"1960-11-01T08:14:41.667Z\",\n      \"updatedAt\": \"1995-08-02T18:21:22.513Z\"\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 625\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "acdaefca-dc42-4afc-a1dc-477a4d53dc64",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments",
                    ":paymentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "paymentId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a8e7e81-cba5-443e-92b9-049783c2e63c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "payments",
                    ":paymentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "paymentId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0027f55e-70fa-472d-b631-c836c9bfa865",
          "name": "Append a line item to a draft",
          "request": {
            "name": "Append a line item to a draft",
            "description": {},
            "url": {
              "path": [
                "invoices",
                ":id",
                "lines"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"description\": \"<string>\",\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "60cbb570-af7d-49f0-8560-b2c02a28c989",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 9141,\n    \"invoiceId\": 2417,\n    \"description\": \"string\",\n    \"quantity\": \"string\",\n    \"unitPrice\": \"string\",\n    \"amount\": \"string\",\n    \"order\": 9553\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8892\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "61256b07-173b-4a23-94c9-2e58945a1e2e",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5fec88b9-7c80-48b8-a713-c9810e8896df",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9b8dc249-e14b-4b1e-8c86-e2ec42e2157c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"description\": \"<string>\",\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1d7a8e4c-c79e-4c5b-9a32-4f1795928e71",
          "name": "Update a line item",
          "request": {
            "name": "Update a line item",
            "description": {},
            "url": {
              "path": [
                "invoices",
                ":id",
                "lines",
                ":lineId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "lineId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "04a75114-732b-40db-906f-09d0acc8c8f9",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    ":lineId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "lineId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 9141,\n    \"invoiceId\": 2417,\n    \"description\": \"string\",\n    \"quantity\": \"string\",\n    \"unitPrice\": \"string\",\n    \"amount\": \"string\",\n    \"order\": 9553\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 8892\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "72a55f24-85b1-4f4c-8e74-c3e0b9c3c902",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    ":lineId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "lineId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "29248271-0c58-472b-b943-938445160144",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    ":lineId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "lineId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c8d284ca-bc7b-41f4-a34f-06c75984afec",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    ":lineId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "lineId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"position\": \"<integer>\",\n  \"productId\": \"<integer,null>\",\n  \"description\": \"<string>\",\n  \"quantity\": \"<string>\",\n  \"unitPrice\": \"<string>\",\n  \"isTaxable\": \"<boolean>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "87927b58-df83-41d6-a6ed-413d971d2408",
          "name": "Remove a line item",
          "request": {
            "name": "Remove a line item",
            "description": {},
            "url": {
              "path": [
                "invoices",
                ":id",
                "lines",
                ":lineId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "lineId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "b7c4606d-3948-451f-88bc-e9b3b3c3b66a",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    ":lineId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "lineId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "5d6f1a7e-07b9-4e56-97a0-247f06499384",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    ":lineId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "lineId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b0c997b7-064a-4759-9571-54acd4ef7c76",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    ":lineId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "lineId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "04dd980a-34fd-4d14-af82-d9eecd0bff4d",
          "name": "Reorder line items",
          "request": {
            "name": "Reorder line items",
            "description": {
              "content": "Atomic. `orderedIds` must list every line on the invoice exactly once.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "lines",
                "reorder"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"orderedIds\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "cc734699-ed9a-4573-87a5-63698ca42b13",
              "name": "Reordered",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    "reorder"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"orderedIds\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 5886,\n      \"invoiceId\": 5133,\n      \"description\": \"string\",\n      \"quantity\": \"string\",\n      \"unitPrice\": \"string\",\n      \"amount\": \"string\",\n      \"order\": 5810\n    },\n    {\n      \"id\": 3016,\n      \"invoiceId\": 1689,\n      \"description\": \"string\",\n      \"quantity\": \"string\",\n      \"unitPrice\": \"string\",\n      \"amount\": \"string\",\n      \"order\": 6259\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 693\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "27823cd2-63bf-4816-b5c0-6cae66939504",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    "reorder"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"orderedIds\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "44983de4-9f48-4a9b-b664-961fd72b3315",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "lines",
                    "reorder"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"orderedIds\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "80eff4f3-d8b6-46a9-b214-3e760135e20c",
          "name": "Render the invoice as a PDF",
          "request": {
            "name": "Render the invoice as a PDF",
            "description": {
              "content": "Streams `application/pdf`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "invoices",
                ":id",
                "pdf"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/pdf"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "9586c74e-dc0b-4fd9-9a84-2fae0a9a6f3f",
              "name": "PDF",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/pdf"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/pdf"
                }
              ],
              "body": "string",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "c31377a3-b2e6-4b47-83b9-e0db16630891",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "invoices",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c0a41066-c554-4737-b9cb-4a7c17f38478",
      "name": "SiteLogs",
      "description": {
        "content": "Daily field reports, photos and their review state.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "0512d7f1-7b5e-47c2-9f25-fd6fc6eb2f1b",
          "name": "List site logs",
          "request": {
            "name": "List site logs",
            "description": {
              "content": "Returns a cursor-paginated list of site logs.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "site-logs"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "tag",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "reviewed",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8051a69b-ce11-4397-a0d0-37fd610354f3",
              "name": "SiteLogs page",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<string>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<string>"
                    },
                    {
                      "key": "tag",
                      "value": "<string>"
                    },
                    {
                      "key": "reviewed",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 6137,\n      \"projectId\": 3164,\n      \"logDate\": \"1993-12-21T19:23:23.254Z\",\n      \"title\": \"string\",\n      \"notes\": \"string\",\n      \"personnelCount\": 8734,\n      \"workPerformed\": \"string\",\n      \"materialsReceived\": \"string\",\n      \"visitorsOnSite\": \"string\",\n      \"issues\": \"string\",\n      \"tags\": [\n        \"string\",\n        \"string\"\n      ],\n      \"lat\": 2643.2767689245097,\n      \"lng\": 1868.9454656305559,\n      \"isReviewed\": false,\n      \"createdAt\": \"1994-06-21T12:31:57.856Z\",\n      \"updatedAt\": \"2013-07-06T14:32:23.079Z\"\n    },\n    {\n      \"id\": 4160,\n      \"projectId\": 7901,\n      \"logDate\": \"1962-04-03T06:52:53.409Z\",\n      \"title\": \"string\",\n      \"notes\": \"string\",\n      \"personnelCount\": 918,\n      \"workPerformed\": \"string\",\n      \"materialsReceived\": \"string\",\n      \"visitorsOnSite\": \"string\",\n      \"issues\": \"string\",\n      \"tags\": [\n        \"string\",\n        \"string\"\n      ],\n      \"lat\": 1207.443773598098,\n      \"lng\": 3449.282092437316,\n      \"isReviewed\": true,\n      \"createdAt\": \"1974-10-09T04:00:02.916Z\",\n      \"updatedAt\": \"2023-10-22T16:15:02.591Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4054\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5ef07785-6b73-47ef-a598-1c40bb5544ff",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<string>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<string>"
                    },
                    {
                      "key": "tag",
                      "value": "<string>"
                    },
                    {
                      "key": "reviewed",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1cc8c849-1967-4a20-b6cc-6afc3f2e8e4e",
          "name": "Create site log",
          "request": {
            "name": "Create site log",
            "description": {},
            "url": {
              "path": [
                "site-logs"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"projectId\": \"<integer>\",\n  \"logDate\": \"<string>\",\n  \"notes\": \"<string>\",\n  \"createdBy\": \"<integer>\",\n  \"title\": \"<string,null>\",\n  \"tags\": [\n    \"<string,null>\",\n    \"<string,null>\"\n  ],\n  \"personnelCount\": \"<integer,null>\",\n  \"workPerformed\": \"<string,null>\",\n  \"materialsReceived\": \"<string,null>\",\n  \"visitorsOnSite\": \"<string,null>\",\n  \"issues\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "85f59226-7a39-471b-932f-e4c12ee988c3",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"logDate\": \"<string>\",\n  \"notes\": \"<string>\",\n  \"createdBy\": \"<integer>\",\n  \"title\": \"<string,null>\",\n  \"tags\": [\n    \"<string,null>\",\n    \"<string,null>\"\n  ],\n  \"personnelCount\": \"<integer,null>\",\n  \"workPerformed\": \"<string,null>\",\n  \"materialsReceived\": \"<string,null>\",\n  \"visitorsOnSite\": \"<string,null>\",\n  \"issues\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5418,\n    \"projectId\": 6897,\n    \"logDate\": \"1956-07-30T00:54:30.083Z\",\n    \"title\": \"string\",\n    \"notes\": \"string\",\n    \"personnelCount\": 3879,\n    \"workPerformed\": \"string\",\n    \"materialsReceived\": \"string\",\n    \"visitorsOnSite\": \"string\",\n    \"issues\": \"string\",\n    \"tags\": [\n      \"string\",\n      \"string\"\n    ],\n    \"lat\": 8296.770304129052,\n    \"lng\": 5994.143149267348,\n    \"isReviewed\": true,\n    \"createdAt\": \"2022-08-18T01:58:01.823Z\",\n    \"updatedAt\": \"1967-05-29T11:20:04.685Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 6195\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5531b84b-0742-44a8-9210-0d2921dba3ea",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"logDate\": \"<string>\",\n  \"notes\": \"<string>\",\n  \"createdBy\": \"<integer>\",\n  \"title\": \"<string,null>\",\n  \"tags\": [\n    \"<string,null>\",\n    \"<string,null>\"\n  ],\n  \"personnelCount\": \"<integer,null>\",\n  \"workPerformed\": \"<string,null>\",\n  \"materialsReceived\": \"<string,null>\",\n  \"visitorsOnSite\": \"<string,null>\",\n  \"issues\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bc2ae568-632a-4bba-9c46-f26e9430acbc",
          "name": "Get site log by id",
          "request": {
            "name": "Get site log by id",
            "description": {},
            "url": {
              "path": [
                "site-logs",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "af0d2415-3aae-4f06-8f04-bd2a5a8afc63",
              "name": "SiteLog",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5418,\n    \"projectId\": 6897,\n    \"logDate\": \"1956-07-30T00:54:30.083Z\",\n    \"title\": \"string\",\n    \"notes\": \"string\",\n    \"personnelCount\": 3879,\n    \"workPerformed\": \"string\",\n    \"materialsReceived\": \"string\",\n    \"visitorsOnSite\": \"string\",\n    \"issues\": \"string\",\n    \"tags\": [\n      \"string\",\n      \"string\"\n    ],\n    \"lat\": 8296.770304129052,\n    \"lng\": 5994.143149267348,\n    \"isReviewed\": true,\n    \"createdAt\": \"2022-08-18T01:58:01.823Z\",\n    \"updatedAt\": \"1967-05-29T11:20:04.685Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 6195\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "034f5c1d-bf34-47a0-9275-baaa32b60b89",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4e211189-0800-46fe-9410-cf86095c7bbe",
          "name": "Update site log",
          "request": {
            "name": "Update site log",
            "description": {},
            "url": {
              "path": [
                "site-logs",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"projectId\": \"<integer>\",\n  \"logDate\": \"<string>\",\n  \"title\": \"<string,null>\",\n  \"notes\": \"<string>\",\n  \"tags\": [\n    \"<string,null>\",\n    \"<string,null>\"\n  ],\n  \"personnelCount\": \"<integer,null>\",\n  \"workPerformed\": \"<string,null>\",\n  \"materialsReceived\": \"<string,null>\",\n  \"visitorsOnSite\": \"<string,null>\",\n  \"issues\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "6e0c3afc-27da-400a-a56c-4590f5373f72",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"logDate\": \"<string>\",\n  \"title\": \"<string,null>\",\n  \"notes\": \"<string>\",\n  \"tags\": [\n    \"<string,null>\",\n    \"<string,null>\"\n  ],\n  \"personnelCount\": \"<integer,null>\",\n  \"workPerformed\": \"<string,null>\",\n  \"materialsReceived\": \"<string,null>\",\n  \"visitorsOnSite\": \"<string,null>\",\n  \"issues\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5418,\n    \"projectId\": 6897,\n    \"logDate\": \"1956-07-30T00:54:30.083Z\",\n    \"title\": \"string\",\n    \"notes\": \"string\",\n    \"personnelCount\": 3879,\n    \"workPerformed\": \"string\",\n    \"materialsReceived\": \"string\",\n    \"visitorsOnSite\": \"string\",\n    \"issues\": \"string\",\n    \"tags\": [\n      \"string\",\n      \"string\"\n    ],\n    \"lat\": 8296.770304129052,\n    \"lng\": 5994.143149267348,\n    \"isReviewed\": true,\n    \"createdAt\": \"2022-08-18T01:58:01.823Z\",\n    \"updatedAt\": \"1967-05-29T11:20:04.685Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 6195\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "95ddc31f-9a0f-44d0-9295-d449f995ceee",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"logDate\": \"<string>\",\n  \"title\": \"<string,null>\",\n  \"notes\": \"<string>\",\n  \"tags\": [\n    \"<string,null>\",\n    \"<string,null>\"\n  ],\n  \"personnelCount\": \"<integer,null>\",\n  \"workPerformed\": \"<string,null>\",\n  \"materialsReceived\": \"<string,null>\",\n  \"visitorsOnSite\": \"<string,null>\",\n  \"issues\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "89c2d2a1-d8f5-4ad2-b6b8-106d144da99c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"projectId\": \"<integer>\",\n  \"logDate\": \"<string>\",\n  \"title\": \"<string,null>\",\n  \"notes\": \"<string>\",\n  \"tags\": [\n    \"<string,null>\",\n    \"<string,null>\"\n  ],\n  \"personnelCount\": \"<integer,null>\",\n  \"workPerformed\": \"<string,null>\",\n  \"materialsReceived\": \"<string,null>\",\n  \"visitorsOnSite\": \"<string,null>\",\n  \"issues\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d43603c5-ff19-459c-976d-4aba73698843",
          "name": "Delete site log",
          "request": {
            "name": "Delete site log",
            "description": {},
            "url": {
              "path": [
                "site-logs",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "5ea97a1d-c2c2-43aa-b9b7-07063ccb24c1",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "92c8d216-0603-4d23-81df-8b7fe4e94b72",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a7394424-31be-4d78-be37-a7c4bffe3a9f",
          "name": "Start CSV export of site logs",
          "request": {
            "name": "Start CSV export of site logs",
            "description": {
              "content": "Enqueues a CSV export job for site logs. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "site-logs",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f25165e8-ac5d-445b-99f1-90f6fe0225dd",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b5d265f4-0b3a-48b8-bd22-5bb74b05e331",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5cd72610-69a5-45fe-b442-d07713bf5695",
          "name": "Start CSV import of site logs",
          "request": {
            "name": "Start CSV import of site logs",
            "description": {
              "content": "Enqueues a CSV import job. sourcePath must be an opaque upload path returned by POST /jobs/uploads. Required CSV columns: projectId, logDate (ISO), notes. Optional: id (triggers update-in-place when updateInPlace=true), title, workPerformed, issues, isReviewed.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "site-logs",
                "imports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "88409cbc-e60b-49cb-8e9e-5e2e61b0d4fc",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "16a49a95-e448-460a-a810-22669ebcdfcd",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f912e9d6-5044-4eb8-add9-d1247c3bf2ca",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "77505a7b-4617-45dd-8358-e3534b67c038",
          "name": "Start bulk operation on site logs",
          "request": {
            "name": "Start bulk operation on site logs",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 site log ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "site-logs",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "519790fd-5763-48b9-8f5f-e8718ee68bbe",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "09b182f6-61cf-48b5-bf3c-f44a21f5a308",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "18be1cbc-8622-4b6f-8aea-8b71ce368a1d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "site-logs",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "cf76e675-15fd-4fa7-a3f5-c6480c9b4b08",
      "name": "TimeEntries",
      "description": {
        "content": "Labor hours logged against projects, with review and cost roll-up.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "6c290953-209e-476c-aee9-e617dff4e493",
          "name": "List time entries",
          "request": {
            "name": "List time entries",
            "description": {
              "content": "Returns a cursor-paginated list of time entries.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "time-entries"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "userId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "isReviewed",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "43672469-183f-418b-a74a-faf53bbfc419",
              "name": "TimeEntries page",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "userId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<string>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<string>"
                    },
                    {
                      "key": "isReviewed",
                      "value": "<string>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7027,\n      \"projectId\": 9420,\n      \"userId\": 7530,\n      \"taskId\": 4578,\n      \"phaseId\": 1702,\n      \"date\": \"2025-05-03T10:57:16.456Z\",\n      \"hours\": \"string\",\n      \"hourlyRate\": \"string\",\n      \"totalCost\": \"string\",\n      \"description\": \"string\",\n      \"lat\": 41.0547137762518,\n      \"lng\": 8402.46291900897,\n      \"isReviewed\": false,\n      \"createdAt\": \"2018-06-30T10:06:39.251Z\",\n      \"updatedAt\": \"2019-03-11T23:12:24.601Z\"\n    },\n    {\n      \"id\": 2776,\n      \"projectId\": 1804,\n      \"userId\": 3381,\n      \"taskId\": 9112,\n      \"phaseId\": 3026,\n      \"date\": \"1983-06-03T07:00:54.605Z\",\n      \"hours\": \"string\",\n      \"hourlyRate\": \"string\",\n      \"totalCost\": \"string\",\n      \"description\": \"string\",\n      \"lat\": 3287.8553392134504,\n      \"lng\": 8851.960253351894,\n      \"isReviewed\": false,\n      \"createdAt\": \"2016-04-10T15:49:33.873Z\",\n      \"updatedAt\": \"1993-03-26T11:35:59.092Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 36\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6400a978-dbd6-4d5a-9a2c-71ca8ef93248",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "userId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<string>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<string>"
                    },
                    {
                      "key": "isReviewed",
                      "value": "<string>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8718b12f-f376-43cd-bf4b-2884dc762412",
          "name": "Create time entry",
          "request": {
            "name": "Create time entry",
            "description": {},
            "url": {
              "path": [
                "time-entries"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "ce7bc2f3-01d2-47e3-a858-8ce3fc930a09",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 9685,\n    \"projectId\": 7869,\n    \"userId\": 2160,\n    \"taskId\": 3806,\n    \"phaseId\": 3565,\n    \"date\": \"2015-01-09T21:24:40.576Z\",\n    \"hours\": \"string\",\n    \"hourlyRate\": \"string\",\n    \"totalCost\": \"string\",\n    \"description\": \"string\",\n    \"lat\": 2863.372956495112,\n    \"lng\": 5251.157789406733,\n    \"isReviewed\": false,\n    \"createdAt\": \"2004-05-01T09:00:44.762Z\",\n    \"updatedAt\": \"2016-02-17T15:27:11.389Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 6040\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "13f9bffd-98a8-4049-b551-58b0c46856b2",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "01a8f0ee-8af9-4a68-aafa-fc034ac26139",
          "name": "Update time entry",
          "request": {
            "name": "Update time entry",
            "description": {},
            "url": {
              "path": [
                "time-entries",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "26f511e0-e4e0-49a4-892c-6317852c11a0",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 9685,\n    \"projectId\": 7869,\n    \"userId\": 2160,\n    \"taskId\": 3806,\n    \"phaseId\": 3565,\n    \"date\": \"2015-01-09T21:24:40.576Z\",\n    \"hours\": \"string\",\n    \"hourlyRate\": \"string\",\n    \"totalCost\": \"string\",\n    \"description\": \"string\",\n    \"lat\": 2863.372956495112,\n    \"lng\": 5251.157789406733,\n    \"isReviewed\": false,\n    \"createdAt\": \"2004-05-01T09:00:44.762Z\",\n    \"updatedAt\": \"2016-02-17T15:27:11.389Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 6040\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d5083db0-4200-4838-92f5-e60fc75eaf6d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "15d8e400-2495-4b7c-a154-b320d51cfd34",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a9db6fa1-26fc-4446-a809-08728b621a26",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"<integer>\",\n  \"projectId\": \"<integer>\",\n  \"taskId\": \"<integer,null>\",\n  \"phaseId\": \"<integer,null>\",\n  \"date\": \"<string,null>\",\n  \"hours\": \"<number>\",\n  \"notes\": \"<string,null>\",\n  \"entryType\": \"<string>\",\n  \"clockIn\": \"<string,null>\",\n  \"clockOut\": \"<string,null>\",\n  \"lat\": \"<number,null>\",\n  \"lng\": \"<number,null>\",\n  \"clockInAccuracyM\": \"<number,null>\",\n  \"clockOutLat\": \"<number,null>\",\n  \"clockOutLng\": \"<number,null>\",\n  \"clockOutAccuracyM\": \"<number,null>\",\n  \"isReviewed\": \"<boolean>\",\n  \"reviewedBy\": \"<integer,null>\",\n  \"reviewedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "18acc569-63a4-40af-8507-e12163dbdd4b",
          "name": "Delete time entry",
          "request": {
            "name": "Delete time entry",
            "description": {},
            "url": {
              "path": [
                "time-entries",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "5d5f6c57-49e7-4e4d-9524-d040ba93e080",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "a1749533-b5a9-43c5-a1db-66bfeedd6897",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9a1b7179-9322-435e-a297-23cc7c6b9f10",
          "name": "Start CSV export of time entries",
          "request": {
            "name": "Start CSV export of time entries",
            "description": {
              "content": "Enqueues a CSV export job for time entries. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "time-entries",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "e347a018-c19a-4103-a2fe-6cbe352b35e8",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1e0fef38-83e8-44cc-9521-03d076ebb228",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8fe80ab7-60b7-44bc-b749-5da2f2eb471c",
          "name": "Start CSV import of time entries",
          "request": {
            "name": "Start CSV import of time entries",
            "description": {
              "content": "Enqueues a CSV import job. sourcePath must be an opaque upload path returned by POST /jobs/uploads. Required CSV columns: projectId, userId, date (ISO), hours. Optional: id (triggers update-in-place when updateInPlace=true), taskId, phaseId, notes, isReviewed. Reviewed time entries are immutable — update-by-id will reject them. hourlyRate and totalCost are recomputed server-side from labor rates.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "time-entries",
                "imports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "feb6ef60-3781-491f-aa1c-19bc5f2647a3",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca980d37-f66c-492f-901d-d5012529615f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dc708ff9-a069-4252-8701-b775a6a98d32",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d6842b4a-57a2-4dc2-8517-0734b3f64bc1",
          "name": "Start bulk operation on time entries",
          "request": {
            "name": "Start bulk operation on time entries",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 time entry ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "time-entries",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "7a1b76f5-9b43-4c8d-b91b-dcf3486ecbde",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "635aa85d-01bc-4031-9f80-7805a222c72a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7630e4d5-dd3e-4dcf-89d8-d67046ba50dc",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "67f26d94-e518-423d-aaf1-b6f8018c7d7a",
          "name": "Aggregate time-entry metrics",
          "request": {
            "name": "Aggregate time-entry metrics",
            "description": {
              "content": "Returns entry_count, hours_total, cost_total, plus breakdowns by user and by project. Date filters apply to the work date (time_entries.date), NOT createdAt.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "time-entries",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "userId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8dfcafb7-ed30-4cd5-8b0f-ea90452854d7",
              "name": "Summary",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<string>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<string>"
                    },
                    {
                      "key": "userId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"totals\": {\n      \"entry_count\": 8601,\n      \"hours_total\": \"string\",\n      \"cost_total\": \"string\"\n    },\n    \"by_user\": [\n      {\n        \"userId\": 859,\n        \"firstName\": \"string\",\n        \"lastName\": \"string\",\n        \"hours_total\": \"string\",\n        \"cost_total\": \"string\"\n      },\n      {\n        \"userId\": 335,\n        \"firstName\": \"string\",\n        \"lastName\": \"string\",\n        \"hours_total\": \"string\",\n        \"cost_total\": \"string\"\n      }\n    ],\n    \"by_project\": [\n      {\n        \"projectId\": 9837,\n        \"projectName\": \"string\",\n        \"hours_total\": \"string\",\n        \"cost_total\": \"string\"\n      },\n      {\n        \"projectId\": 9317,\n        \"projectName\": \"string\",\n        \"hours_total\": \"string\",\n        \"cost_total\": \"string\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 2923\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "677bd8b0-755d-4d90-b0cf-79c5b88c2411",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "time-entries",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "dateFrom",
                      "value": "<string>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<string>"
                    },
                    {
                      "key": "userId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "8d87c928-51f6-4d05-bca1-7a6f855c2bdf",
      "name": "Products",
      "description": {
        "content": "The catalog of materials and labor items bids are built from, including kits.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "ca5a6eb0-81a1-4480-82d3-1d3c6b76605d",
          "name": "List products",
          "request": {
            "name": "List products",
            "description": {
              "content": "Returns a cursor-paginated list of products.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "type",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "categoryId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "manufacturerId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "isKit",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "isActive",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "f53b2851-5aa9-4f36-a1f1-61f60e55ba08",
              "name": "Products page",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "categoryId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "manufacturerId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "isKit",
                      "value": "<string>"
                    },
                    {
                      "key": "isActive",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 9412,\n      \"sku\": \"string\",\n      \"name\": \"string\",\n      \"description\": \"string\",\n      \"type\": \"string\",\n      \"categoryId\": 9483,\n      \"costPrice\": \"string\",\n      \"sellPrice\": \"string\",\n      \"unit\": \"string\",\n      \"manufacturerId\": 115,\n      \"manufacturerCode\": \"string\",\n      \"isKit\": false,\n      \"isActive\": true,\n      \"createdAt\": \"1973-08-19T03:45:55.993Z\",\n      \"updatedAt\": \"1957-07-18T17:16:41.004Z\"\n    },\n    {\n      \"id\": 3588,\n      \"sku\": \"string\",\n      \"name\": \"string\",\n      \"description\": \"string\",\n      \"type\": \"string\",\n      \"categoryId\": 3352,\n      \"costPrice\": \"string\",\n      \"sellPrice\": \"string\",\n      \"unit\": \"string\",\n      \"manufacturerId\": 9687,\n      \"manufacturerCode\": \"string\",\n      \"isKit\": true,\n      \"isActive\": false,\n      \"createdAt\": \"1967-05-15T03:38:43.347Z\",\n      \"updatedAt\": \"1971-05-12T23:56:11.529Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 3196\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "edb5cf27-762c-4b3d-8147-a6248f6c916a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "categoryId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "manufacturerId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "isKit",
                      "value": "<string>"
                    },
                    {
                      "key": "isActive",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "790fc19f-cd9f-43dd-977c-0b44bfa8358a",
          "name": "Create product",
          "request": {
            "name": "Create product",
            "description": {},
            "url": {
              "path": [
                "products"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"<string>\",\n  \"sku\": \"<string,null>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\",\n  \"qboId\": \"<string,null>\",\n  \"qboSyncToken\": \"<string,null>\",\n  \"qboLastSyncedAt\": \"<string,null>\",\n  \"deletedAt\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f60fb881-ddca-48a3-b8c1-9d7289f11999",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"sku\": \"<string,null>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\",\n  \"qboId\": \"<string,null>\",\n  \"qboSyncToken\": \"<string,null>\",\n  \"qboLastSyncedAt\": \"<string,null>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4921,\n    \"sku\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"type\": \"string\",\n    \"categoryId\": 8058,\n    \"costPrice\": \"string\",\n    \"sellPrice\": \"string\",\n    \"unit\": \"string\",\n    \"manufacturerId\": 8033,\n    \"manufacturerCode\": \"string\",\n    \"isKit\": true,\n    \"isActive\": false,\n    \"createdAt\": \"1971-05-31T14:57:17.142Z\",\n    \"updatedAt\": \"2006-12-24T10:37:06.156Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 3448\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e6b17e25-f002-4dc0-a636-eda15de3a940",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"sku\": \"<string,null>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\",\n  \"qboId\": \"<string,null>\",\n  \"qboSyncToken\": \"<string,null>\",\n  \"qboLastSyncedAt\": \"<string,null>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "32da08b9-6502-48bc-b096-3acbd5627789",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"<string>\",\n  \"sku\": \"<string,null>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\",\n  \"qboId\": \"<string,null>\",\n  \"qboSyncToken\": \"<string,null>\",\n  \"qboLastSyncedAt\": \"<string,null>\",\n  \"deletedAt\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0700fcf6-f3f2-4a58-977f-00cce85de830",
          "name": "Count products",
          "request": {
            "name": "Count products",
            "description": {
              "content": "Returns the total number of products in the tenant matching the optional filters. Mirrors the same filters as GET /products minus pagination — use this when you only need cardinality.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "type",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "categoryId",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "manufacturerId",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "isKit",
                  "value": "<boolean,null>"
                },
                {
                  "disabled": false,
                  "key": "isActive",
                  "value": "<boolean,null>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "b904c4f3-c272-402c-ad53-3c263e5a7cb3",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "categoryId",
                      "value": "<integer>"
                    },
                    {
                      "key": "manufacturerId",
                      "value": "<integer>"
                    },
                    {
                      "key": "isKit",
                      "value": "<boolean,null>"
                    },
                    {
                      "key": "isActive",
                      "value": "<boolean,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5bcc4291-5a9d-4a72-bbac-6cf85ed5e75a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "categoryId",
                      "value": "<integer>"
                    },
                    {
                      "key": "manufacturerId",
                      "value": "<integer>"
                    },
                    {
                      "key": "isKit",
                      "value": "<boolean,null>"
                    },
                    {
                      "key": "isActive",
                      "value": "<boolean,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ba1fcf36-51fe-43a4-a3a5-067d436587d9",
          "name": "Get product by id",
          "request": {
            "name": "Get product by id",
            "description": {},
            "url": {
              "path": [
                "products",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "db80f535-3730-4923-9284-7e9afe18a78c",
              "name": "Product",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4921,\n    \"sku\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"type\": \"string\",\n    \"categoryId\": 8058,\n    \"costPrice\": \"string\",\n    \"sellPrice\": \"string\",\n    \"unit\": \"string\",\n    \"manufacturerId\": 8033,\n    \"manufacturerCode\": \"string\",\n    \"isKit\": true,\n    \"isActive\": false,\n    \"createdAt\": \"1971-05-31T14:57:17.142Z\",\n    \"updatedAt\": \"2006-12-24T10:37:06.156Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 3448\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d9687d78-9be6-4ff8-8cd5-224b89f8499f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "aee8ab85-778e-4b36-85e3-bc3cd807ef1b",
          "name": "Update product",
          "request": {
            "name": "Update product",
            "description": {},
            "url": {
              "path": [
                "products",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sku\": \"<string,null>\",\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b7d0f058-01d7-4955-a58d-21c09a1e6a6b",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku\": \"<string,null>\",\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4921,\n    \"sku\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"type\": \"string\",\n    \"categoryId\": 8058,\n    \"costPrice\": \"string\",\n    \"sellPrice\": \"string\",\n    \"unit\": \"string\",\n    \"manufacturerId\": 8033,\n    \"manufacturerCode\": \"string\",\n    \"isKit\": true,\n    \"isActive\": false,\n    \"createdAt\": \"1971-05-31T14:57:17.142Z\",\n    \"updatedAt\": \"2006-12-24T10:37:06.156Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 3448\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "da824903-9d81-41b4-ae22-35060851b68e",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku\": \"<string,null>\",\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b98fd6d5-1c1a-410b-bd6c-7f0d6f25d34b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku\": \"<string,null>\",\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "50d84399-6950-4306-9f24-a9b38991fdfd",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku\": \"<string,null>\",\n  \"name\": \"<string>\",\n  \"description\": \"<string,null>\",\n  \"salesDescription\": \"<string,null>\",\n  \"type\": \"<string>\",\n  \"categoryId\": \"<integer,null>\",\n  \"costPrice\": \"<string,null>\",\n  \"sellPrice\": \"<string,null>\",\n  \"unit\": \"<string,null>\",\n  \"manufacturerId\": \"<integer,null>\",\n  \"manufacturerCode\": \"<string,null>\",\n  \"isKit\": \"<boolean>\",\n  \"isActive\": \"<boolean>\",\n  \"buyTaxPercent\": \"<string,null>\",\n  \"sellTaxPercent\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "23625d28-5706-4803-8b3a-30686cd9067a",
          "name": "Delete product",
          "request": {
            "name": "Delete product",
            "description": {},
            "url": {
              "path": [
                "products",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "f13ebf69-dc35-45c4-9354-218ef35cf55e",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "bedd75a9-8dae-452f-8d0e-96e9964c7500",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2dc6f767-70da-4d94-9629-de814efeb738",
          "name": "List product kit items",
          "request": {
            "name": "List product kit items",
            "description": {},
            "url": {
              "path": [
                "products",
                ":id",
                "kit-items"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "a7a58af4-42fe-4899-90f4-fae60c83aec3",
              "name": "KitItems",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7148,\n      \"kitProductId\": 655,\n      \"componentProductId\": 9681,\n      \"defaultQuantity\": \"string\",\n      \"overrideCostPrice\": \"string\",\n      \"sortOrder\": 7197\n    },\n    {\n      \"id\": 1968,\n      \"kitProductId\": 4073,\n      \"componentProductId\": 3116,\n      \"defaultQuantity\": \"string\",\n      \"overrideCostPrice\": \"string\",\n      \"sortOrder\": 7704\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 1684\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7676c34c-379f-4694-86bb-f9e4281e06bd",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "fb992fc5-9340-4a32-9d73-da95a0478d8b",
          "name": "Add product kit item",
          "request": {
            "name": "Add product kit item",
            "description": {},
            "url": {
              "path": [
                "products",
                ":id",
                "kit-items"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tenantId\": \"<integer>\",\n  \"componentProductId\": \"<integer>\",\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\",\n  \"sortOrder\": \"<integer,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "07914227-3399-41e9-ba9e-bff615ae31ef",
              "name": "Added",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"tenantId\": \"<integer>\",\n  \"componentProductId\": \"<integer>\",\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\",\n  \"sortOrder\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2315,\n    \"kitProductId\": 370,\n    \"componentProductId\": 7491,\n    \"defaultQuantity\": \"string\",\n    \"overrideCostPrice\": \"string\",\n    \"sortOrder\": 5365\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7588\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b743592f-44d3-42f8-98fc-cb225fe3440a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"tenantId\": \"<integer>\",\n  \"componentProductId\": \"<integer>\",\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\",\n  \"sortOrder\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8559bcbf-bc09-4444-bbc2-cea2c0b06cfe",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"tenantId\": \"<integer>\",\n  \"componentProductId\": \"<integer>\",\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\",\n  \"sortOrder\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a634edf4-ce54-449a-91f6-c22a6ee8e64c",
          "name": "Remove kit item",
          "request": {
            "name": "Remove kit item",
            "description": {},
            "url": {
              "path": [
                "products",
                ":id",
                "kit-items",
                ":itemId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "itemId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "05cc1fa0-2794-4eb0-8b30-2dae27ae5757",
              "name": "Removed",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "2f04d3c7-67db-4562-880a-ccc76d0201a0",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f3303492-cefb-40f1-9df9-0c8cfe65fb10",
          "name": "Update a kit item",
          "request": {
            "name": "Update a kit item",
            "description": {
              "content": "Updates a kit component's quantity / override cost / sort order.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                ":id",
                "kit-items",
                ":itemId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "itemId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "1b192241-54c3-49a3-aeae-e1f51ab1b0d1",
              "name": "Updated kit item",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2315,\n    \"kitProductId\": 370,\n    \"componentProductId\": 7491,\n    \"defaultQuantity\": \"string\",\n    \"overrideCostPrice\": \"string\",\n    \"sortOrder\": 5365\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7588\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1b83d363-a381-4bf4-a546-cd44c3a9ec69",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "33a49c37-ce52-4cc1-9471-db7b91995817",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "06c50997-594b-4d7c-9edb-d5df16808580",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    ":itemId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "itemId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"defaultQuantity\": \"<string>\",\n  \"overrideCostPrice\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "113c5d36-a597-4ea5-8f54-420081751e37",
          "name": "Start CSV export of products",
          "request": {
            "name": "Start CSV export of products",
            "description": {
              "content": "Enqueues a CSV export job for products. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "82ba67d4-da62-4881-bdc7-a948ddc0d8bc",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1508f5ba-69ba-4159-bcd1-923642462213",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "45a4e8ac-3b6a-4b31-9521-2d1c89ca123f",
          "name": "Start CSV import of products",
          "request": {
            "name": "Start CSV import of products",
            "description": {
              "content": "Enqueues a CSV import job. sourcePath must be an opaque upload path returned by POST /jobs/uploads.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                "imports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "3ce4b0bd-82a8-4398-afd8-c5f9134c52cf",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2b10eb39-0689-4415-bd6f-f1d1ce11ec4b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5442ba23-73f5-4f11-b306-462ec1b6e43d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "imports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sourcePath\": \"<string>\",\n  \"mapping\": {\n    \"key_0\": \"<string>\",\n    \"key_1\": \"<string>\"\n  },\n  \"updateInPlace\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0019c45f-3f09-4297-909d-66c28b29831b",
          "name": "Start bulk operation on products",
          "request": {
            "name": "Start bulk operation on products",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 product ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "09f7d421-fc27-4f84-bcc3-02da1c2732a1",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7ce65ece-1370-4de4-bfbb-42e67d2547f5",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca1f057b-c6fa-405e-8fc5-0cfc68bcb829",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3fa30ecb-06fa-4d03-b919-6555603f023f",
          "name": "Bulk-fetch products by ID",
          "request": {
            "name": "Bulk-fetch products by ID",
            "description": {
              "content": "Fetch up to 50 products by ID in one round-trip. IDs that don't exist or belong to another tenant are silently omitted — compare meta.requested to meta.returned to detect missing.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                "get-many"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "04f107d6-f21f-416e-baf6-9c54c87decd3",
              "name": "Products",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 8277,\n      \"sku\": \"string\",\n      \"name\": \"string\",\n      \"description\": \"string\",\n      \"type\": \"string\",\n      \"categoryId\": 5091,\n      \"costPrice\": \"string\",\n      \"sellPrice\": \"string\",\n      \"unit\": \"string\",\n      \"manufacturerId\": 8725,\n      \"manufacturerCode\": \"string\",\n      \"isKit\": false,\n      \"isActive\": false,\n      \"createdAt\": \"1985-06-26T10:36:00.423Z\",\n      \"updatedAt\": \"2007-02-12T23:00:18.951Z\"\n    },\n    {\n      \"id\": 3622,\n      \"sku\": \"string\",\n      \"name\": \"string\",\n      \"description\": \"string\",\n      \"type\": \"string\",\n      \"categoryId\": 1389,\n      \"costPrice\": \"string\",\n      \"sellPrice\": \"string\",\n      \"unit\": \"string\",\n      \"manufacturerId\": 979,\n      \"manufacturerCode\": \"string\",\n      \"isKit\": false,\n      \"isActive\": true,\n      \"createdAt\": \"2024-04-23T11:57:29.109Z\",\n      \"updatedAt\": \"1947-02-02T16:22:41.869Z\"\n    }\n  ],\n  \"meta\": {\n    \"requested\": 9627,\n    \"returned\": 9675,\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"has_more\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"count\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cf5422e5-2bd0-4918-ba74-a916816acb53",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a0715b9d-efa6-4971-9f66-b33a03b7ffcf",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "get-many"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c681ad55-daee-4474-a1e5-2e301fa65da2",
          "name": "Product usage counts",
          "request": {
            "name": "Product usage counts",
            "description": {
              "content": "Returns how many active bids and kits reference the product ({ bidsCount, kitsCount }).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                ":id",
                "usage"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "1335ffe1-c731-4f37-b584-2e91948e6492",
              "name": "Usage",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"bidsCount\": 5907,\n    \"kitsCount\": 4115\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1775\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cdcc8e99-825f-4d73-81ae-a4b414b14e8f",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f28d618-83ab-4cd3-8c27-487583466803",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "07b96d94-bbad-413d-82b8-39d2694620b7",
          "name": "Restore a soft-deleted product",
          "request": {
            "name": "Restore a soft-deleted product",
            "description": {
              "content": "Clears the product's deletedAt. Gated at products:delete because restoring a soft-deleted record is a delete-class operation.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                ":id",
                "restore"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "e4f76596-3e6c-4977-bc13-3bcee2d17c53",
              "name": "Restored product",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4921,\n    \"sku\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"type\": \"string\",\n    \"categoryId\": 8058,\n    \"costPrice\": \"string\",\n    \"sellPrice\": \"string\",\n    \"unit\": \"string\",\n    \"manufacturerId\": 8033,\n    \"manufacturerCode\": \"string\",\n    \"isKit\": true,\n    \"isActive\": false,\n    \"createdAt\": \"1971-05-31T14:57:17.142Z\",\n    \"updatedAt\": \"2006-12-24T10:37:06.156Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 3448\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "13768f91-3509-481d-b1bf-3f3c957fda82",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8bf15f2f-585c-4336-adbc-7b2855060e30",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "accc43e9-d3e1-43df-ac9c-5a91ee6cc8df",
          "name": "Duplicate a product",
          "request": {
            "name": "Duplicate a product",
            "description": {
              "content": "Creates a copy of the product (with a new SKU) and returns the new row.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                ":id",
                "duplicate"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "cce81be8-c7dc-4d81-b304-3584ef864320",
              "name": "Duplicated product",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "duplicate"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 4921,\n    \"sku\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"type\": \"string\",\n    \"categoryId\": 8058,\n    \"costPrice\": \"string\",\n    \"sellPrice\": \"string\",\n    \"unit\": \"string\",\n    \"manufacturerId\": 8033,\n    \"manufacturerCode\": \"string\",\n    \"isKit\": true,\n    \"isActive\": false,\n    \"createdAt\": \"1971-05-31T14:57:17.142Z\",\n    \"updatedAt\": \"2006-12-24T10:37:06.156Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 3448\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ffed84de-05fc-498f-a59f-8792c042307d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "duplicate"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6820344b-d366-4e87-9ece-9511c4df5685",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "duplicate"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6b4e3b20-cc6c-4fa9-8919-951020c9437d",
          "name": "Bulk soft-delete products",
          "request": {
            "name": "Bulk soft-delete products",
            "description": {
              "content": "Soft-deletes up to 500 products by id. Returns { deletedCount }.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                "bulk-delete"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "1a5f6aad-8f3a-4a39-931c-93436e5a5f27",
              "name": "Deleted count",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk-delete"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"deletedCount\": 7096\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 209\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "99c1d778-9ec6-42cd-9ae3-e047085b53d1",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk-delete"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "84955df5-cc28-46da-8406-32a2cb9a3ca1",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk-delete"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "cc8d3096-aea9-49d4-b238-857d445bb72c",
          "name": "Bulk restore products",
          "request": {
            "name": "Bulk restore products",
            "description": {
              "content": "Restores up to 500 soft-deleted products by id. Returns { restoredCount }. Gated at products:delete.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                "bulk-restore"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "98d562bf-c986-4d26-8fe2-9201297e3bdd",
              "name": "Restored count",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk-restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"restoredCount\": 949\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 5676\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4143f465-207e-4a16-93fe-37bd38e58a19",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk-restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c127f25b-a84d-4961-90eb-b65a5f88d516",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    "bulk-restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "05fe6e6c-b834-4978-83c7-9f780fe9060e",
          "name": "Reorder kit items",
          "request": {
            "name": "Reorder kit items",
            "description": {
              "content": "Sets the sortOrder of a kit's component items to the given orderedIds order.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                ":id",
                "kit-items",
                "reorder"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"orderedIds\": [\n    \"<integer>\",\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "e36d0852-2429-4c52-812b-70d58be1dd91",
              "name": "Reordered kit items",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    "reorder"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"orderedIds\": [\n    \"<integer>\",\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 7148,\n      \"kitProductId\": 655,\n      \"componentProductId\": 9681,\n      \"defaultQuantity\": \"string\",\n      \"overrideCostPrice\": \"string\",\n      \"sortOrder\": 7197\n    },\n    {\n      \"id\": 1968,\n      \"kitProductId\": 4073,\n      \"componentProductId\": 3116,\n      \"defaultQuantity\": \"string\",\n      \"overrideCostPrice\": \"string\",\n      \"sortOrder\": 7704\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 1684\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "852bea2c-6791-47ea-ba24-984bf2667f8a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    "reorder"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"orderedIds\": [\n    \"<integer>\",\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c927f8d7-74a5-4fdd-8083-ee8de731e01d",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    "reorder"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"orderedIds\": [\n    \"<integer>\",\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8fcc8966-d37c-40ab-9614-e62457785751",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":id",
                    "kit-items",
                    "reorder"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"orderedIds\": [\n    \"<integer>\",\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "3dc4ec72-2e58-42fd-bd85-2e822c1b2571",
      "name": "Documents",
      "description": {
        "content": "File attachments on any entity, with versioning and signed upload/download URLs.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "abaff1bf-9f8d-4210-b088-443425080b2f",
          "name": "Count documents",
          "request": {
            "name": "Count documents",
            "description": {
              "content": "Returns the total number of documents in the tenant matching the optional `search`, `entityType`, `entityId`, `category`, `dateFrom`/`dateTo` filters. Mirrors GET /documents minus pagination.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "documents",
                "count"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "entityType",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "entityId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "4c67036b-b1df-4a30-9724-f869ab91f3cf",
              "name": "Count",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "entityType",
                      "value": "<string>"
                    },
                    {
                      "key": "entityId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "category",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"total\": 4893\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 232\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ae041ea2-fb77-4d23-b184-06fb280573d8",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    "count"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "entityType",
                      "value": "<string>"
                    },
                    {
                      "key": "entityId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "category",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "22d41e91-f139-4b9e-9712-6b9b1c165b6c",
          "name": "List documents",
          "request": {
            "name": "List documents",
            "description": {
              "content": "Returns a cursor-paginated list of document metadata (not the file bytes).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "documents"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "entityType",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "entityId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "compact",
                  "value": "<boolean>",
                  "description": "Return compact row projection (id + key fields only)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "c5d855db-f1f1-4895-935d-dd9dbd6f8f2f",
              "name": "Documents page",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "entityType",
                      "value": "<string>"
                    },
                    {
                      "key": "entityId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "category",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 2617,\n      \"entityType\": \"string\",\n      \"entityId\": 5489,\n      \"originalFilename\": \"string\",\n      \"storagePath\": \"string\",\n      \"mimeType\": \"string\",\n      \"fileSize\": 3163,\n      \"category\": \"string\",\n      \"description\": \"string\",\n      \"createdAt\": \"1983-05-31T05:04:56.040Z\",\n      \"updatedAt\": \"1991-02-16T02:40:06.429Z\"\n    },\n    {\n      \"id\": 6157,\n      \"entityType\": \"string\",\n      \"entityId\": 6467,\n      \"originalFilename\": \"string\",\n      \"storagePath\": \"string\",\n      \"mimeType\": \"string\",\n      \"fileSize\": 3327,\n      \"category\": \"string\",\n      \"description\": \"string\",\n      \"createdAt\": \"2004-07-26T23:20:08.171Z\",\n      \"updatedAt\": \"2011-08-23T15:27:22.089Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1642\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8c8b4757-8115-40a6-9e7d-1a95c259fd0c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "entityType",
                      "value": "<string>"
                    },
                    {
                      "key": "entityId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "category",
                      "value": "<string>"
                    },
                    {
                      "key": "search",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "compact",
                      "value": "<boolean>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7fcc3265-95df-4af8-85c0-81ab1c035a97",
          "name": "Get document metadata",
          "request": {
            "name": "Get document metadata",
            "description": {},
            "url": {
              "path": [
                "documents",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "ce249e20-463c-411e-bc4c-4a2bf567dc5e",
              "name": "Document",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2160,\n    \"entityType\": \"string\",\n    \"entityId\": 7492,\n    \"originalFilename\": \"string\",\n    \"storagePath\": \"string\",\n    \"mimeType\": \"string\",\n    \"fileSize\": 6685,\n    \"category\": \"string\",\n    \"description\": \"string\",\n    \"createdAt\": \"1994-04-02T18:58:06.344Z\",\n    \"updatedAt\": \"2020-04-03T03:46:58.351Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 9179\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "136435e5-3293-4924-9274-a1aa2af6ca42",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3411cd85-28e8-45c6-bfae-dc31ea63318c",
          "name": "Update document metadata",
          "request": {
            "name": "Update document metadata",
            "description": {},
            "url": {
              "path": [
                "documents",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"category\": \"<string,null>\",\n  \"description\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "9ce1d89b-adf3-49ab-9061-841eb36ea041",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"<string,null>\",\n  \"description\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2160,\n    \"entityType\": \"string\",\n    \"entityId\": 7492,\n    \"originalFilename\": \"string\",\n    \"storagePath\": \"string\",\n    \"mimeType\": \"string\",\n    \"fileSize\": 6685,\n    \"category\": \"string\",\n    \"description\": \"string\",\n    \"createdAt\": \"1994-04-02T18:58:06.344Z\",\n    \"updatedAt\": \"2020-04-03T03:46:58.351Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 9179\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f4769e6-6e0c-4cda-bef9-7ce9dd11d7af",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"<string,null>\",\n  \"description\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c96294af-bbd7-4f6c-9ea1-465b283a3280",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"<string,null>\",\n  \"description\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "95e8009d-e656-48a5-b0e1-6768ede9c50a",
          "name": "Delete document (soft)",
          "request": {
            "name": "Delete document (soft)",
            "description": {},
            "url": {
              "path": [
                "documents",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "1f854e1b-1db7-4c51-b9e7-c856def8fa9f",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "3f98370a-5d12-44d5-8a79-24d48ec82b97",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "00d4c5d9-01e1-437c-a519-9807435aca72",
          "name": "Download document file",
          "request": {
            "name": "Download document file",
            "description": {
              "content": "Streams the file bytes with appropriate Content-Type / Content-Disposition.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "documents",
                ":id",
                "download"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "3e629c17-7b82-46be-ab36-58c94e01bda7",
              "name": "File bytes",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id",
                    "download"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "3adff137-9727-4a10-85d9-5eedd970e3ae",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    ":id",
                    "download"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0c769c57-e75a-4d2c-88fa-ce4befebeaeb",
          "name": "Start CSV export of documents",
          "request": {
            "name": "Start CSV export of documents",
            "description": {
              "content": "Enqueues a CSV export job for documents. Poll /api/v1/jobs/{id} for status; GET /api/v1/jobs/{id}/download for the signed URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "documents",
                "exports"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filters\": {\n    \"key_0\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "1c040099-e640-4408-989b-197a2e32b773",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "65775e63-15fb-4eba-9731-75d2b6eda041",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    "exports"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"filters\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "eb91396a-cfba-488e-a8cd-0b288fd00f0c",
          "name": "Start bulk operation on documents",
          "request": {
            "name": "Start bulk operation on documents",
            "description": {
              "content": "Enqueues a bulk delete/restore job for up to 500 document ids.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "documents",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "e77aea4e-cae3-44b3-805d-e5b995eace57",
              "name": "Job enqueued",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"job_id\": \"string\",\n    \"status_url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 9927\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5d541320-c5fc-4d01-a765-1bc432d4e45c",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "83299bc4-a338-46cf-996b-63b78fea8ff8",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "documents",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"<string>\",\n  \"ids\": [\n    \"<integer>\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c0f91966-4f76-4c39-8436-4f1204725842",
      "name": "Calendar",
      "description": {
        "content": "Scheduled events derived from project phases, tasks and bid deadlines.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "25bea88c-8f39-48b2-a98a-dce5abff0116",
          "name": "List calendar events",
          "request": {
            "name": "List calendar events",
            "description": {
              "content": "Returns a list of calendar events within the given time window. Aggregates projects, tasks, phases, leads, bids and activities. Max window 366 days.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "calendar",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "start",
                  "value": "<dateTime>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "end",
                  "value": "<dateTime>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "types",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "assignedTo",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "projectId",
                  "value": "<integer,null>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "94e73aae-6341-42ef-8584-abe96503849c",
              "name": "Events",
              "originalRequest": {
                "url": {
                  "path": [
                    "calendar",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "start",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "end",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "types",
                      "value": "<string>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"string\",\n      \"type\": \"activity\",\n      \"title\": \"string\",\n      \"start\": \"1979-12-03T03:58:57.125Z\",\n      \"end\": \"1978-02-10T08:29:15.557Z\",\n      \"projectId\": 9937,\n      \"assignedTo\": 8054\n    },\n    {\n      \"id\": \"string\",\n      \"type\": \"phase\",\n      \"title\": \"string\",\n      \"start\": \"1953-09-03T15:49:34.062Z\",\n      \"end\": \"1947-06-12T13:27:47.317Z\",\n      \"projectId\": 796,\n      \"assignedTo\": 3117\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8342\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4b2618be-b15d-4a99-943b-0b6cc3f9e7e3",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "calendar",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "start",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "end",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "types",
                      "value": "<string>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "886cb34c-28eb-4247-815b-7ee9f28c2190",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "calendar",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "start",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "end",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "types",
                      "value": "<string>"
                    },
                    {
                      "key": "assignedTo",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "projectId",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "a191a46f-e78a-4464-8d6d-d2e2739d72f5",
      "name": "Comments",
      "description": {
        "content": "Discussion threads attached to records. Visibility follows the record commented on.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "e7c250f3-f51e-44f9-b62f-27b1d7a48189",
          "name": "List comments on a record",
          "request": {
            "name": "List comments on a record",
            "description": {
              "content": "Returns the comment thread attached to a record. Requires access to the record itself — comments inherit the visibility of what they hang on.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "comments",
                ":entityType",
                ":entityId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "entityType",
                  "description": "(Required) Record type, e.g. `project`, `bid`, `change_order`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "entityId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "cd7e1ea6-0a4a-4d8c-9520-09f7d245638e",
              "name": "Comment thread",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":entityType",
                    ":entityId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "entityType",
                      "description": "(Required) Record type, e.g. `project`, `bid`, `change_order`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "entityId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 1715,\n      \"entityType\": \"string\",\n      \"entityId\": 3567,\n      \"userId\": 6416,\n      \"content\": \"string\",\n      \"parentId\": 1769,\n      \"createdAt\": \"string\",\n      \"updatedAt\": \"string\"\n    },\n    {\n      \"id\": 8671,\n      \"entityType\": \"string\",\n      \"entityId\": 9126,\n      \"userId\": 9786,\n      \"content\": \"string\",\n      \"parentId\": 6279,\n      \"createdAt\": \"string\",\n      \"updatedAt\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ed852bb0-2358-48a5-905a-1304acb2c42a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":entityType",
                    ":entityId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "entityType",
                      "description": "(Required) Record type, e.g. `project`, `bid`, `change_order`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "entityId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e1ccbfe9-b015-4f39-a2b1-d43ff05b71c8",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":entityType",
                    ":entityId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "entityType",
                      "description": "(Required) Record type, e.g. `project`, `bid`, `change_order`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "entityId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7a72ff06-f9c3-4eb1-b260-649e99cc61e3",
          "name": "Post a comment",
          "request": {
            "name": "Post a comment",
            "description": {
              "content": "Creates a comment on a record and fans out @mention and thread notifications (in-app only, never email).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "comments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"entityType\": \"<string>\",\n  \"entityId\": \"<integer>\",\n  \"content\": \"<string>\",\n  \"parentId\": \"<integer,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "a7dc6a26-fe8e-4b52-a4ac-bfbea7e52a29",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"entityType\": \"<string>\",\n  \"entityId\": \"<integer>\",\n  \"content\": \"<string>\",\n  \"parentId\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 8647,\n    \"entityType\": \"string\",\n    \"entityId\": 5810,\n    \"userId\": 8977,\n    \"content\": \"string\",\n    \"parentId\": 1384,\n    \"createdAt\": \"string\",\n    \"updatedAt\": \"string\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8a612597-ef6b-483b-9023-7d61d9cd151a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"entityType\": \"<string>\",\n  \"entityId\": \"<integer>\",\n  \"content\": \"<string>\",\n  \"parentId\": \"<integer,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "01053077-d9c3-4329-ad14-10f7c0b53c7c",
          "name": "Edit a comment",
          "request": {
            "name": "Edit a comment",
            "description": {
              "content": "Edits a comment. Non-elevated roles may only edit their own.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "comments",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "652992c3-87a8-47f1-baa2-c51141cb2a0b",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 8647,\n    \"entityType\": \"string\",\n    \"entityId\": 5810,\n    \"userId\": 8977,\n    \"content\": \"string\",\n    \"parentId\": 1384,\n    \"createdAt\": \"string\",\n    \"updatedAt\": \"string\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a44e1c3a-53ef-457d-abbd-fb547f6a1112",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "35489e7a-f586-4f31-912d-3014f412623e",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": \"<string>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6ecdae54-d75f-4e99-8272-a8ab79c2089a",
          "name": "Delete a comment",
          "request": {
            "name": "Delete a comment",
            "description": {
              "content": "Soft-deletes a comment. Non-elevated roles may only delete their own.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "comments",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "f91e7f1e-781d-43fc-879e-6bd1be2788fd",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5554,\n    \"deleted\": false\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1c6ba20d-7836-490a-95d1-16a3c277c0a2",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5964a27a-bd03-4809-8437-c85016cf4820",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comments",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "6419a36a-6824-4b36-96c6-7f592e29a6a3",
      "name": "Notifications",
      "description": {
        "content": "In-app notifications for the user who owns the API key.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "caef11fa-2722-45f5-89b0-76ea2361b2c6",
          "name": "List notifications for the API key creator",
          "request": {
            "name": "List notifications for the API key creator",
            "description": {
              "content": "Returns the most recent notifications for the user that owns the API key. Supports filtering by type and unread state.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "notifications"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "offset",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "type",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "unreadOnly",
                  "value": "<boolean,null>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "87783527-8eb1-49b4-86b6-dbef0a369e03",
              "name": "Notifications page",
              "originalRequest": {
                "url": {
                  "path": [
                    "notifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "offset",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "unreadOnly",
                      "value": "<boolean,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 200,\n      \"tenantId\": 4216,\n      \"userId\": 85,\n      \"type\": \"string\",\n      \"title\": \"string\",\n      \"message\": \"string\",\n      \"entityType\": \"string\",\n      \"entityId\": 9999,\n      \"readAt\": \"2001-07-01T11:27:45.472Z\",\n      \"createdAt\": \"1990-02-02T17:44:50.434Z\"\n    },\n    {\n      \"id\": 8351,\n      \"tenantId\": 705,\n      \"userId\": 8256,\n      \"type\": \"string\",\n      \"title\": \"string\",\n      \"message\": \"string\",\n      \"entityType\": \"string\",\n      \"entityId\": 9632,\n      \"readAt\": \"1973-07-01T12:30:50.247Z\",\n      \"createdAt\": \"1993-12-09T23:06:33.060Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 5762\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "014e6b5a-00dc-4218-b787-72d6d4c5d061",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "notifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "offset",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "unreadOnly",
                      "value": "<boolean,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "202e7c19-806b-4d26-9f38-60e11f4afc9b",
      "name": "Users",
      "description": {
        "content": "Team members within the authenticated organization.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "6fa35414-e214-4e70-8bd7-cb34292ad976",
          "name": "List users",
          "request": {
            "name": "List users",
            "description": {
              "content": "Returns a cursor-paginated list of tenant team members (name, email, role).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "users"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8c16388b-7e6d-4018-8975-616184a00c31",
              "name": "Users page",
              "originalRequest": {
                "url": {
                  "path": [
                    "users"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 791,\n      \"tenantUserId\": 5191,\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"email\": \"string\",\n      \"username\": \"string\",\n      \"role\": \"string\",\n      \"isActive\": true,\n      \"joinedAt\": \"2025-08-17T16:42:19.959Z\"\n    },\n    {\n      \"id\": 945,\n      \"tenantUserId\": 5668,\n      \"firstName\": \"string\",\n      \"lastName\": \"string\",\n      \"email\": \"string\",\n      \"username\": \"string\",\n      \"role\": \"string\",\n      \"isActive\": false,\n      \"joinedAt\": \"2024-05-31T06:54:19.927Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 5952\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ac3652f4-f3d9-4717-9a78-a55c396edd7a",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "users"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6e2ab321-5b2f-4aeb-b9fc-0964b64fdfa6",
          "name": "Get user by id",
          "request": {
            "name": "Get user by id",
            "description": {},
            "url": {
              "path": [
                "users",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "c8923803-65bb-4c12-8cbf-57f6979e39d2",
              "name": "User",
              "originalRequest": {
                "url": {
                  "path": [
                    "users",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 1676,\n    \"tenantUserId\": 1454,\n    \"firstName\": \"string\",\n    \"lastName\": \"string\",\n    \"email\": \"string\",\n    \"username\": \"string\",\n    \"role\": \"string\",\n    \"isActive\": true,\n    \"joinedAt\": \"1986-04-20T05:17:55.894Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 4326\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a2c51742-5c27-4f47-8d95-d90b16b20982",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "users",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "ec9259d7-a39b-4144-9fc7-991ec73d9fe6",
      "name": "Settings",
      "description": {
        "content": "Organization-level configuration and branding.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "b9fd0d67-a496-4df6-82c8-6958aea3ddf2",
          "name": "Get branding settings",
          "request": {
            "name": "Get branding settings",
            "description": {
              "content": "Returns the tenant's branding (excludes logo bytes — download via internal app).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "settings",
                "branding"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "62b1dc87-9e0f-40aa-bbd6-09b88332cb68",
              "name": "Branding",
              "originalRequest": {
                "url": {
                  "path": [
                    "settings",
                    "branding"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 2460,\n    \"tenantId\": 364,\n    \"companyName\": \"string\",\n    \"primaryColor\": \"string\",\n    \"accentColor\": \"string\",\n    \"hasLogo\": false\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 8394\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8bcf7f66-fdd4-4253-aa8e-e8a7d573ba54",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "settings",
                    "branding"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d6709e1f-de37-45fc-a900-562d2f5ced0c",
          "name": "Get data retention settings",
          "request": {
            "name": "Get data retention settings",
            "description": {},
            "url": {
              "path": [
                "settings",
                "data-retention"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "f898d28f-17c1-4d20-8229-0378fd949c43",
              "name": "DataRetention",
              "originalRequest": {
                "url": {
                  "path": [
                    "settings",
                    "data-retention"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"auditLogRetentionDays\": 96,\n    \"activityLogRetentionDays\": 6679,\n    \"notificationRetentionDays\": 9639,\n    \"deletedRecordsRetentionDays\": 7365,\n    \"exportRetentionDays\": 2859\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 6665\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca46727f-7200-491e-a2a9-1202ffc2993e",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "settings",
                    "data-retention"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "3a86bd5b-d287-41b4-bef1-184307b1cb57",
      "name": "SignatureRequests",
      "description": {
        "content": "E-signature requests raised against bids and change orders.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "d75c650b-d6cf-405e-ae03-e994158c933e",
          "name": "List e-signature requests",
          "request": {
            "name": "List e-signature requests",
            "description": {
              "content": "Signature requests across bids and change orders, newest first. The recipient token is never returned; the signing URL requires signatures:send and an active request.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "signature-requests"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "entityType",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "entityId",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<integer,null>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "e9dfb048-abda-426d-9fb5-f941ad662bdf",
              "name": "Signature requests page",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "entityType",
                      "value": "<string>"
                    },
                    {
                      "key": "entityId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 1172,\n      \"entityType\": \"bid\",\n      \"entityId\": 4415,\n      \"status\": \"string\",\n      \"signerName\": \"string\",\n      \"signerEmail\": \"string\",\n      \"sentAt\": \"2018-12-16T20:24:43.140Z\",\n      \"signedAt\": \"2023-10-10T06:17:46.092Z\",\n      \"signedDocumentId\": 1011,\n      \"signingUrl\": \"string\"\n    },\n    {\n      \"id\": 5223,\n      \"entityType\": \"change_order\",\n      \"entityId\": 2050,\n      \"status\": \"string\",\n      \"signerName\": \"string\",\n      \"signerEmail\": \"string\",\n      \"sentAt\": \"1972-01-03T10:22:44.812Z\",\n      \"signedAt\": \"2024-05-27T00:26:28.682Z\",\n      \"signedDocumentId\": 89,\n      \"signingUrl\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 841\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4f60f697-586f-4dd6-8206-4a94dc573110",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "entityType",
                      "value": "<string>"
                    },
                    {
                      "key": "entityId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "86f0f3fa-ccd2-4751-a334-c6182b4ebdcb",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "entityType",
                      "value": "<string>"
                    },
                    {
                      "key": "entityId",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<integer,null>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4d1c0ab5-8f32-4f97-b8b6-a52afcdd4114",
          "name": "Get an e-signature request",
          "request": {
            "name": "Get an e-signature request",
            "description": {},
            "url": {
              "path": [
                "signature-requests",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "2eea86cb-30fc-497f-9945-bc8a118f272a",
              "name": "Signature request",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7379,\n    \"entityType\": \"change_order\",\n    \"entityId\": 8704,\n    \"status\": \"string\",\n    \"signerName\": \"string\",\n    \"signerEmail\": \"string\",\n    \"sentAt\": \"2014-07-09T08:45:58.030Z\",\n    \"signedAt\": \"2021-10-01T10:18:16.617Z\",\n    \"signedDocumentId\": 8053,\n    \"signingUrl\": \"string\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "67641ca2-94ac-4ea6-bb16-c92d0f50a862",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "118abbe1-61e7-449a-9ea6-e47bad631cb7",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "550a8b0c-90a9-428c-8bb1-8b53d15804da",
          "name": "Resend an e-signature request",
          "request": {
            "name": "Resend an e-signature request",
            "description": {
              "content": "Re-emails the SAME signing link. No new document is created. 409s when the request is not pending or sent.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "signature-requests",
                ":id",
                "resend"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "7abfb721-9f2a-4af3-b098-fc734c86d777",
              "name": "Resend result",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "resend"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"emailSent\": false\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0e236dc1-7c59-4db3-8391-918e018d4a08",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "resend"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "91bd8647-fb06-4234-887e-b767ae24c20b",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "resend"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "91e9aff8-004f-4205-8a22-5d2e932ef646",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "resend"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7df5dc17-cf34-44e8-813d-f8b2cdabf7cd",
          "name": "Void an e-signature request",
          "request": {
            "name": "Void an e-signature request",
            "description": {
              "content": "Cancels an active request and kills its signing link. The stored row is the source of truth; cancelling the remote document is best-effort.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "signature-requests",
                ":id",
                "void"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "82c40843-fb8d-403e-985f-5c456c3479f6",
              "name": "Voided",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 7379,\n    \"entityType\": \"change_order\",\n    \"entityId\": 8704,\n    \"status\": \"string\",\n    \"signerName\": \"string\",\n    \"signerEmail\": \"string\",\n    \"sentAt\": \"2014-07-09T08:45:58.030Z\",\n    \"signedAt\": \"2021-10-01T10:18:16.617Z\",\n    \"signedDocumentId\": 8053,\n    \"signingUrl\": \"string\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c2f56e7f-b1ed-41d2-b5a2-b47d52f15cc5",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3d00f906-5ec9-46d9-9190-08cd46135497",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "08953bd7-cdb4-4fea-afae-58690c2443ac",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "signature-requests",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c0968e6c-eab8-482d-8d80-e14883620f70",
      "name": "Webhooks",
      "description": {
        "content": "Outbound webhook endpoints and their delivery history.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "a18b671f-a71f-4ca6-bf25-fb763cb16111",
          "name": "List webhook endpoints",
          "request": {
            "name": "List webhook endpoints",
            "description": {
              "content": "Returns all active webhook endpoints for the tenant (capped at 200, no cursor pagination yet). The signingSecret field is never returned here — it is only surfaced once on creation and once on rotation.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-endpoints"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "e5215426-7d5b-4e98-b110-a85a1859ff3f",
              "name": "Endpoints",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 2856,\n      \"url\": \"string\",\n      \"description\": \"string\",\n      \"eventTypes\": [\n        \"string\",\n        \"string\"\n      ],\n      \"isActive\": true,\n      \"consecutiveFailures\": 9904,\n      \"lastDeliveredAt\": \"1998-04-19T09:10:57.347Z\",\n      \"disabledAt\": \"1996-09-24T11:33:45.139Z\",\n      \"disabledReason\": \"string\",\n      \"createdAt\": \"1982-05-23T01:11:03.482Z\",\n      \"updatedAt\": \"2025-12-12T03:11:53.742Z\"\n    },\n    {\n      \"id\": 2984,\n      \"url\": \"string\",\n      \"description\": \"string\",\n      \"eventTypes\": [\n        \"string\",\n        \"string\"\n      ],\n      \"isActive\": true,\n      \"consecutiveFailures\": 117,\n      \"lastDeliveredAt\": \"1989-12-20T23:35:52.071Z\",\n      \"disabledAt\": \"1952-12-14T22:05:09.660Z\",\n      \"disabledReason\": \"string\",\n      \"createdAt\": \"2006-04-03T04:29:07.625Z\",\n      \"updatedAt\": \"1981-09-23T06:43:34.668Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 9636\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8cf6daef-05ad-4c8a-8e9e-7f3bfd3dbee3",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "311bcaca-5f4d-425e-b391-f73f823ee581",
          "name": "Create webhook endpoint",
          "request": {
            "name": "Create webhook endpoint",
            "description": {
              "content": "Creates a new webhook endpoint. The url is SSRF-validated before creation. The signingSecret is returned in the response exactly once — store it now, it cannot be retrieved later.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-endpoints"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"<string>\",\n  \"eventTypes\": [\n    \"<string>\"\n  ],\n  \"description\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "a7c1ebf9-a6a2-410b-8523-bceb88083dfc",
              "name": "Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"<string>\",\n  \"eventTypes\": [\n    \"<string>\"\n  ],\n  \"description\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"consecutiveFailures\": 9207,\n    \"createdAt\": {\n      \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"description\": \"string\",\n    \"disabledAt\": {\n      \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"disabledReason\": \"string\",\n    \"eventTypes\": [\n      {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n    ],\n    \"id\": 4191,\n    \"isActive\": false,\n    \"lastDeliveredAt\": {\n      \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"signingSecret\": \"string\",\n    \"updatedAt\": {\n      \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"url\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1973\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "defef9ba-7e53-4fcd-a4ac-54b283941b59",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"<string>\",\n  \"eventTypes\": [\n    \"<string>\"\n  ],\n  \"description\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "54707894-e470-4adb-a57e-c28c907f6482",
          "name": "Get webhook endpoint",
          "request": {
            "name": "Get webhook endpoint",
            "description": {
              "content": "Returns a single webhook endpoint. The signingSecret field is redacted.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-endpoints",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "55b9831c-7bba-4f06-bad0-29ed23facb07",
              "name": "Endpoint",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 1939,\n    \"url\": \"string\",\n    \"description\": \"string\",\n    \"eventTypes\": [\n      \"string\",\n      \"string\"\n    ],\n    \"isActive\": true,\n    \"consecutiveFailures\": 4320,\n    \"lastDeliveredAt\": \"2000-03-30T14:21:44.836Z\",\n    \"disabledAt\": \"2020-02-05T02:20:42.705Z\",\n    \"disabledReason\": \"string\",\n    \"createdAt\": \"1999-04-15T06:51:22.230Z\",\n    \"updatedAt\": \"1985-07-22T08:25:17.294Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7882\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2f518c61-1038-4c5d-a5d7-8970f967c3bf",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ead08001-d469-47d3-8a6f-a7de7a75a9ed",
          "name": "Update webhook endpoint",
          "request": {
            "name": "Update webhook endpoint",
            "description": {
              "content": "Partially updates a webhook endpoint. If url changes, it is re-validated against SSRF rules. The signingSecret is never returned.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-endpoints",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"<string>\",\n  \"eventTypes\": [\n    \"<string>\"\n  ],\n  \"description\": \"<string,null>\",\n  \"isActive\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5526a66b-a765-4ba8-b983-509c6b05373d",
              "name": "Updated",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"<string>\",\n  \"eventTypes\": [\n    \"<string>\"\n  ],\n  \"description\": \"<string,null>\",\n  \"isActive\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 1939,\n    \"url\": \"string\",\n    \"description\": \"string\",\n    \"eventTypes\": [\n      \"string\",\n      \"string\"\n    ],\n    \"isActive\": true,\n    \"consecutiveFailures\": 4320,\n    \"lastDeliveredAt\": \"2000-03-30T14:21:44.836Z\",\n    \"disabledAt\": \"2020-02-05T02:20:42.705Z\",\n    \"disabledReason\": \"string\",\n    \"createdAt\": \"1999-04-15T06:51:22.230Z\",\n    \"updatedAt\": \"1985-07-22T08:25:17.294Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 7882\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7dc38b0e-5482-4952-ae77-f26875466c19",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"<string>\",\n  \"eventTypes\": [\n    \"<string>\"\n  ],\n  \"description\": \"<string,null>\",\n  \"isActive\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f174cc9a-2a61-4979-ac61-0a1a618da340",
              "name": "Validation failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"<string>\",\n  \"eventTypes\": [\n    \"<string>\"\n  ],\n  \"description\": \"<string,null>\",\n  \"isActive\": \"<boolean>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "265ecf01-dc14-4891-9e63-b82dd29e4e2d",
          "name": "Delete webhook endpoint",
          "request": {
            "name": "Delete webhook endpoint",
            "description": {
              "content": "Soft-deletes a webhook endpoint. Future events will not be delivered.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-endpoints",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "5e70e9f4-8431-430b-8780-31e0102d75cb",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "81dfbb9d-f56e-4c5b-9031-20ce8cf422d1",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1bad88cf-1e3f-4748-a62c-fc5263135731",
          "name": "Rotate webhook signing secret",
          "request": {
            "name": "Rotate webhook signing secret",
            "description": {
              "content": "Generates a new signing secret for the endpoint and returns it in the response. The old secret is invalidated immediately. Surface this value once and store it securely.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-endpoints",
                ":id",
                "rotate-secret"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "c375a9c8-6567-4f18-8df3-4c0deeea43ef",
              "name": "Rotated",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"signingSecret\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 3710\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eaa2c3f3-928a-4c5f-9dc2-60ee62cf3f8b",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f0a723ec-111a-458c-b1f7-95360fa1b733",
          "name": "List recent deliveries for an endpoint",
          "request": {
            "name": "List recent deliveries for an endpoint",
            "description": {
              "content": "Returns up to 100 most recent webhook delivery rows for the endpoint, ordered most-recent-first.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-endpoints",
                ":id",
                "deliveries"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "64db59b1-038b-4229-9135-466625f7ebbd",
              "name": "Deliveries",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id",
                    "deliveries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 4413,\n      \"eventId\": \"string\",\n      \"endpointId\": 3158,\n      \"status\": \"succeeded\",\n      \"attemptCount\": 7773,\n      \"nextAttemptAt\": \"2009-01-04T22:42:03.028Z\",\n      \"lastAttemptedAt\": \"2004-08-28T17:07:26.845Z\",\n      \"responseStatus\": 5028,\n      \"responseBody\": \"string\",\n      \"responseHeaders\": {\n        \"key_0\": \"string\"\n      },\n      \"errorMessage\": \"string\",\n      \"createdAt\": \"1950-06-13T10:19:34.019Z\",\n      \"completedAt\": \"1962-05-08T00:41:36.752Z\"\n    },\n    {\n      \"id\": 8942,\n      \"eventId\": \"string\",\n      \"endpointId\": 2609,\n      \"status\": \"pending\",\n      \"attemptCount\": 4280,\n      \"nextAttemptAt\": \"1971-04-23T19:03:04.817Z\",\n      \"lastAttemptedAt\": \"1999-04-16T07:28:17.809Z\",\n      \"responseStatus\": 6079,\n      \"responseBody\": \"string\",\n      \"responseHeaders\": {\n        \"key_0\": \"string\"\n      },\n      \"errorMessage\": \"string\",\n      \"createdAt\": \"1960-06-28T05:29:33.305Z\",\n      \"completedAt\": \"1978-06-14T10:41:14.356Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 393\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1c50e372-3d23-41e9-9ac2-db0a6dd6401f",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-endpoints",
                    ":id",
                    "deliveries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "eb9bb1a2-d10a-48d9-ac83-79d7eafe6493",
          "name": "List webhook deliveries (tenant-wide)",
          "request": {
            "name": "List webhook deliveries (tenant-wide)",
            "description": {
              "content": "Returns cursor-paginated webhook delivery rows for the calling tenant across all endpoints. Filterable by endpoint, status, event type, and createdAt date range. Replaces the per-endpoint `GET /webhook-endpoints/{id}/deliveries` (still available but hard-capped at 100 rows with no pagination).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-deliveries"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "endpointId",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "eventType",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "9ffc7cd9-1f4d-45c1-bd91-0610f5823b7a",
              "name": "Deliveries page",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "endpointId",
                      "value": "<integer>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "eventType",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 4413,\n      \"eventId\": \"string\",\n      \"endpointId\": 3158,\n      \"status\": \"succeeded\",\n      \"attemptCount\": 7773,\n      \"nextAttemptAt\": \"2009-01-04T22:42:03.028Z\",\n      \"lastAttemptedAt\": \"2004-08-28T17:07:26.845Z\",\n      \"responseStatus\": 5028,\n      \"responseBody\": \"string\",\n      \"responseHeaders\": {\n        \"key_0\": \"string\"\n      },\n      \"errorMessage\": \"string\",\n      \"createdAt\": \"1950-06-13T10:19:34.019Z\",\n      \"completedAt\": \"1962-05-08T00:41:36.752Z\"\n    },\n    {\n      \"id\": 8942,\n      \"eventId\": \"string\",\n      \"endpointId\": 2609,\n      \"status\": \"pending\",\n      \"attemptCount\": 4280,\n      \"nextAttemptAt\": \"1971-04-23T19:03:04.817Z\",\n      \"lastAttemptedAt\": \"1999-04-16T07:28:17.809Z\",\n      \"responseStatus\": 6079,\n      \"responseBody\": \"string\",\n      \"responseHeaders\": {\n        \"key_0\": \"string\"\n      },\n      \"errorMessage\": \"string\",\n      \"createdAt\": \"1960-06-28T05:29:33.305Z\",\n      \"completedAt\": \"1978-06-14T10:41:14.356Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 393\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "18071f35-9f69-45d4-8cde-039c447b03e1",
              "name": "Bad request",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "endpointId",
                      "value": "<integer>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "eventType",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "66b331bc-8b7c-48cf-9ffb-38037d676421",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "endpointId",
                      "value": "<integer>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "eventType",
                      "value": "<string>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "53b6f984-8436-4b06-b539-f9960c964e8b",
          "name": "Get webhook delivery",
          "request": {
            "name": "Get webhook delivery",
            "description": {
              "content": "Returns a single webhook delivery row, including the response body (capped at 10KB) and headers captured from the most recent attempt.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-deliveries",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "c873b06f-292d-44f9-8a4d-efbe92fc8eb3",
              "name": "Delivery",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5267,\n    \"eventId\": \"string\",\n    \"endpointId\": 1758,\n    \"status\": \"pending\",\n    \"attemptCount\": 837,\n    \"nextAttemptAt\": \"2001-05-19T07:23:02.055Z\",\n    \"lastAttemptedAt\": \"1984-02-29T11:20:22.359Z\",\n    \"responseStatus\": 4849,\n    \"responseBody\": \"string\",\n    \"responseHeaders\": {\n      \"key_0\": \"string\"\n    },\n    \"errorMessage\": \"string\",\n    \"createdAt\": \"2010-04-10T10:53:54.908Z\",\n    \"completedAt\": \"1967-08-19T00:52:27.171Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 2580\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a0c5da76-a985-4084-9045-375808307b36",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c321e0a0-14f6-4a22-ad0d-b261f046657e",
          "name": "Replay webhook delivery",
          "request": {
            "name": "Replay webhook delivery",
            "description": {
              "content": "Re-enqueues the delivery for another delivery attempt. The attemptCount is reset to 0, status is set back to pending, and the response/error fields are cleared. Returns 409 if the linked endpoint has been soft-deleted.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "webhook-deliveries",
                ":id",
                "replay"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<integer>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "b2f9a371-378a-425b-9d42-e666b38875c5",
              "name": "Replayed",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries",
                    ":id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": 5267,\n    \"eventId\": \"string\",\n    \"endpointId\": 1758,\n    \"status\": \"pending\",\n    \"attemptCount\": 837,\n    \"nextAttemptAt\": \"2001-05-19T07:23:02.055Z\",\n    \"lastAttemptedAt\": \"1984-02-29T11:20:22.359Z\",\n    \"responseStatus\": 4849,\n    \"responseBody\": \"string\",\n    \"responseHeaders\": {\n      \"key_0\": \"string\"\n    },\n    \"errorMessage\": \"string\",\n    \"createdAt\": \"2010-04-10T10:53:54.908Z\",\n    \"completedAt\": \"1967-08-19T00:52:27.171Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 2580\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5d4bae4c-3397-49f9-a2ed-6dcffdfa17b8",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries",
                    ":id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "97104e6d-1ed0-4da4-8de6-387e59b44200",
              "name": "Endpoint deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "webhook-deliveries",
                    ":id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<integer>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "d839c5d4-50cc-41a7-8a01-f84fd162d028",
      "name": "Jobs",
      "description": {
        "content": "Asynchronous work — CSV imports and exports — with progress and result artifacts.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "82f3b61f-41ab-4fc0-bdaf-97f03d52d3b0",
          "name": "List async jobs",
          "request": {
            "name": "List async jobs",
            "description": {
              "content": "Returns a cursor-paginated list of async jobs initiated by the authenticated tenant.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "jobs"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "type",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "resourceType",
                  "value": "<string>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "5a131b42-9017-4d96-9909-ed422b98eebc",
              "name": "Jobs page",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "resourceType",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"string\",\n      \"type\": \"string\",\n      \"resourceType\": \"string\",\n      \"status\": \"string\",\n      \"createdAt\": \"2014-02-20T15:24:28.513Z\",\n      \"expiresAt\": \"1990-12-23T22:38:50.074Z\",\n      \"progress\": {\n        \"processed\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"total\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"errorsCount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      },\n      \"params\": \"\",\n      \"result\": \"\",\n      \"errorMessage\": \"string\",\n      \"startedAt\": \"1961-05-11T09:49:32.137Z\",\n      \"completedAt\": \"1988-10-03T16:55:00.981Z\"\n    },\n    {\n      \"id\": \"string\",\n      \"type\": \"string\",\n      \"resourceType\": \"string\",\n      \"status\": \"string\",\n      \"createdAt\": \"1953-04-28T03:15:40.892Z\",\n      \"expiresAt\": \"1946-12-16T08:01:59.015Z\",\n      \"progress\": {\n        \"processed\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"total\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        },\n        \"errorsCount\": {\n          \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n        }\n      },\n      \"params\": \"\",\n      \"result\": \"\",\n      \"errorMessage\": \"string\",\n      \"startedAt\": \"1973-09-26T12:44:44.420Z\",\n      \"completedAt\": \"2014-11-15T22:23:53.273Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 1299\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "faa189e5-4fab-4fc6-a8ad-38c8dd6094fb",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "resourceType",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e7f1f1d2-c6df-49b9-8486-b5557fcdab62",
          "name": "Get job by id",
          "request": {
            "name": "Get job by id",
            "description": {
              "content": "Returns a single async job (status, progress, result, error message).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "jobs",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "668387d4-94a6-4167-a73c-d2cb3c4e3d00",
              "name": "Job",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": \"string\",\n    \"type\": \"string\",\n    \"resourceType\": \"string\",\n    \"status\": \"string\",\n    \"createdAt\": \"2003-09-16T10:54:11.191Z\",\n    \"expiresAt\": \"2026-03-05T07:16:47.973Z\",\n    \"progress\": {\n      \"processed\": 368,\n      \"total\": 7210,\n      \"errorsCount\": 7103\n    },\n    \"params\": \"\",\n    \"result\": \"\",\n    \"errorMessage\": \"string\",\n    \"startedAt\": \"2021-05-02T02:52:07.230Z\",\n    \"completedAt\": \"1979-06-10T09:03:06.935Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 5831\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "de942d6b-66a7-4fbb-a056-40abbc0c21a3",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "fd2f4c82-e819-41eb-a78c-b7fb77bfdd4c",
          "name": "Soft-delete job",
          "request": {
            "name": "Soft-delete job",
            "description": {
              "content": "Soft-deletes the job row. Stored artifacts will be reaped on TTL expiry.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "jobs",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "ffdcb0bb-ca0c-4974-bb2a-e68bbf5c0d9f",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "9f04f79d-541f-466a-9da3-a6ca93065617",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8436fc17-0c20-449f-a5a2-166217da198b",
          "name": "Download job result artifact",
          "request": {
            "name": "Download job result artifact",
            "description": {
              "content": "Redirects (302) to a short-lived pre-signed URL for the result artifact (succeeded/partial jobs only).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "jobs",
                ":id",
                "download"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "c9115e90-0509-48cb-be07-d9ee45900168",
              "name": "Redirect to signed download URL",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "download"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Found",
              "code": 302,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "e7b83633-7b41-4567-b531-eedc162b2d71",
              "name": "Not found or no artifact",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "download"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c75b4e7d-cd36-474b-a40c-8456be8a659e",
              "name": "Job not in a downloadable state",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "download"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "63fb5480-05d9-4b43-8838-ba98f99412d7",
          "name": "Download job errors artifact",
          "request": {
            "name": "Download job errors artifact",
            "description": {
              "content": "Redirects (302) to a short-lived pre-signed URL for the row-level errors CSV (partial/failed jobs only).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "jobs",
                ":id",
                "errors"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "9cebd8d5-26f4-47da-9d1f-960e84b2b33e",
              "name": "Redirect to signed errors URL",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "errors"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Found",
              "code": 302,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "06d7e812-da1e-4045-ab1e-b99f437d85fc",
              "name": "Not found or no errors artifact",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "errors"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "76f47248-8ddc-4782-8975-36638ba4620b",
          "name": "Cancel job",
          "request": {
            "name": "Cancel job",
            "description": {
              "content": "Cancels a queued or running job. Already-terminal jobs return 409.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "jobs",
                ":id",
                "cancel"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "2239990b-f3bb-4903-bc5a-7b1eca90752c",
              "name": "Cancelled",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"id\": \"string\",\n    \"type\": \"string\",\n    \"resourceType\": \"string\",\n    \"status\": \"string\",\n    \"createdAt\": \"2003-09-16T10:54:11.191Z\",\n    \"expiresAt\": \"2026-03-05T07:16:47.973Z\",\n    \"progress\": {\n      \"processed\": 368,\n      \"total\": 7210,\n      \"errorsCount\": 7103\n    },\n    \"params\": \"\",\n    \"result\": \"\",\n    \"errorMessage\": \"string\",\n    \"startedAt\": \"2021-05-02T02:52:07.230Z\",\n    \"completedAt\": \"1979-06-10T09:03:06.935Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 5831\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90e57f2e-6ada-4b1a-a59f-8dc3ba5e8575",
              "name": "Not found",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1cb52ed3-2862-4a5a-82d8-8718c38a0b83",
              "name": "Job already terminal",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    ":id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "id",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "04f43570-b073-4303-90db-9dfae263e161",
          "name": "Get signed URL for CSV upload",
          "request": {
            "name": "Get signed URL for CSV upload",
            "description": {
              "content": "Returns a short-lived signed PUT URL. Caller uploads the CSV bytes directly to that URL, then passes the returned sourcePath to POST /{module}/imports.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "jobs",
                "uploads"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                "key": "Idempotency-Key",
                "value": "<uuid>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contentType\": \"text/csv\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5a1d8167-e6fe-4a48-ba60-3e0522201824",
              "name": "Signed URL",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    "uploads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contentType\": \"text/csv\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"uploadUrl\": \"https://CSiMc.hzitrs1rbyvp3aQqgiBoVngdtC3HEuz9FB0yy1VC\",\n    \"sourcePath\": \"string\",\n    \"expiresInSeconds\": 9936\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": false,\n      \"count\": 6911\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45a348c2-ad32-4ed2-a249-4f1679b6ccf6",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    "uploads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contentType\": \"text/csv\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "85dc3ecf-8ec2-4440-8ac6-8a6e9908d129",
              "name": "Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "jobs",
                    "uploads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "disabled": false,
                    "description": "Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns `409 idempotency_key_reused`. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.",
                    "key": "Idempotency-Key",
                    "value": "<uuid>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contentType\": \"text/csv\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "bb03ae08-4010-49f7-9040-cb347a11ed4b",
      "name": "Observability",
      "description": {
        "content": "API audit logs and usage metering for the authenticated organization.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "56161683-eaab-411f-a15e-3669c38ace84",
          "name": "List API audit log entries for the calling tenant",
          "request": {
            "name": "List API audit log entries for the calling tenant",
            "description": {
              "content": "Returns cursor-paginated API audit log rows for the calling tenant. Each row records one v1 API request — method, path, status, duration, request id, and (when authenticated) the API key id, OAuth token id, or user id that made the call. Filterable by API key, HTTP method, status code, and date range. Tenant-scoped — Tenant A can never see Tenant B's audit log even if scopes are mis-issued.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api-audit-logs"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "apiKeyId",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "method",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<integer,null>"
                },
                {
                  "disabled": false,
                  "key": "dateFrom",
                  "value": "<dateTime>",
                  "description": "ISO 8601 lower bound for createdAt (inclusive)"
                },
                {
                  "disabled": false,
                  "key": "dateTo",
                  "value": "<dateTime>",
                  "description": "ISO 8601 upper bound for createdAt (inclusive)"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "9efedfb4-add8-4050-ad11-6a38e146fec1",
              "name": "Audit log page",
              "originalRequest": {
                "url": {
                  "path": [
                    "api-audit-logs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "apiKeyId",
                      "value": "<integer>"
                    },
                    {
                      "key": "method",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": 8435,\n      \"tenantId\": 6104,\n      \"apiKeyId\": 2629,\n      \"oauthTokenId\": 543,\n      \"userId\": 862,\n      \"method\": \"string\",\n      \"path\": \"string\",\n      \"status\": 7206,\n      \"durationMs\": 6465,\n      \"requestId\": \"string\",\n      \"ip\": \"string\",\n      \"userAgent\": \"string\",\n      \"errorCode\": \"string\",\n      \"createdAt\": \"1969-01-31T00:52:56.057Z\"\n    },\n    {\n      \"id\": 4238,\n      \"tenantId\": 7201,\n      \"apiKeyId\": 7963,\n      \"oauthTokenId\": 3755,\n      \"userId\": 4199,\n      \"method\": \"string\",\n      \"path\": \"string\",\n      \"status\": 3620,\n      \"durationMs\": 9238,\n      \"requestId\": \"string\",\n      \"ip\": \"string\",\n      \"userAgent\": \"string\",\n      \"errorCode\": \"string\",\n      \"createdAt\": \"1949-10-31T11:35:13.458Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 2127\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7a9e2d51-ed41-40ee-a3e9-45452ca00b36",
              "name": "Bad request",
              "originalRequest": {
                "url": {
                  "path": [
                    "api-audit-logs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "apiKeyId",
                      "value": "<integer>"
                    },
                    {
                      "key": "method",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7135811d-0660-4159-a64e-a68881b597d9",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "api-audit-logs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "<integer>"
                    },
                    {
                      "key": "cursor",
                      "value": "<string>"
                    },
                    {
                      "key": "apiKeyId",
                      "value": "<integer>"
                    },
                    {
                      "key": "method",
                      "value": "<string>"
                    },
                    {
                      "key": "status",
                      "value": "<integer,null>"
                    },
                    {
                      "key": "dateFrom",
                      "value": "<dateTime>"
                    },
                    {
                      "key": "dateTo",
                      "value": "<dateTime>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a4ea1b9d-30ba-403b-bddb-2ab0908b53e3",
          "name": "Get current rate-limit consumption",
          "request": {
            "name": "Get current rate-limit consumption",
            "description": {
              "content": "Returns the calling tenant's current rate-limit consumption for both the tenant-wide cost-weighted budget (sliding hour) and the per-API-key request limit (sliding minute). Use this to surface live consumption in developer dashboards or to back off proactively before hitting `429`. Data is sourced from the same Redis-backed buckets that the rate limiter writes to, so the numbers returned here are exactly the limits enforced.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "usage"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "48b8ce67-7535-4540-9fb5-66d1674082ff",
              "name": "Current usage",
              "originalRequest": {
                "url": {
                  "path": [
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"tenant\": {\n      \"limit\": 7385,\n      \"used\": 3663,\n      \"remaining\": 5885,\n      \"resetSeconds\": 2859,\n      \"windowSeconds\": 9463\n    },\n    \"apiKey\": {\n      \"limit\": 2533,\n      \"used\": 3606,\n      \"remaining\": 7256,\n      \"resetSeconds\": 1786,\n      \"windowSeconds\": 2945\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"string\",\n    \"pagination\": {\n      \"cursor\": \"string\",\n      \"has_more\": true,\n      \"count\": 7282\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cc5fa535-a106-49bf-9ff2-7828df9ef22e",
              "name": "Scope insufficient",
              "originalRequest": {
                "url": {
                  "path": [
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"type\": \"https://VUYo.kiwL72QfbE3Ej53KxZ3gGT3vDE\",\n  \"title\": \"string\",\n  \"status\": 9795,\n  \"detail\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    },\n    {\n      \"field\": \"string\",\n      \"code\": \"string\",\n      \"message\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "cd9b700f-c396-426e-a1a4-9ea7c3e26d31",
      "name": "OAuth",
      "description": {
        "content": "OAuth 2.1 authorization, token exchange and dynamic client registration.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "ac29769c-e8c2-45e9-ae78-020ffcbd3eab",
          "name": "OAuth 2.1 authorization endpoint (consent screen)",
          "request": {
            "name": "OAuth 2.1 authorization endpoint (consent screen)",
            "description": {
              "content": "Renders an HTML consent screen. The user must be authenticated via the first-party session cookie. On approval the user is redirected to redirect_uri with `?code=&state=`. On error in the validation phase, fatal errors render an HTML error page (no redirect); validation errors after redirect_uri verification redirect with `?error=&state=`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "oauth",
                "authorize"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "response_type",
                  "value": "<string>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "client_id",
                  "value": "<string>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "redirect_uri",
                  "value": "<uri>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "code_challenge",
                  "value": "<string>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "code_challenge_method",
                  "value": "<string>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "scope",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "state",
                  "value": "<string>"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "text/html"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [
            {
              "id": "c2a957a7-86aa-44c1-a2aa-7849b94708ad",
              "name": "Consent screen rendered (HTML)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "authorize"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "response_type",
                      "value": "<string>"
                    },
                    {
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "key": "redirect_uri",
                      "value": "<uri>"
                    },
                    {
                      "key": "code_challenge",
                      "value": "<string>"
                    },
                    {
                      "key": "code_challenge_method",
                      "value": "<string>"
                    },
                    {
                      "key": "scope",
                      "value": "<string>"
                    },
                    {
                      "key": "state",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "text/html"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/html"
                }
              ],
              "body": "string",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "6af65eeb-cb4d-4622-8ea2-952505854deb",
              "name": "Redirect to client redirect_uri with code or error",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "authorize"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "response_type",
                      "value": "<string>"
                    },
                    {
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "key": "redirect_uri",
                      "value": "<uri>"
                    },
                    {
                      "key": "code_challenge",
                      "value": "<string>"
                    },
                    {
                      "key": "code_challenge_method",
                      "value": "<string>"
                    },
                    {
                      "key": "scope",
                      "value": "<string>"
                    },
                    {
                      "key": "state",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Found",
              "code": 302,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "1fa5e643-560b-4bab-b743-63dc3b8e786f",
              "name": "Fatal validation error (HTML)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "authorize"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "response_type",
                      "value": "<string>"
                    },
                    {
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "key": "redirect_uri",
                      "value": "<uri>"
                    },
                    {
                      "key": "code_challenge",
                      "value": "<string>"
                    },
                    {
                      "key": "code_challenge_method",
                      "value": "<string>"
                    },
                    {
                      "key": "scope",
                      "value": "<string>"
                    },
                    {
                      "key": "state",
                      "value": "<string>"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "text/html"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/html"
                }
              ],
              "body": "string",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "17c0aa8f-5673-46cd-9977-13adc0c4542e",
          "name": "OAuth 2.1 consent decision",
          "request": {
            "name": "OAuth 2.1 consent decision",
            "description": {
              "content": "Receives the user's Approve/Deny decision from the consent form. Body is form-encoded with `request_uri` (the original GET URL) and `decision` (approve or deny). Always redirects back to the client's redirect_uri.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "oauth",
                "authorize"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/x-www-form-urlencoded"
              },
              {
                "key": "Accept",
                "value": "text/html"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "disabled": false,
                  "key": "request_uri",
                  "value": "<string>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "decision",
                  "value": "<string>",
                  "description": "(Required) "
                }
              ]
            }
          },
          "response": [
            {
              "id": "5a784db6-cdae-449f-a3da-28baa41bff6d",
              "name": "Redirect to client redirect_uri",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "authorize"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) ",
                        "type": "text/plain"
                      },
                      "key": "request_uri",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) ",
                        "type": "text/plain"
                      },
                      "key": "decision",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "Found",
              "code": 302,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "be116165-e1ca-4287-8ae3-0cb63d9fe3b8",
              "name": "Fatal validation error (HTML)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "authorize"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "text/html"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) ",
                        "type": "text/plain"
                      },
                      "key": "request_uri",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) ",
                        "type": "text/plain"
                      },
                      "key": "decision",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/html"
                }
              ],
              "body": "string",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "739fd23c-ec3e-432d-9c29-8b7dde8d2ca5",
          "name": "OAuth 2.1 token endpoint",
          "request": {
            "name": "OAuth 2.1 token endpoint",
            "description": {
              "content": "Exchanges an authorization code (with PKCE verifier) or a refresh token for a new access token (and rotated refresh token). Body MUST be application/x-www-form-urlencoded per RFC 6749. Response carries Cache-Control: no-store. Confidential clients authenticate by passing client_secret in the body; public clients omit it. Refresh token reuse triggers family-wide revocation of all access + refresh tokens issued from the original grant.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "oauth",
                "token"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/x-www-form-urlencoded"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "disabled": false,
                  "key": "grant_type",
                  "value": "<string>",
                  "description": "(Required) OAuth 2.1 grant type. Supported: authorization_code, refresh_token."
                },
                {
                  "disabled": false,
                  "key": "client_id",
                  "value": "<string>",
                  "description": "(Required) OAuth client identifier issued by the registration endpoint."
                },
                {
                  "disabled": false,
                  "key": "code",
                  "value": "<string>",
                  "description": "Authorization code (required for grant_type=authorization_code)."
                },
                {
                  "disabled": false,
                  "key": "redirect_uri",
                  "value": "<string>",
                  "description": "Must exact-match the redirect_uri originally used to obtain the code."
                },
                {
                  "disabled": false,
                  "key": "client_secret",
                  "value": "<string>",
                  "description": "Required for confidential clients; MUST be omitted for public clients."
                },
                {
                  "disabled": false,
                  "key": "code_verifier",
                  "value": "<string>",
                  "description": "PKCE verifier (S256). Required for grant_type=authorization_code."
                },
                {
                  "disabled": false,
                  "key": "refresh_token",
                  "value": "<string>",
                  "description": "Refresh token (required for grant_type=refresh_token)."
                },
                {
                  "disabled": false,
                  "key": "scope",
                  "value": "<string>",
                  "description": "Optional space-separated scope list. For grant_type=refresh_token, MUST be a subset of the original refresh token's scopes (scope downgrade only). Upgrade is rejected with invalid_scope."
                }
              ]
            }
          },
          "response": [
            {
              "id": "4b7ffb88-c014-432d-ba0f-e526868ecf21",
              "name": "Access token issued",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "token"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth 2.1 grant type. Supported: authorization_code, refresh_token.",
                        "type": "text/plain"
                      },
                      "key": "grant_type",
                      "value": "authorization_code"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth client identifier issued by the registration endpoint.",
                        "type": "text/plain"
                      },
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Authorization code (required for grant_type=authorization_code).",
                        "type": "text/plain"
                      },
                      "key": "code",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Must exact-match the redirect_uri originally used to obtain the code.",
                        "type": "text/plain"
                      },
                      "key": "redirect_uri",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Required for confidential clients; MUST be omitted for public clients.",
                        "type": "text/plain"
                      },
                      "key": "client_secret",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "PKCE verifier (S256). Required for grant_type=authorization_code.",
                        "type": "text/plain"
                      },
                      "key": "code_verifier",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Refresh token (required for grant_type=refresh_token).",
                        "type": "text/plain"
                      },
                      "key": "refresh_token",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Optional space-separated scope list. For grant_type=refresh_token, MUST be a subset of the original refresh token's scopes (scope downgrade only). Upgrade is rejected with invalid_scope.",
                        "type": "text/plain"
                      },
                      "key": "scope",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"access_token\": \"string\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 6067,\n  \"scope\": \"string\",\n  \"refresh_token\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6711cb75-6c76-46ee-b854-dcada5291343",
              "name": "RFC 6749 §5.2 error envelope (invalid_request, invalid_grant, invalid_client, unsupported_grant_type)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "token"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth 2.1 grant type. Supported: authorization_code, refresh_token.",
                        "type": "text/plain"
                      },
                      "key": "grant_type",
                      "value": "authorization_code"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth client identifier issued by the registration endpoint.",
                        "type": "text/plain"
                      },
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Authorization code (required for grant_type=authorization_code).",
                        "type": "text/plain"
                      },
                      "key": "code",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Must exact-match the redirect_uri originally used to obtain the code.",
                        "type": "text/plain"
                      },
                      "key": "redirect_uri",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Required for confidential clients; MUST be omitted for public clients.",
                        "type": "text/plain"
                      },
                      "key": "client_secret",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "PKCE verifier (S256). Required for grant_type=authorization_code.",
                        "type": "text/plain"
                      },
                      "key": "code_verifier",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Refresh token (required for grant_type=refresh_token).",
                        "type": "text/plain"
                      },
                      "key": "refresh_token",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Optional space-separated scope list. For grant_type=refresh_token, MUST be a subset of the original refresh token's scopes (scope downgrade only). Upgrade is rejected with invalid_scope.",
                        "type": "text/plain"
                      },
                      "key": "scope",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"string\",\n  \"error_description\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b0d8e01c-be46-4df1-8839-70778661e653",
              "name": "Client authentication failed (invalid_client)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "token"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth 2.1 grant type. Supported: authorization_code, refresh_token.",
                        "type": "text/plain"
                      },
                      "key": "grant_type",
                      "value": "authorization_code"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth client identifier issued by the registration endpoint.",
                        "type": "text/plain"
                      },
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Authorization code (required for grant_type=authorization_code).",
                        "type": "text/plain"
                      },
                      "key": "code",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Must exact-match the redirect_uri originally used to obtain the code.",
                        "type": "text/plain"
                      },
                      "key": "redirect_uri",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Required for confidential clients; MUST be omitted for public clients.",
                        "type": "text/plain"
                      },
                      "key": "client_secret",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "PKCE verifier (S256). Required for grant_type=authorization_code.",
                        "type": "text/plain"
                      },
                      "key": "code_verifier",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Refresh token (required for grant_type=refresh_token).",
                        "type": "text/plain"
                      },
                      "key": "refresh_token",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Optional space-separated scope list. For grant_type=refresh_token, MUST be a subset of the original refresh token's scopes (scope downgrade only). Upgrade is rejected with invalid_scope.",
                        "type": "text/plain"
                      },
                      "key": "scope",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"string\",\n  \"error_description\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a9107ede-2852-4ef6-a646-6d063b9f5287",
          "name": "OAuth 2.0 Token Revocation (RFC 7009)",
          "request": {
            "name": "OAuth 2.0 Token Revocation (RFC 7009)",
            "description": {
              "content": "Revokes an access token or refresh token. Body MUST be application/x-www-form-urlencoded. Per RFC 7009 §2.2, the response is 200 OK whether the token was successfully revoked, already revoked, expired, or unknown — this prevents leaking information about token validity. Revoking a refresh token cascades to the entire token family (all access + refresh tokens issued from the same grant). Revoking an access token does NOT cascade.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "oauth",
                "revoke"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/x-www-form-urlencoded"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "disabled": false,
                  "key": "token",
                  "value": "<string>",
                  "description": "(Required) The token to revoke. Can be either an access token (prefix bwp_at_) or a refresh token (prefix bwp_rt_)."
                },
                {
                  "disabled": false,
                  "key": "client_id",
                  "value": "<string>",
                  "description": "(Required) OAuth client identifier issued by the registration endpoint."
                },
                {
                  "disabled": false,
                  "key": "token_type_hint",
                  "value": "<string>",
                  "description": "Optional hint about the token type. The server still falls back to the other type if the hinted lookup misses (RFC 7009 §4.1.2)."
                },
                {
                  "disabled": false,
                  "key": "client_secret",
                  "value": "<string>",
                  "description": "Required for confidential clients; MUST be omitted for public clients."
                }
              ]
            }
          },
          "response": [
            {
              "id": "9531f845-3b96-4954-a557-e82cf7bb43bb",
              "name": "Token revoked, already revoked, expired, or unknown — all return 200 per RFC 7009 §2.2",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The token to revoke. Can be either an access token (prefix bwp_at_) or a refresh token (prefix bwp_rt_).",
                        "type": "text/plain"
                      },
                      "key": "token",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth client identifier issued by the registration endpoint.",
                        "type": "text/plain"
                      },
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Optional hint about the token type. The server still falls back to the other type if the hinted lookup misses (RFC 7009 §4.1.2).",
                        "type": "text/plain"
                      },
                      "key": "token_type_hint",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Required for confidential clients; MUST be omitted for public clients.",
                        "type": "text/plain"
                      },
                      "key": "client_secret",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "a8b2c7cf-fcf6-4781-8e2f-e128ccb4c843",
              "name": "RFC 7009 error envelope (invalid_request, invalid_client, invalid_grant)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The token to revoke. Can be either an access token (prefix bwp_at_) or a refresh token (prefix bwp_rt_).",
                        "type": "text/plain"
                      },
                      "key": "token",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth client identifier issued by the registration endpoint.",
                        "type": "text/plain"
                      },
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Optional hint about the token type. The server still falls back to the other type if the hinted lookup misses (RFC 7009 §4.1.2).",
                        "type": "text/plain"
                      },
                      "key": "token_type_hint",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Required for confidential clients; MUST be omitted for public clients.",
                        "type": "text/plain"
                      },
                      "key": "client_secret",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"string\",\n  \"error_description\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "43f1605f-9d79-4241-9509-ac8912f900fa",
              "name": "Client authentication failed (invalid_client)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The token to revoke. Can be either an access token (prefix bwp_at_) or a refresh token (prefix bwp_rt_).",
                        "type": "text/plain"
                      },
                      "key": "token",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) OAuth client identifier issued by the registration endpoint.",
                        "type": "text/plain"
                      },
                      "key": "client_id",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Optional hint about the token type. The server still falls back to the other type if the hinted lookup misses (RFC 7009 §4.1.2).",
                        "type": "text/plain"
                      },
                      "key": "token_type_hint",
                      "value": "<string>"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Required for confidential clients; MUST be omitted for public clients.",
                        "type": "text/plain"
                      },
                      "key": "client_secret",
                      "value": "<string>"
                    }
                  ]
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"string\",\n  \"error_description\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1b484a2b-c5e7-4df7-a236-202fde6dc0ac",
          "name": "OAuth/OpenID userinfo endpoint",
          "request": {
            "name": "OAuth/OpenID userinfo endpoint",
            "description": {
              "content": "Returns identity information about the resource owner authenticated by the presented access token. Authentication is the standard `Authorization: Bearer` header — both API keys (bwp_live_/bwp_test_) and OAuth access tokens (bwp_at_) are accepted. No scope is required to call this endpoint.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "oauth",
                "userinfo"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "ff1dae92-2d66-4bae-bc99-d7d577f8d261",
              "name": "Identity claims for the resource owner",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "userinfo"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"sub\": \"42\",\n  \"tenant_id\": 7,\n  \"email\": \"jane@example.com\",\n  \"name\": \"Jane Doe\",\n  \"role\": \"company_admin\",\n  \"scopes\": [\n    \"contacts:read\",\n    \"leads:read\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "36ed5801-624f-4f34-b101-0f66af4491a6",
              "name": "Authentication missing, invalid, expired, or membership revoked",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "userinfo"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a6a5195f-5847-436d-981e-fe7746c60eb9",
          "name": "Dynamic Client Registration (RFC 7591)",
          "request": {
            "name": "Dynamic Client Registration (RFC 7591)",
            "description": {
              "content": "Self-registers a new OAuth client. Public endpoint — no authentication required. Per-IP rate-limited to 5 requests/minute. Each redirect_uri must be https, a loopback http URL on any port (http://127.0.0.1:{port}, http://localhost:{port}, http://[::1]:{port} — RFC 8252 §7.3), or a private-use scheme such as cursor:// (RFC 8252 §7.1); script-injection schemes (javascript:, data:, file:, blob:), embedded credentials, and fragments are rejected.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "oauth",
                "register"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{\n  \"client_name\": \"<string>\",\n  \"redirect_uris\": [\n    \"<uri>\"\n  ],\n  \"grant_types\": [\n    \"authorization_code\",\n    \"refresh_token\"\n  ],\n  \"scope\": \"\",\n  \"token_endpoint_auth_method\": \"none\",\n  \"contact\": \"<email>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "686fa38d-8a20-4d7a-9ea1-331fb6920ca1",
              "name": "Client registered",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "register"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_name\": \"<string>\",\n  \"redirect_uris\": [\n    \"<uri>\"\n  ],\n  \"grant_types\": [\n    \"authorization_code\",\n    \"refresh_token\"\n  ],\n  \"scope\": \"\",\n  \"token_endpoint_auth_method\": \"none\",\n  \"contact\": \"<email>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"client_id\": \"string\",\n  \"client_id_issued_at\": 2858,\n  \"client_name\": \"string\",\n  \"redirect_uris\": [\n    \"http://WbTJufDAsHuvFvuQJrsXfrJgOQDqNHtw.pxmnULakbab3IJqswhow2rcaGWtVRDPWHYbzhlGouSv.J4hm\",\n    \"http://BIofpwBYzOjGudxGBLYykAGNcDNDhXLWn.naV9jCwd,LVNraQxVWYtS9cWx+\"\n  ],\n  \"grant_types\": [\n    \"string\",\n    \"string\"\n  ],\n  \"scope\": \"string\",\n  \"token_endpoint_auth_method\": \"client_secret_basic\",\n  \"client_secret\": \"string\",\n  \"client_secret_expires_at\": 5637\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "81012aa7-ee50-4038-8f09-e59f417fd235",
              "name": "RFC 7591 error envelope (invalid_client_metadata, invalid_redirect_uri, invalid_scope)",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "register"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_name\": \"<string>\",\n  \"redirect_uris\": [\n    \"<uri>\"\n  ],\n  \"grant_types\": [\n    \"authorization_code\",\n    \"refresh_token\"\n  ],\n  \"scope\": \"\",\n  \"token_endpoint_auth_method\": \"none\",\n  \"contact\": \"<email>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"string\",\n  \"error_description\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2bd7db73-2adb-42a5-a1a5-57d59b913e19",
              "name": "Per-IP rate limit exceeded",
              "originalRequest": {
                "url": {
                  "path": [
                    "oauth",
                    "register"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_name\": \"<string>\",\n  \"redirect_uris\": [\n    \"<uri>\"\n  ],\n  \"grant_types\": [\n    \"authorization_code\",\n    \"refresh_token\"\n  ],\n  \"scope\": \"\",\n  \"token_endpoint_auth_method\": \"none\",\n  \"contact\": \"<email>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"string\",\n  \"error_description\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [],
  "variable": [
    {
      "type": "string",
      "value": "https://app.buildworkpro.com/api/v1",
      "key": "baseUrl"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{bearerToken}}"
      }
    ]
  },
  "info": {
    "_postman_id": "0f37080d-98ee-4cfd-84a6-f6ed7f908e56",
    "name": "BuildWorkPro API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "Construction project management, CRM, and workflows — public REST API.\n\nContact Support:\n Name: BuildWorkPro Developers\n Email: developers@buildworkpro.com",
      "type": "text/plain"
    }
  }
}