{
  "item": [
    {
      "id": "8ff6437e-085d-4b31-a7e5-2fb0a156c91f",
      "name": "Service jobs",
      "description": {
        "content": "Tickets and service jobs: create, read, update, move and archive. Needs the Ticketing add-on.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "979c31d6-3c52-4e21-b464-09b10d2a9335",
          "name": "List service jobs",
          "request": {
            "name": "List service jobs",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nPaginated ticket list across the boards I can open.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "board_id",
                  "value": "",
                  "description": "Unknown/inaccessible board → empty list."
                },
                {
                  "disabled": true,
                  "key": "client_id",
                  "value": "",
                  "description": "Client uuid. Unknown → empty list."
                },
                {
                  "disabled": true,
                  "key": "client_phone",
                  "value": "",
                  "description": "Or find the client by phone / ISP username / its external_ref (send one key). Unknown → empty list; ambiguous → 422 ClientLookupError."
                },
                {
                  "disabled": true,
                  "key": "client_isp_username",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "client_external_ref",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "external_ref",
                  "value": "",
                  "description": "Your own reference (exact match). Combine with archived=1 to also search the archive."
                },
                {
                  "disabled": true,
                  "key": "status_category",
                  "value": "",
                  "description": "One category or a comma list."
                },
                {
                  "disabled": true,
                  "key": "assignee",
                  "value": "",
                  "description": "User uuid in assigned_users."
                },
                {
                  "disabled": true,
                  "key": "unassigned",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "overdue",
                  "value": "",
                  "description": "due_date before today and in an open column."
                },
                {
                  "disabled": true,
                  "key": "archived",
                  "value": "",
                  "description": "Default hides archived tickets; 1 = include them; only = archived only."
                },
                {
                  "disabled": true,
                  "key": "slim",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Exact column name (legacy)."
                },
                {
                  "disabled": true,
                  "key": "priority",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "type",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "search",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "technician_id",
                  "value": "",
                  "description": "Jobs of this technician."
                },
                {
                  "disabled": true,
                  "key": "mine",
                  "value": "",
                  "description": "My jobs (technician = me). tickets:own users always get only their own."
                },
                {
                  "disabled": true,
                  "key": "job_type_id",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "sort_by",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "sort_order",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "per_page",
                  "value": ""
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1bf45904-d514-45fd-a62c-6d925b1b58a0",
          "name": "Create a service job",
          "request": {
            "name": "Create a service job",
            "description": {
              "content": "**API key ability:** `tickets:create` (plus `tickets:schedule` when `technician_id` is sent)\n\nCreate a ticket (tickets:create + member).\n\nCreated straight into a done column → resolved_at set; cancelled → closed_at set. Writes a `created` event\nand sends `ticket.created`. `created_via` is set by the server (api for API keys, mobile when the app sends\n`App-Platform`, else web).\n\n**Job type:** `job_type_id` fills priority (when not sent), `sla_due_at` (now + sla_hours) and `checklist_state`;\na job type with `requires_client` needs `client_id` (422). With `auto_assign` and no technician, the top\nsuggested technician is booked in their first free slot (08:00–18:00 org time, next days if full); nobody free\n→ stays unassigned. **Technician:** `technician_id` (+ optional window) follows the schedule rules (403 for\nAPI keys without tickets:schedule; 422 on overlap unless `override` + `override_reason` with tickets:dispatch).\n\n**Safe retries:** with `external_ref`, a second request with the same value (from anyone in the org) returns\nthe existing ticket with **200** and changes nothing. A new ticket answers **201**. If the ref belongs to a\ndeleted ticket or one on a board you can't open, the answer is **409**.\n\n**Client lookup (D11):** identify the client with ONE of `client_id` (uuid), `client_phone` (any format; both\nsides normalised the way the app stores Lebanese numbers), `client_isp_username` (the ISP account username) or\n`client_external_ref` (the client's own `external_ref`, set through the clients API). Scoped to the organization.\nNo match → 422 `client_not_found`; more than one → 422 `client_ambiguous` with the candidate client uuids;\ntwo keys at once → 422 `client_lookup_conflict`. See `ClientLookupError`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"No internet since this morning\",\n  \"board_id\": \"4c6e8a0b-1d3f-4a5c-9e7b-2f4a6c8e0b1d\",\n  \"client_id\": \"b8f2a1c4-7d39-4e52-9a06-1f4c8b3d5e27\",\n  \"priority\": \"high\",\n  \"type\": \"support\",\n  \"external_ref\": \"crm-48213\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "88085fdf-5924-40ca-99be-93bf03b46063",
          "name": "Get a service job",
          "request": {
            "name": "Get a service job",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nTicket detail.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "61f2e890-de57-40c0-8902-eabc10982587",
          "name": "Update a service job",
          "request": {
            "name": "Update a service job",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nUpdate fields (title, description, priority, type, due_date, sla_hours, labels, client_id).\n\nOnly sent fields change. `sla_hours` sets the SLA again from the creation time (time spent in waiting columns\nstill counts as paused); null removes the SLA. SLA alerts re-arm when the new deadline is in the future.\nChanging `sla_hours` on a done or cancelled job answers 422 \"Reopen the job to change its SLA.\".",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"string\",\n  \"description\": \"string\",\n  \"client_id\": \"edcfa0fe-3ec7-df76-d101-8996e091b5ac\",\n  \"priority\": \"critical\",\n  \"type\": \"support\",\n  \"due_date\": \"1977-04-02\",\n  \"sla_hours\": 112,\n  \"labels\": [\n    \"string\",\n    \"string\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d809eb5f-d6d3-47c4-aa9e-66f8f9a5be28",
          "name": "Delete a service job",
          "request": {
            "name": "Delete a service job",
            "description": {
              "content": "**API key ability:** `tickets:delete`\n\nDelete (tickets:delete). Prefer archive..",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "method": "DELETE"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b19cb7c3-8af8-4119-9161-7fd91eb92ea4",
          "name": "Activity history",
          "request": {
            "name": "Activity history",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nActivity feed (newest first).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "activity"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "page",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "per_page",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "include",
                  "value": "",
                  "description": "Adds `events` (ticket_events, newest first, max 200)."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "26586b25-659c-4c5c-bede-c1c72c4dc82c",
          "name": "Archive",
          "request": {
            "name": "Archive",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nArchive (tickets:update + member). Idempotent; sends `ticket.archived` only when it actually archives..",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "archive"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3fe6fa30-ca34-4b5d-96d8-486646686647",
          "name": "Add a comment",
          "request": {
            "name": "Add a comment",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nAdd a comment (@mentions notify).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "comments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b8c4552b-b89c-46c0-a55d-086cd1c6a400",
          "name": "Move to another column",
          "request": {
            "name": "Move to another column",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nMove to a column / reorder.\n\nEntering a done column sets resolved_at; entering cancelled sets closed_at; leaving done/cancelled\nfor an open column clears both (a `reopened` event). Respects column WIP limits (archived tickets don't count).\nA column change sends `ticket.status_changed`; reordering inside a column sends nothing.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "move"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"column_id\": \"7e9a1c3d-5f2b-4d6e-8a0c-1b3d5f7a9c2e\",\n  \"to_end\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "03da3f01-3730-42ce-b650-c63c6188a234",
      "name": "Scheduling",
      "description": {
        "content": "Book a technician and a visit window, then start the job.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "035ec806-7495-4233-a60f-e911cdb60eb8",
          "name": "List technicians",
          "request": {
            "name": "List technicians",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nWho can take jobs, with weekly hours, current/upcoming time off and skills (tickets:read).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "ticket-technicians"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "board_id",
                  "value": "",
                  "description": "Technicians of this board (members with tickets:own). Default: every active org user who can take jobs."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "86376610-5516-4248-b57b-7d48470fb80b",
          "name": "Schedule a visit",
          "request": {
            "name": "Schedule a visit",
            "description": {
              "content": "**API key ability:** `tickets:schedule` (`override` also needs `tickets:dispatch`)\n\nSet technician + visit window (users tickets:update, keys tickets:schedule; board member).\n\nThe technician must be an active org user on the board (when it has a member list) with tickets:own\n(Technician role, or an owner who opted in). Moving the time of a job keeps its current technician. The visit\ncan't start in the past (5 min grace) unless the start stays the same (stretching a running visit). The technician's overlapping open jobs are locked (FOR UPDATE) and an overlap answers 422\nnaming them. Touching windows (10–12 then 12–13) are fine. `override: true` + `override_reason` books anyway\n(needs tickets:dispatch) and logs a `schedule_override` event. A ticket in a `new` column moves to the first\n`scheduled` column. The technician is added to `assigned_users`. Sends `ticket.scheduled`. Window ≤ 24 h.\nPhase 4: outside the technician's saved working hours, on time off, or missing a required skill of the job\ntype → 422 with the reasons; `override` books anyway and the event lists them under `availability`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "schedule"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"technician_id\": \"3e9a30c1-37b2-a9a4-056e-a21cb5826bd4\",\n  \"scheduled_at\": \"2026-10-14T11:00:00Z\",\n  \"scheduled_until\": \"2026-10-14T13:00:00Z\",\n  \"override\": true,\n  \"override_reason\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a8b59789-4673-40d2-88b3-0a7677e1a235",
          "name": "Start the job",
          "request": {
            "name": "Start the job",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nStart the job (tickets:update + member, or the job's own technician with tickets:own).\n\nSets `started_at` once (repeat = no change) and moves new/scheduled/waiting → the first `in_progress` column if the board has one.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "start"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7d8f9f0e-0b2b-4bd6-958d-642fb399b8c4",
          "name": "Suggest technicians",
          "request": {
            "name": "Suggest technicians",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nRanked technicians for this ticket (tickets:read).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "technician-suggestions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "scheduled_at",
                  "value": "",
                  "description": "Default the ticket window."
                },
                {
                  "disabled": true,
                  "key": "scheduled_until",
                  "value": ""
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3c7fcdec-e522-4d7e-ab72-a24f89ca35b4",
          "name": "Clear the visit",
          "request": {
            "name": "Clear the visit",
            "description": {
              "content": "**API key ability:** `tickets:schedule`\n\nClear technician + window (back to Unassigned). A scheduled column moves back to the first new column. Idempotent..",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "unschedule"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "e95a42ee-9fc8-49aa-b538-d3e2f74d16af",
      "name": "Completion",
      "description": {
        "content": "Complete, bill or cancel a job.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "b39d968d-6411-4da7-be4c-610ce571fe26",
          "name": "Cancel the job",
          "request": {
            "name": "Cancel the job",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nCancel with a reason (tickets:update + member; not tickets:own alone). Nothing is invoiced..\n\nMoves to the first cancelled column and sets closed_at + cancellation_reason. Already cancelled = 200, no change. Done jobs → 422. Sends ticket.cancelled.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "cancel"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a078a496-4ec7-46d5-ae08-112aad676fc1",
          "name": "Complete the job",
          "request": {
            "name": "Complete the job",
            "description": {
              "content": "**API key ability:** `tickets:complete` (plus `invoices:create` when it bills)\n\nComplete the job (tickets:update + member, or its technician with tickets:own; keys tickets:complete).\n\nOne transaction with the ticket row locked. done/partial: when the job type bills `on_completion` and items\nare sent, the invoice is created through the normal invoice pipeline (goods leave the technician's van stock\nwhen they hold any of the items), linked as `completion` (unique per ticket), an optional payment is recorded,\nthen the ticket moves to the first `done` column with `resolved_at`. `partial` + `invoice_now: false` keeps\nthe items for Create invoice later. `manual` billing saves the items only. `revisit` sends the job back to the\nUnassigned queue (technician + window cleared, `reason` required, no invoice); auto-assign job types rebook the\nfirst free slot. Any failure → 422 with the reason and nothing changes. Calling it again on a finished job\nanswers 200 with `completion.replayed: true` and the same invoice. Optional `Idempotency-Key` header.\nKeys completing a billable job also need `invoices:create`. Sends `ticket.completed` (done/partial) and the\n\"job completed\" customer message when enabled.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "complete"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "key": "Idempotency-Key",
                "value": "string",
                "description": ""
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"outcome\": \"done\",\n  \"notes\": \"Ran 60 m drop cable, speed test 48/20\",\n  \"items\": [\n    {\n      \"item_uuid\": \"3f1c2b4a-5d6e-4f70-8a9b-0c1d2e3f4a5b\",\n      \"quantity\": 1,\n      \"mac\": \"A4:2B:B0:9C:11:7E\"\n    }\n  ],\n  \"collect_payment\": {\n    \"amount\": 97,\n    \"currency\": \"USD\",\n    \"method\": \"cash\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "978aba2a-5d98-4e17-8871-e26acb985824",
          "name": "Completion preview",
          "request": {
            "name": "Completion preview",
            "description": {
              "content": "**API key ability:** `tickets:complete`\n\nWhat the Complete-job form starts with (same access as complete).\n\nSaved completion items, else the job type's default items, with the client's price and how many the technician holds in the van.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "completion-preview"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "97c737f2-52c1-4505-a02a-cd36ee461276",
          "name": "Bill a completed job",
          "request": {
            "name": "Bill a completed job",
            "description": {
              "content": "**API key ability:** `tickets:update` and `invoices:create`\n\nInvoice the items saved at completion (manual billing or partial kept for later). Staff with tickets:update; keys also invoices:create..\n\nSame idempotency as completion: a second call returns the same invoice with completion.replayed = true. Optional Idempotency-Key.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "tickets",
                ":id",
                "create-invoice"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"collect_payment\": {\n    \"amount\": 507.0550139525563,\n    \"currency\": \"string\",\n    \"method\": \"cash\",\n    \"exchange_rate\": 314.37409925581414\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "de82ab78-8c48-4c64-96bf-d42c849cc2c3",
      "name": "Job types",
      "description": {
        "content": "Templates that set priority, SLA, checklist and billing mode.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "f88c56eb-a25c-493a-9204-56dfafa487ba",
          "name": "List job types",
          "request": {
            "name": "List job types",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nJob types (tickets:read). Org-wide ones plus those of boards I can open..",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "ticket-job-types"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "board_id",
                  "value": "",
                  "description": "That board's types + org-wide ones."
                },
                {
                  "disabled": true,
                  "key": "include_inactive",
                  "value": ""
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6372a7e7-81db-4457-96b5-cf017eded298",
          "name": "Create a job type",
          "request": {
            "name": "Create a job type",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nCreate (tickets:update). `code` defaults to a slug of the name; unique per org (422)..",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "ticket-job-types"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"code\": \"u76ai\",\n  \"color\": \"string\",\n  \"icon\": \"string\",\n  \"board_id\": \"53fd19e7-62bd-d46f-7625-2b1056381493\",\n  \"default_priority\": \"high\",\n  \"sla_hours\": 8695,\n  \"duration_minutes\": 334,\n  \"checklist\": [\n    \"string\",\n    \"string\"\n  ],\n  \"billing_mode\": \"manual\",\n  \"default_items\": [\n    {\n      \"item_uuid\": \"a4605b74-4ea4-7360-cfe7-50d3e43b6847\",\n      \"quantity\": 1\n    },\n    {\n      \"item_uuid\": \"e5fb59ee-c926-081a-85ac-8607a94d0309\",\n      \"quantity\": 1\n    }\n  ],\n  \"required_skills\": [\n    \"ed54108a-e56b-b2ea-7f78-3e89e9f6724e\",\n    \"6e99d197-9717-922c-b1eb-eeef2003708f\"\n  ],\n  \"requires_client\": false,\n  \"portal_visible\": true,\n  \"auto_assign\": false,\n  \"notify_client\": false,\n  \"active\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4c5b2981-c7df-40a3-8f9d-ca94c7a1d2db",
          "name": "Get a job type",
          "request": {
            "name": "Get a job type",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nOne job type (tickets:read).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "ticket-job-types",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3087103c-476f-48f9-80f1-5b1a8aaaa421",
          "name": "Update a job type",
          "request": {
            "name": "Update a job type",
            "description": {
              "content": "**API key ability:** `tickets:update`\n\nPartial update (tickets:update). Unsent fields stay; existing tickets keep their SLA/checklist..",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "ticket-job-types",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"code\": \"u76ai\",\n  \"color\": \"string\",\n  \"icon\": \"string\",\n  \"board_id\": \"53fd19e7-62bd-d46f-7625-2b1056381493\",\n  \"default_priority\": \"high\",\n  \"sla_hours\": 8695,\n  \"duration_minutes\": 334,\n  \"checklist\": [\n    \"string\",\n    \"string\"\n  ],\n  \"billing_mode\": \"manual\",\n  \"default_items\": [\n    {\n      \"item_uuid\": \"a4605b74-4ea4-7360-cfe7-50d3e43b6847\",\n      \"quantity\": 1\n    },\n    {\n      \"item_uuid\": \"e5fb59ee-c926-081a-85ac-8607a94d0309\",\n      \"quantity\": 1\n    }\n  ],\n  \"required_skills\": [\n    \"ed54108a-e56b-b2ea-7f78-3e89e9f6724e\",\n    \"6e99d197-9717-922c-b1eb-eeef2003708f\"\n  ],\n  \"requires_client\": false,\n  \"portal_visible\": true,\n  \"auto_assign\": false,\n  \"notify_client\": false,\n  \"active\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "1ae694c8-016d-4d8a-9aa2-e259d1923361",
      "name": "Boards",
      "description": {
        "content": "Boards and their columns. Every job lives on a board.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "35ff6d75-42aa-4c61-993d-f750a77e2060",
          "name": "List boards",
          "request": {
            "name": "List boards",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nList boards I can open.\n\nColumn `tickets_count` and board `tickets_count` exclude archived tickets.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "ticket-boards"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "27ea35f6-146a-477e-8f2c-771091365a29",
          "name": "Get a board with its tickets",
          "request": {
            "name": "Get a board with its tickets",
            "description": {
              "content": "**API key ability:** `tickets:read`\n\nBoard with its tickets.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "ticket-boards",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "slim",
                  "value": "",
                  "description": "Cards without comments/attachments arrays (comments_count/attachments_count stay)."
                },
                {
                  "disabled": true,
                  "key": "archived",
                  "value": "",
                  "description": "Default hides archived tickets; 1 = include them; only = archived only."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "cf8a24d8-64fb-9966-8297-a3240f66d777",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "6c823ab4-33ec-4477-b941-bdfb470c151f",
      "name": "Clients",
      "description": {
        "content": "Customers of the organization.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "042ef220-153d-4205-b236-f10b2cfe3b27",
          "name": "List clients",
          "request": {
            "name": "List clients",
            "description": {
              "content": "**API key ability:** `clients:read`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "clients"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "pageIndex",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "pageSize",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "columns[]",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "columns[]",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "query",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "filterData",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "include",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "orderBy",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "flat",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Filter parameters"
                },
                {
                  "disabled": true,
                  "key": "date_from",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "date_to",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "has_balance",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "service_id",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "services_count[]",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "collector_id",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "branch_id",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "auto_invoice",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "odometer",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "due_day",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "unassigned",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "unassigned_isp",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "isp_id",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "city",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "zone",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "building",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "box",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "reference",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "code",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "color_tag",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "disjunctor",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "agreed_payment_method[]",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "generator",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "external_ref",
                  "value": "",
                  "description": "Exact lookups for integrations: the client's own reference, or a phone in any format."
                },
                {
                  "disabled": true,
                  "key": "phone",
                  "value": ""
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e6f6a6e5-e4a0-455a-9a04-dbb87c98c3b4",
          "name": "Create a client",
          "request": {
            "name": "Create a client",
            "description": {
              "content": "**API key ability:** `clients:create`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "clients"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"username\": \"string\",\n  \"name\": \"string\",\n  \"collector_id\": \"3a794234-fb0f-62af-5e07-b3a8f4f50c5e\",\n  \"receivable_account_id\": \"391681f9-168d-816c-e34e-32af17161bb3\",\n  \"branch_id\": \"8b50dbfb-277d-3f18-0706-b6fdd4c3c21c\",\n  \"salutation\": \"string\",\n  \"email\": \"zn7u65cZSicC@gZWyvEUgaaNbE.pr\",\n  \"phone_number\": \"string\",\n  \"address\": \"string\",\n  \"city\": \"string\",\n  \"zone\": \"string\",\n  \"street\": \"string\",\n  \"country\": \"string\",\n  \"location\": [\n    \"string\",\n    \"string\"\n  ],\n  \"balance\": [\n    \"string\",\n    \"string\"\n  ],\n  \"due_day\": 4301,\n  \"active\": true,\n  \"enable_portal\": false,\n  \"auto_invoice\": true,\n  \"discount\": 2341.3108532258866,\n  \"discount_type\": \"percentage\",\n  \"enable_odometer\": false,\n  \"odometer_value\": 3095.91760556049,\n  \"opening_balance\": 7919.530549727789,\n  \"opening_balance_currency\": \"string\",\n  \"items\": [\n    {\n      \"id\": \"45689d23-26f9-1a0f-16bd-5d25e8e69814\",\n      \"is_free\": false,\n      \"price\": 7340.547492910306,\n      \"display_price\": 1156.4155078506344,\n      \"quantity\": 567522.9827774884\n    },\n    {\n      \"id\": \"b5dc4a0f-c4b9-0915-e13f-35a09e6f7dc1\",\n      \"is_free\": false,\n      \"price\": 2755.172783506463,\n      \"display_price\": 14.290568811674564,\n      \"quantity\": 285448.9580396967\n    }\n  ],\n  \"preferred_language\": \"en\",\n  \"isp_id\": \"9c5fb887-01c0-e5b5-8d3d-96bc32a5ec2b\",\n  \"isp_username\": \"string\",\n  \"generator_id\": \"9bffc5b4-0609-231f-20e0-711da592040c\",\n  \"building\": \"string\",\n  \"box\": \"string\",\n  \"reference\": \"string\",\n  \"code\": \"string\",\n  \"external_ref\": \"string\",\n  \"color_tag\": \"string\",\n  \"disjunctor\": \"string\",\n  \"agreed_payment_method\": \"check\",\n  \"create_invoice_on_save\": false,\n  \"activation_date\": \"2025-06-24T12:47:42.176Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "17a90a6f-ff0b-4776-95f4-5dc4897b04e9",
          "name": "Delete clients",
          "request": {
            "name": "Delete clients",
            "description": {
              "content": "**API key ability:** `clients:delete`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "clients"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "id[]",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "id[]",
                  "value": ""
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "191eed0c-2d36-4b14-a9ac-736891e926c2",
          "name": "Get a client",
          "request": {
            "name": "Get a client",
            "description": {
              "content": "**API key ability:** `clients:read`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "clients",
                ":client"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "include",
                  "value": ""
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "client",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "be6db24d-c8ec-4eb5-b4a1-07f615c066ae",
          "name": "Update a client",
          "request": {
            "name": "Update a client",
            "description": {
              "content": "**API key ability:** `clients:update`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "clients",
                ":client"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "client",
                  "description": "(Required) The client UUID"
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"username\": \"string\",\n  \"name\": \"string\",\n  \"collector_id\": \"982d1265-f605-63ae-7807-bbd367b017d2\",\n  \"receivable_account_id\": \"e2fc994d-a5e3-e88d-f62a-90dbedb16b7a\",\n  \"branch_id\": \"19bef731-0e67-7d52-3416-f40c345abef0\",\n  \"salutation\": \"string\",\n  \"email\": \"4MAR@cWwplGNjoDOysQuhGvVnoCj.dy\",\n  \"phone_number\": \"string\",\n  \"address\": \"string\",\n  \"city\": \"string\",\n  \"zone\": \"string\",\n  \"street\": \"string\",\n  \"country\": \"string\",\n  \"location\": [\n    \"string\",\n    \"string\"\n  ],\n  \"balance\": [\n    \"string\",\n    \"string\"\n  ],\n  \"due_day\": 8837,\n  \"active\": false,\n  \"enable_portal\": true,\n  \"auto_invoice\": false,\n  \"discount\": 1922.6872922350835,\n  \"discount_type\": \"null\",\n  \"enable_odometer\": false,\n  \"odometer_value\": 3983.849590564137,\n  \"opening_balance\": 6105.421542734415,\n  \"opening_balance_currency\": \"string\",\n  \"items\": [\n    {\n      \"id\": \"3eba72a2-a2ce-edf2-19c2-5ca4849f57ba\",\n      \"is_free\": true,\n      \"price\": 4586.162146251447,\n      \"display_price\": 3437.772306358642,\n      \"quantity\": 870872.1236468423\n    },\n    {\n      \"id\": \"6113735c-dbfb-b515-4495-785ebf173259\",\n      \"is_free\": false,\n      \"price\": 8267.788718277623,\n      \"display_price\": 325.68164653620227,\n      \"quantity\": 697973.2503226425\n    }\n  ],\n  \"preferred_language\": \"en\",\n  \"isp_id\": \"5cf84e59-afdc-9633-0d27-8a7fbd05d6ca\",\n  \"isp_username\": \"string\",\n  \"generator_id\": \"7e67f55d-5bad-ba8d-abc1-01b484fc4a6c\",\n  \"building\": \"string\",\n  \"box\": \"string\",\n  \"reference\": \"string\",\n  \"code\": \"string\",\n  \"external_ref\": \"string\",\n  \"color_tag\": \"string\",\n  \"disjunctor\": \"string\",\n  \"agreed_payment_method\": \"omt\",\n  \"cascade_collector_to_payable_invoices\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "d0ff0ffc-53ca-4cd3-bdf7-cc2630cbb19f",
      "name": "Webhooks",
      "description": {
        "content": "Endpoints, topics and deliveries. Events are signed with HMAC-SHA256.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "ae94fa02-cece-4380-bac8-3b9cb5d4fcb9",
          "name": "List webhook endpoints",
          "request": {
            "name": "List webhook endpoints",
            "description": {
              "content": "**API key ability:** `webhooks:read`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6908b5bf-cac0-4ca1-91d4-ca20ea1ee250",
          "name": "Create a webhook endpoint",
          "request": {
            "name": "Create a webhook endpoint",
            "description": {
              "content": "**API key ability:** `webhooks:manage`, plus the read ability of every topic\n\nThe signing `secret` is returned only in this response and when rolling it.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"string\",\n  \"topics\": [\n    \"ticket.completed\"\n  ],\n  \"description\": \"string\",\n  \"branch_id\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f7532948-457f-4173-b809-43bb6b100647",
          "name": "Get a delivery with its signed payload",
          "request": {
            "name": "Get a delivery with its signed payload",
            "description": {
              "content": "**API key ability:** `webhooks:read`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                "deliveries",
                ":uuid"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "uuid",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b04869c5-3b01-4e6e-b25d-7f0c0dec658e",
          "name": "Resend a delivery",
          "request": {
            "name": "Resend a delivery",
            "description": {
              "content": "**API key ability:** `webhooks:manage`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                "deliveries",
                ":uuid",
                "resend"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "uuid",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2f8d08ff-f470-4eb4-80a4-7063065c7c1d",
          "name": "List webhook topics and signing details",
          "request": {
            "name": "List webhook topics and signing details",
            "description": {
              "content": "**API key ability:** `webhooks:read`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                "topics"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4f2b1829-4f5e-4619-a120-3a6c5aad78b6",
          "name": "Update a webhook endpoint",
          "request": {
            "name": "Update a webhook endpoint",
            "description": {
              "content": "**API key ability:** `webhooks:manage`, plus the read ability of every topic",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":uuid"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "uuid",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"string\",\n  \"description\": \"string\",\n  \"topics\": [\n    \"payment.created\"\n  ],\n  \"active\": false,\n  \"branch_id\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "18173e33-a356-4213-ba71-75b4f70d64d2",
          "name": "Delete a webhook endpoint",
          "request": {
            "name": "Delete a webhook endpoint",
            "description": {
              "content": "**API key ability:** `webhooks:manage`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":uuid"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "uuid",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "705784bd-73da-4db8-b3e2-190a014285c5",
          "name": "List deliveries of an endpoint",
          "request": {
            "name": "List deliveries of an endpoint",
            "description": {
              "content": "**API key ability:** `webhooks:read`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":uuid",
                "deliveries"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "page",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "per_page",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "topic",
                  "value": "",
                  "description": "webhook.ping is a real stored topic but not a subscribable one,\nso the filter accepts it alongside the registry's list."
                },
                {
                  "disabled": true,
                  "key": "date_from",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "date_to",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "sort_by",
                  "value": ""
                },
                {
                  "disabled": true,
                  "key": "sort_order",
                  "value": ""
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "uuid",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "73b6fde1-9702-48f7-a05d-3c73455999ee",
          "name": "Roll the signing secret",
          "request": {
            "name": "Roll the signing secret",
            "description": {
              "content": "**API key ability:** `webhooks:manage`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":uuid",
                "roll-secret"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "uuid",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3ea2d33e-b8a0-448e-80df-293cd1a0e1d1",
          "name": "Send a test delivery",
          "request": {
            "name": "Send a test delivery",
            "description": {
              "content": "**API key ability:** `webhooks:manage`",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":uuid",
                "test"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "string",
                  "key": "uuid",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.stg.invoicing.proradius.co",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "info": {
    "_postman_id": "2261c1a5-a82c-40a5-b883-b87dcc1759aa",
    "name": "PROradius Invoicing API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "PROradius Invoicing API v1. Set the apiKey variable to your organization API key. Guides: https://developers.invoicing.proradius.co"
  }
}
