{
  "item": [
    {
      "id": "b155c9d2-ff63-4bf7-bcf2-58b1a448f2dd",
      "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": "c2a36fc1-d0d6-4c93-9c51-9078d3fb66fd",
          "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": "b2676689-1c7c-41cd-b50b-1b79201c4218",
          "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": "0f2dba1e-2cbd-404c-944d-e25850c20c1f",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "89dab4e3-7af7-403b-a3c6-14696462809e",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "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\": \"d73cb9be-5ebb-f332-53ae-bb747fe10321\",\n  \"priority\": \"critical\",\n  \"type\": \"task\",\n  \"due_date\": \"2008-02-03\",\n  \"sla_hours\": 652,\n  \"labels\": [\n    \"string\",\n    \"string\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "35d8e629-dbf5-4994-86ed-15e436bdd314",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "method": "DELETE"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2aba64f2-d6c3-4350-bfa0-69e31ad8079f",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3091bd33-1db2-4e98-9cd5-e12e8550e5d9",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6e634232-001c-4a4c-be77-c47c9dfa6e00",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "12933b48-55a9-4d75-9586-67fc81dd4b90",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "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": "03be5680-6d32-4cb5-bb11-f18ccaccea43",
      "name": "Scheduling",
      "description": {
        "content": "Book a technician and a visit window, then start the job.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "d3118644-5b93-4ae8-98bc-d5c80ace1e0a",
          "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": "feb124a0-6a55-415e-b314-6867d40eca8e",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "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\": \"f0a16812-7f57-6e33-18e1-e31d7788d730\",\n  \"scheduled_at\": \"2026-10-14T11:00:00Z\",\n  \"scheduled_until\": \"2026-10-14T13:00:00Z\",\n  \"override\": false,\n  \"override_reason\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "32ff444b-8586-42c5-8bd9-4eed707c1961",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "cb53e433-67a6-4c13-8630-18d9fc634fa6",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6fe6fdba-62ff-4c58-99d5-38e412113877",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c5e4aa42-c012-4500-a339-aa1fe67ff4d2",
      "name": "Completion",
      "description": {
        "content": "Complete, bill or cancel a job.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "51f8996e-5a9b-45bd-8076-8fd383503b8f",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "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": "f68dc729-1e17-45ac-95df-f40c68e21e49",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "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": "2ba24927-ca22-41e4-8b5b-2596c3917967",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ae39c1bf-502f-4c02-80d3-e201c798e496",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "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\": 7657.523800828094,\n    \"currency\": \"string\",\n    \"method\": \"cash\",\n    \"exchange_rate\": 4994.760331162737\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c29146c2-2e57-44f5-8278-1ee5cdb4449a",
      "name": "Job types",
      "description": {
        "content": "Templates that set priority, SLA, checklist and billing mode.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "9d059ebf-1fa5-48b6-8551-9b032f905ff1",
          "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": "bf4acbf8-41f3-4f9c-93d9-400d4ae4884e",
          "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\": \"v90pay-h\",\n  \"color\": \"string\",\n  \"icon\": \"string\",\n  \"board_id\": \"287d0f47-4b17-a08c-fe0a-74fb4f4cecd1\",\n  \"default_priority\": \"low\",\n  \"sla_hours\": 9779,\n  \"duration_minutes\": 719,\n  \"checklist\": [\n    \"string\",\n    \"string\"\n  ],\n  \"billing_mode\": \"on_completion\",\n  \"default_items\": [\n    {\n      \"item_uuid\": \"cf87f176-dbf3-3c22-60b4-05cea31c7f87\",\n      \"quantity\": 1\n    },\n    {\n      \"item_uuid\": \"934580dc-1912-d7e2-def6-fee19e92cdf2\",\n      \"quantity\": 1\n    }\n  ],\n  \"required_skills\": [\n    \"ba986368-840a-7f79-d652-17c890b0efd1\",\n    \"b003f36f-27db-6a92-2d94-0c73c79f6d87\"\n  ],\n  \"requires_client\": true,\n  \"portal_visible\": false,\n  \"auto_assign\": false,\n  \"notify_client\": true,\n  \"active\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9b535e21-14d3-41a9-ade3-23456d0913e3",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8922ec4a-d004-4f7b-9e0a-94bae1cae01b",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "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\": \"v90pay-h\",\n  \"color\": \"string\",\n  \"icon\": \"string\",\n  \"board_id\": \"287d0f47-4b17-a08c-fe0a-74fb4f4cecd1\",\n  \"default_priority\": \"low\",\n  \"sla_hours\": 9779,\n  \"duration_minutes\": 719,\n  \"checklist\": [\n    \"string\",\n    \"string\"\n  ],\n  \"billing_mode\": \"on_completion\",\n  \"default_items\": [\n    {\n      \"item_uuid\": \"cf87f176-dbf3-3c22-60b4-05cea31c7f87\",\n      \"quantity\": 1\n    },\n    {\n      \"item_uuid\": \"934580dc-1912-d7e2-def6-fee19e92cdf2\",\n      \"quantity\": 1\n    }\n  ],\n  \"required_skills\": [\n    \"ba986368-840a-7f79-d652-17c890b0efd1\",\n    \"b003f36f-27db-6a92-2d94-0c73c79f6d87\"\n  ],\n  \"requires_client\": true,\n  \"portal_visible\": false,\n  \"auto_assign\": false,\n  \"notify_client\": true,\n  \"active\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "3fda0f76-b9ba-4c22-932b-4c002429f508",
      "name": "Boards",
      "description": {
        "content": "Boards and their columns. Every job lives on a board.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "337c93d0-a20e-4f55-a541-46350f96decf",
          "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": "e28daf7f-9906-4f82-975e-d6cdb4f8af83",
          "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": "4e242809-285c-6e18-e51b-5bdbc1b352a5",
                  "key": "id",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET"
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "7c64401a-e352-426d-a19f-a219011976a4",
      "name": "Clients",
      "description": {
        "content": "Customers of the organization.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "0cea4b68-70c6-4395-a808-0ed0849d8df1",
          "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": "5b1ecd48-aad1-4437-849e-ba2f7956a7ec",
          "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\": \"b0b5a2fd-aa43-e491-128a-4d2e15996a9c\",\n  \"receivable_account_id\": \"3cc04314-c508-83fe-7793-0fd9d8dca9d6\",\n  \"branch_id\": \"3f6e0aa0-f859-8afe-7c61-bf449975382a\",\n  \"salutation\": \"string\",\n  \"email\": \"7mC@isjCFEvvG.xjr\",\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\": 6337,\n  \"active\": false,\n  \"enable_portal\": true,\n  \"auto_invoice\": true,\n  \"discount\": 1138.6306577142013,\n  \"discount_type\": \"percentage\",\n  \"enable_odometer\": false,\n  \"odometer_value\": 2789.4981311758424,\n  \"opening_balance\": 4575.38667786025,\n  \"opening_balance_currency\": \"string\",\n  \"items\": [\n    {\n      \"id\": \"4effd7b5-ca80-f1c5-9998-59b16ab7f30e\",\n      \"is_free\": false,\n      \"price\": 1149.5783157638018,\n      \"display_price\": 8122.599215422486,\n      \"quantity\": 652792.132140461\n    },\n    {\n      \"id\": \"ed7cecda-c55c-70f9-41a1-0c2de65a7899\",\n      \"is_free\": true,\n      \"price\": 2062.055820158515,\n      \"display_price\": 2317.3027281190884,\n      \"quantity\": 131965.25239056637\n    }\n  ],\n  \"preferred_language\": \"null\",\n  \"isp_id\": \"5ca88a97-cf74-f136-d71c-3a2840f86ec2\",\n  \"isp_username\": \"string\",\n  \"generator_id\": \"8b7b29d3-1c00-61ca-9529-7f276c67083d\",\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\": \"cash\",\n  \"create_invoice_on_save\": false,\n  \"activation_date\": \"1983-07-26T18:14:07.908Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3745e145-4bdf-4dd6-b602-950901d33061",
          "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": "82a37e79-3501-40cc-8262-181789fb38c4",
          "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": "ef4fded7-685d-4d51-9b94-ffa17ae09bf9",
          "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\": \"61b0622a-1ad5-6652-d62b-c81e07889daa\",\n  \"receivable_account_id\": \"496ec612-66f0-9a64-b2ce-e229b1f4366d\",\n  \"branch_id\": \"a452e99c-8f9c-8b2a-1fdd-29992cadd1c7\",\n  \"salutation\": \"string\",\n  \"email\": \"0YSe1otDtC@wBQcAitUzSPPaDC.brcd\",\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\": 7299,\n  \"active\": true,\n  \"enable_portal\": false,\n  \"auto_invoice\": true,\n  \"discount\": 4840.125271575835,\n  \"discount_type\": \"null\",\n  \"enable_odometer\": false,\n  \"odometer_value\": 9944.654779973755,\n  \"opening_balance\": 9074.250262768172,\n  \"opening_balance_currency\": \"string\",\n  \"items\": [\n    {\n      \"id\": \"bee1168a-2b82-c1b9-ea8f-4ed2859acca1\",\n      \"is_free\": true,\n      \"price\": 4488.678570639122,\n      \"display_price\": 4427.472238414818,\n      \"quantity\": 334786.82907252014\n    },\n    {\n      \"id\": \"5ed132e5-d3ce-3df4-a024-17e7fe921f70\",\n      \"is_free\": true,\n      \"price\": 6833.139291697236,\n      \"display_price\": 8559.010401468375,\n      \"quantity\": 858594.9409283338\n    }\n  ],\n  \"preferred_language\": \"en\",\n  \"isp_id\": \"6b03a685-0bdc-08a1-67eb-f59032ae4dd8\",\n  \"isp_username\": \"string\",\n  \"generator_id\": \"993953c4-3974-9db0-c24b-d6f4ea2b9546\",\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\": \"bob\",\n  \"cascade_collector_to_payable_invoices\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "ec57f2f1-7cdd-4b30-8b25-e1cb5fb35972",
      "name": "Webhooks",
      "description": {
        "content": "Endpoints, topics and deliveries. Events are signed with HMAC-SHA256.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "6c57dedb-691a-4a55-9921-e2b44b3c4779",
          "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": "5f86039e-d2a0-4f60-89ab-b8c7f9972183",
          "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    \"client.updated\"\n  ],\n  \"description\": \"string\",\n  \"branch_id\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d982bae6-3160-49b4-aecd-d2831b267f77",
          "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": "a5d79778-1f76-44a5-9c53-d291cc73c957",
          "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": "9c7d351c-2a4b-4019-b49e-e2f9de22ccda",
          "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": "16537e7d-b398-412f-83f6-b510f49ee5f8",
          "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    \"ticket.archived\"\n  ],\n  \"active\": false,\n  \"branch_id\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ffa0a40c-7d6f-455b-bb1a-2935b3858eb0",
          "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": "9e034714-0cd4-450c-86af-2c84d2f392dc",
          "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": "3bddd2c8-5d36-4438-9e6c-0cc8264ffc72",
          "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": "6161b2f9-3ac1-4040-a942-a452aa962ba8",
          "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.invoicing.proradius.co",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "info": {
    "_postman_id": "a6d362db-82b4-4b52-8450-c466bfd0770f",
    "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"
  }
}
