{
  "info": {
    "name": "API do Kobana Dunning (v1.0.0)",
    "description": "Collection Flow — Kobana’s collection engine public API. Manage customers, charges, collection rules, agreements, disputes and webhooks programmatically. Authenticate with an API key (Bearer) created in the dashboard under Settings → Security; access is limited by the key’s scopes (`dunning.dashboard.<resource>.<action>`).",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{bearerToken}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.dunning.kobana.com.br",
      "type": "string",
      "description": "https://api.dunning.kobana.com.br — Production\nhttps://api.dunning.sandbox.kobana.com.br — Sandbox — isolated testing environment, separate from production."
    },
    {
      "key": "bearerToken",
      "value": "",
      "type": "string",
      "description": "JWT (HS512) usado no header Authorization: Bearer."
    }
  ],
  "item": [
    {
      "name": "Customers",
      "item": [
        {
          "name": "List customers",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people?page=1&per_page=20&sort_by=createdAt&sort_order=asc&search=&classification_id=00000000-0000-0000-0000-000000000000&status=active",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field. Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search by name, document or email.",
                  "disabled": true
                },
                {
                  "key": "classification_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by classification (UUID).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "active",
                  "description": "Filter by record status (`active` | `deleted`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s customers with pagination and filters."
          },
          "response": []
        },
        {
          "name": "Create customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"classificationId\": \"00000000-0000-0000-0000-000000000000\",\n  \"documentNumber\": \"\",\n  \"documentType\": \"cpf\",\n  \"kind\": \"natural\",\n  \"name\": \"\",\n  \"legalName\": \"\",\n  \"nickname\": \"\",\n  \"birthday\": \"2026-01-01T00:00:00Z\",\n  \"addresses\": [\n    {\n      \"street\": \"\",\n      \"number\": \"\",\n      \"complement\": \"\",\n      \"neighborhood\": \"\",\n      \"city\": \"\",\n      \"state\": \"SP\",\n      \"zipCode\": \"01310100\"\n    }\n  ],\n  \"phones\": [\n    {\n      \"kind\": \"mobile\",\n      \"countryCode\": \"55\",\n      \"areaCode\": \"11\",\n      \"number\": \"999998888\"\n    }\n  ],\n  \"emails\": [\n    {\n      \"label\": \"personal\",\n      \"address\": \"user@example.com\"\n    }\n  ],\n  \"externalId\": \"\",\n  \"tags\": [\n    \"\"\n  ],\n  \"notes\": \"\",\n  \"customData\": {}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a customer in the portfolio. `externalId` and `documentNumber` drive deduplication in imports and integrations."
          },
          "response": []
        },
        {
          "name": "Get customer",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a customer by ID."
          },
          "response": []
        },
        {
          "name": "Update customer",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"classificationId\": \"00000000-0000-0000-0000-000000000000\",\n  \"documentNumber\": \"\",\n  \"documentType\": \"cpf\",\n  \"kind\": \"natural\",\n  \"name\": \"\",\n  \"legalName\": \"\",\n  \"nickname\": \"\",\n  \"birthday\": \"2026-01-01T00:00:00Z\",\n  \"addresses\": [\n    {\n      \"street\": \"\",\n      \"number\": \"\",\n      \"complement\": \"\",\n      \"neighborhood\": \"\",\n      \"city\": \"\",\n      \"state\": \"SP\",\n      \"zipCode\": \"01310100\"\n    }\n  ],\n  \"phones\": [\n    {\n      \"kind\": \"mobile\",\n      \"countryCode\": \"55\",\n      \"areaCode\": \"11\",\n      \"number\": \"999998888\"\n    }\n  ],\n  \"emails\": [\n    {\n      \"label\": \"personal\",\n      \"address\": \"user@example.com\"\n    }\n  ],\n  \"externalId\": \"\",\n  \"tags\": [\n    \"\"\n  ],\n  \"notes\": \"\",\n  \"customData\": {}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a customer’s data (partial)."
          },
          "response": []
        },
        {
          "name": "Delete customer",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes a customer. Charges and history remain for the audit trail."
          },
          "response": []
        },
        {
          "name": "Debtor statement (PDF)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/statement-pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "statement-pdf"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Generates the debtor statement as a PDF: all of the person’s charges (document, due date, status, original and current amount) with totals for open, overdue and already paid. Scoped to the organization. Responds with `application/pdf` as a binary attachment."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Charges",
      "item": [
        {
          "name": "List charges",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/charges?page=1&per_page=20&sort_by=createdAt&sort_order=asc&search=&person_id=00000000-0000-0000-0000-000000000000&status=pending,overdue&due_date_from=2026-01-01&due_date_to=2026-12-31&include=person",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "charges"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field. Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search by document number, description, `externalId`, customer name or document.",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by a customer’s charges (UUID).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending,overdue",
                  "description": "Filter by status. Accepts a single value or a comma-separated list (`pending`, `paid`, `overdue`, `cancelled`, `negotiated`, `protested`, `negatived`, `written_off`).",
                  "disabled": true
                },
                {
                  "key": "due_date_from",
                  "value": "2026-01-01",
                  "description": "Due date from (inclusive, `YYYY-MM-DD` or ISO datetime).",
                  "disabled": true
                },
                {
                  "key": "due_date_to",
                  "value": "2026-12-31",
                  "description": "Due date to (inclusive, `YYYY-MM-DD` or ISO datetime).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person",
                  "description": "Relations to include in the response (`person`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s charges with pagination and filters. Past-due pending charges are promoted to `overdue` on read."
          },
          "response": []
        },
        {
          "name": "Create charge",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/charges",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "charges"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"collectionRuleId\": \"00000000-0000-0000-0000-000000000000\",\n  \"documentNumber\": \"\",\n  \"description\": \"\",\n  \"originalAmount\": 1500,\n  \"interestAmount\": 0,\n  \"fineAmount\": 0,\n  \"discountAmount\": 0,\n  \"issueDate\": \"2026-07-01\",\n  \"dueDate\": \"2026-08-01\",\n  \"status\": \"pending\",\n  \"paymentMethod\": \"boleto\",\n  \"barcode\": \"\",\n  \"pixEmv\": \"\",\n  \"paymentUrl\": \"https://example.com\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ],\n  \"chargePolicy\": {\n    \"fine\": {\n      \"disabled\": true\n    },\n    \"interest\": {\n      \"disabled\": true\n    },\n    \"discount\": {\n      \"disabled\": true\n    },\n    \"correction\": {\n      \"index\": \"none\"\n    }\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a charge for a customer. Without `collectionRuleId`, the organization’s default collection rule is applied. `currentAmount` = original + interest + fine − discount; an already past-due charge starts as `overdue`."
          },
          "response": []
        },
        {
          "name": "Get charge",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/charges/:id?include=person,engine",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "charges",
                ":id"
              ],
              "query": [
                {
                  "key": "include",
                  "value": "person,engine",
                  "description": "Relations to include in the response (`person`, `engine` — rule telemetry).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a charge by ID. Use `include=engine` to receive engine telemetry (rule enrollment and step executions)."
          },
          "response": []
        },
        {
          "name": "Update charge",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/charges/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "charges",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"collectionRuleId\": \"00000000-0000-0000-0000-000000000000\",\n  \"documentNumber\": \"\",\n  \"description\": \"\",\n  \"originalAmount\": 1500,\n  \"interestAmount\": 0,\n  \"fineAmount\": 0,\n  \"discountAmount\": 0,\n  \"issueDate\": \"2026-07-01\",\n  \"dueDate\": \"2026-08-01\",\n  \"status\": \"pending\",\n  \"paymentMethod\": \"boleto\",\n  \"barcode\": \"\",\n  \"pixEmv\": \"\",\n  \"paymentUrl\": \"https://example.com\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ],\n  \"chargePolicy\": {\n    \"fine\": {\n      \"disabled\": true\n    },\n    \"interest\": {\n      \"disabled\": true\n    },\n    \"discount\": {\n      \"disabled\": true\n    },\n    \"correction\": {\n      \"index\": \"none\"\n    }\n  },\n  \"paidAmount\": 0,\n  \"paidAt\": \"2026-08-03\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a charge’s data (partial)."
          },
          "response": []
        },
        {
          "name": "Delete charge",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/charges/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "charges",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes a charge along with related tasks and offers. A charge with associated notifications, interactions, negativations or protests cannot be deleted (409)."
          },
          "response": []
        },
        {
          "name": "Settlement letter (PDF)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/charges/:id/settlement-pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "charges",
                ":id",
                "settlement-pdf"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Generates the charge’s settlement letter as a PDF (legal document), scoped to the organization. Allowed only when the charge is paid (status `paid`); otherwise returns 409 (`CHARGE_NOT_SETTLED`). Responds with `application/pdf` as a binary attachment."
          },
          "response": []
        },
        {
          "name": "Notify charge",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/charges/:id/notify",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "charges",
                ":id",
                "notify"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"channel\": \"email\",\n  \"recipient\": \"maria@exemplo.com.br\",\n  \"subject\": \"\",\n  \"body\": \"\",\n  \"collectionRuleStepId\": \"00000000-0000-0000-0000-000000000000\",\n  \"metadata\": {}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a manual notification for the charge and queues it for processing. Updates `lastNotificationAt` and, when `collectionRuleStepId` is provided, the charge’s `currentStep`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Agreements",
      "item": [
        {
          "name": "List agreements",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements?page=1&per_page=20&sort_by=createdAt&sort_order=asc&status=proposed&person_id=00000000-0000-0000-0000-000000000000&include=person,installments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field. Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "proposed",
                  "description": "Filter by agreement status.",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by a customer’s agreements (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,installments",
                  "description": "Relations to include in the response (`person`, `installments`, `negotiationOffer`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s agreements with pagination and filters."
          },
          "response": []
        },
        {
          "name": "Create agreement",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"negotiationOfferId\": \"00000000-0000-0000-0000-000000000000\",\n  \"originalTotal\": 1500,\n  \"discountAmount\": 300,\n  \"numberOfInstallments\": 6,\n  \"firstDueDate\": \"2026-08-01\",\n  \"termsAccepted\": \"\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates an agreement with `proposed` status. `finalTotal` = `originalTotal` − `discountAmount` (must be greater than zero) and `installmentValue` = `finalTotal` / `numberOfInstallments`."
          },
          "response": []
        },
        {
          "name": "Get agreement",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id?include=installments,negotiationOffer",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id"
              ],
              "query": [
                {
                  "key": "include",
                  "value": "installments,negotiationOffer",
                  "description": "Relations to include in the response (`installments`, `negotiationOffer`).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns an agreement by ID (always includes summarized customer data)."
          },
          "response": []
        },
        {
          "name": "Update agreement",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"originalTotal\": 0,\n  \"discountAmount\": 0,\n  \"numberOfInstallments\": 0,\n  \"firstDueDate\": \"2026-08-01\",\n  \"termsAccepted\": \"\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates an agreement (partial). Allowed only while status is `proposed` or `accepted` (409 otherwise)."
          },
          "response": []
        },
        {
          "name": "Delete agreement",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes an agreement, marking it `cancelled`. `completed` agreements cannot be deleted (409)."
          },
          "response": []
        },
        {
          "name": "Accept agreement",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id/accept",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id",
                "accept"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"acceptedIp\": \"\",\n  \"termsAccepted\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Accepts a `proposed` agreement (409 for other statuses): records `acceptedAt`/`acceptedIp` and creates the installments with monthly due dates starting at `firstDueDate`."
          },
          "response": []
        },
        {
          "name": "Cancel agreement",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Cancels an agreement, recording `cancelledAt` and the reason, and cancels pending/overdue installments. `completed` or already-cancelled agreements return 409."
          },
          "response": []
        },
        {
          "name": "Agreement term (PDF)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id/pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id",
                "pdf"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Generates the agreement term as a PDF (legal document) with creditor, debtor, totals and installments, scoped to the organization. Responds with `application/pdf` as a binary attachment."
          },
          "response": []
        },
        {
          "name": "List agreement installments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id/installments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id",
                "installments"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Lists an agreement’s installments (ordered by number) with an aggregated summary."
          },
          "response": []
        },
        {
          "name": "Update agreement installment",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/agreements/:id/installments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "agreements",
                ":id",
                "installments"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"installmentNumber\": 1,\n  \"paidAmount\": 0,\n  \"paidAt\": \"2026-08-03\",\n  \"status\": \"pending\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates an installment (payment/status). Allowed only for `accepted` or `active` agreements; cancelled installments cannot be changed (409). The first payment activates the agreement; once all installments are paid, the agreement is completed."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Disputes",
      "item": [
        {
          "name": "List disputes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/disputes?page=1&per_page=20&status=open&charge_id=00000000-0000-0000-0000-000000000000&person_id=00000000-0000-0000-0000-000000000000",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "disputes"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "open",
                  "description": "Filter by status (`open` | `under_review` | `resolved_valid` | `resolved_invalid` | `canceled`).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by charge (UUID).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by customer (UUID).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s disputes, ordered by opening date (newest first). Custom sorting is not supported."
          },
          "response": []
        },
        {
          "name": "Open dispute",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/disputes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "disputes"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"chargeId\": \"00000000-0000-0000-0000-000000000000\",\n  \"type\": \"already_paid\",\n  \"reason\": \"\",\n  \"disputedAmount\": 150,\n  \"documents\": [\n    {}\n  ],\n  \"assignedToId\": \"00000000-0000-0000-0000-000000000000\",\n  \"slaDays\": 5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Opens a dispute against a charge and immediately pauses the collection rule. If the charge already has an open or under-review dispute, the existing one is returned (no duplicates). Supports `Idempotency-Key`."
          },
          "response": []
        },
        {
          "name": "Get dispute",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/disputes/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "disputes",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a dispute by ID, with the full charge, customer and assignee."
          },
          "response": []
        },
        {
          "name": "Run dispute action",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/disputes/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "disputes",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"start_review\",\n  \"assignedToId\": \"00000000-0000-0000-0000-000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Runs a workflow action on the dispute: `start_review`, `resolve` or `cancel`. Invalid transitions (e.g., `start_review` when the status is not `open`) return 409."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Tasks",
      "item": [
        {
          "name": "List tasks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/tasks?page=1&per_page=20&sort_by=createdAt&sort_order=asc&status=pending&priority=low&task_type=call&assigned_to_id=00000000-0000-0000-0000-000000000000&person_id=00000000-0000-0000-0000-000000000000&charge_id=00000000-0000-0000-0000-000000000000&include=person,assignedTo,charge",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tasks"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field. Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filter by status (`pending` | `in_progress` | `completed` | `cancelled`).",
                  "disabled": true
                },
                {
                  "key": "priority",
                  "value": "low",
                  "description": "Filter by priority (`low` | `medium` | `high` | `urgent`).",
                  "disabled": true
                },
                {
                  "key": "task_type",
                  "value": "call",
                  "description": "Filter by type (`call` | `email` | `visit` | `review` | `follow_up`).",
                  "disabled": true
                },
                {
                  "key": "assigned_to_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by assignee (UUID).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by customer (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by charge (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,assignedTo,charge",
                  "description": "Relations to include, comma-separated (`person`, `assignedTo`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s tasks with pagination and filters. Sortable via `sort_by` (`title` | `priority` | `status` | `dueAt` | `createdAt` | `updatedAt`)."
          },
          "response": []
        },
        {
          "name": "Create task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tasks"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"chargeId\": \"00000000-0000-0000-0000-000000000000\",\n  \"assignedToId\": \"00000000-0000-0000-0000-000000000000\",\n  \"title\": \"\",\n  \"description\": \"\",\n  \"taskType\": \"call\",\n  \"priority\": \"medium\",\n  \"status\": \"pending\",\n  \"dueAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a task, optionally linked to a customer, a charge and an assignee (all within the organization). Supports `Idempotency-Key`."
          },
          "response": []
        },
        {
          "name": "Get task",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/tasks/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tasks",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a task by ID, with customer, assignee and charge summaries."
          },
          "response": []
        },
        {
          "name": "Update task",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/tasks/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tasks",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"chargeId\": \"00000000-0000-0000-0000-000000000000\",\n  \"assignedToId\": \"00000000-0000-0000-0000-000000000000\",\n  \"title\": \"\",\n  \"description\": \"\",\n  \"taskType\": \"call\",\n  \"priority\": \"low\",\n  \"status\": \"pending\",\n  \"dueAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a task’s data (partial)."
          },
          "response": []
        },
        {
          "name": "Delete task",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/tasks/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tasks",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes a task: the status becomes `cancelled` (the record remains)."
          },
          "response": []
        },
        {
          "name": "Complete task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/tasks/:id/complete",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tasks",
                ":id",
                "complete"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Marks the task as completed and fills `completedAt`. Returns 409 if the task is already completed or cancelled."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Interactions",
      "item": [
        {
          "name": "List interactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/interactions?page=1&per_page=20&sort_by=createdAt&sort_order=asc&interaction_type=call&direction=inbound&outcome=promise_to_pay&person_id=00000000-0000-0000-0000-000000000000&charge_id=00000000-0000-0000-0000-000000000000&include=person,user,charge",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "interactions"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field. Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "interaction_type",
                  "value": "call",
                  "description": "Filter by type (`call` | `email` | `whatsapp` | `meeting` | `note`).",
                  "disabled": true
                },
                {
                  "key": "direction",
                  "value": "inbound",
                  "description": "Filter by direction (`inbound` | `outbound`).",
                  "disabled": true
                },
                {
                  "key": "outcome",
                  "value": "promise_to_pay",
                  "description": "Filter by outcome (`promise_to_pay` | `negotiation` | `dispute` | `no_contact` | `callback_requested` | `payment_confirmed`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by customer (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by charge (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,user,charge",
                  "description": "Relations to include, comma-separated (`person`, `user`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s interactions with pagination and filters. Sortable via `sort_by` (`contactedAt` | `interactionType` | `createdAt` | `updatedAt`; default `contactedAt` desc)."
          },
          "response": []
        },
        {
          "name": "Log interaction",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/interactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "interactions"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"chargeId\": \"00000000-0000-0000-0000-000000000000\",\n  \"interactionType\": \"call\",\n  \"direction\": \"inbound\",\n  \"summary\": \"\",\n  \"outcome\": \"promise_to_pay\",\n  \"promiseDate\": \"2026-01-01T00:00:00Z\",\n  \"promisedAmount\": 200,\n  \"contactedAt\": \"2026-01-01T00:00:00Z\",\n  \"durationSeconds\": 0,\n  \"metadata\": {},\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Logs an interaction with a customer, optionally linked to a charge. Supports `Idempotency-Key`."
          },
          "response": []
        },
        {
          "name": "Get interaction",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/interactions/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "interactions",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns an interaction by ID, with customer, user and charge summaries."
          },
          "response": []
        },
        {
          "name": "Update interaction",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/interactions/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "interactions",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"summary\": \"\",\n  \"notes\": \"\",\n  \"outcome\": \"promise_to_pay\",\n  \"promiseDate\": \"2026-01-01T00:00:00Z\",\n  \"promisedAmount\": 0,\n  \"metadata\": {},\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates an interaction’s editable fields (partial)."
          },
          "response": []
        },
        {
          "name": "Delete interaction",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/interactions/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "interactions",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes an interaction; the record remains for the audit trail."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Notifications",
      "item": [
        {
          "name": "List notifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications?page=1&per_page=20&sort_by=createdAt&sort_order=asc&channel=email,whatsapp&status=failed,bounced&person_id=00000000-0000-0000-0000-000000000000&charge_id=00000000-0000-0000-0000-000000000000&include=person,charge,step",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field. Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "channel",
                  "value": "email,whatsapp",
                  "description": "Filter by channel; accepts a single value or a comma-separated list (`email` | `sms` | `whatsapp` | `voice` | `manual`).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "failed,bounced",
                  "description": "Filter by status; accepts a single value or a comma-separated list (`pending` | `queued` | `sent` | `delivered` | `read` | `failed` | `bounced`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by customer (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by charge (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,charge,step",
                  "description": "Relations to include, comma-separated (`person`, `charge`, `step`; `template` is an alias for `step`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s notifications with pagination and filters. Sortable via `sort_by` (`createdAt` | `updatedAt` | `sentAt` | `deliveredAt` | `channel` | `status`)."
          },
          "response": []
        },
        {
          "name": "Create notification",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"chargeId\": \"00000000-0000-0000-0000-000000000000\",\n  \"collectionRuleStepId\": \"00000000-0000-0000-0000-000000000000\",\n  \"channel\": \"email\",\n  \"recipient\": \"\",\n  \"subject\": \"\",\n  \"body\": \"\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ],\n  \"metadata\": {}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a manual notification for a customer, optionally linked to a charge and a rule step. The recipient is validated according to the channel."
          },
          "response": []
        },
        {
          "name": "Get notification",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/:id?include=person,charge,step",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                ":id"
              ],
              "query": [
                {
                  "key": "include",
                  "value": "person,charge,step",
                  "description": "Relations to include, comma-separated (`person`, `charge`, `step`; `template` is an alias for `step`).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a notification by ID; use `include` to attach relations."
          },
          "response": []
        },
        {
          "name": "Update notification",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"pending\",\n  \"sentAt\": \"\",\n  \"deliveredAt\": \"\",\n  \"readAt\": \"\",\n  \"failedAt\": \"\",\n  \"failureReason\": \"\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ],\n  \"metadata\": {},\n  \"cost\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a notification’s status, delivery timestamps and metadata (partial). Useful for integrations confirming send/delivery."
          },
          "response": []
        },
        {
          "name": "Delete notification",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "PERMANENTLY deletes a notification (hard delete — the model has no soft delete)."
          },
          "response": []
        },
        {
          "name": "Resend notification",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/:id/resend",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                ":id",
                "resend"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Creates a NEW `pending` notification copied from the original (the new record’s `metadata` references the original via `resendOf`). Only allowed when the original is `failed` or `bounced`; otherwise returns 400. Supports `Idempotency-Key`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Collection rules",
      "item": [
        {
          "name": "List collection rules",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules?page=1&per_page=20&classification_id=00000000-0000-0000-0000-000000000000&is_default=true&activated_at=true&include=steps",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "classification_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by associated classification (UUID).",
                  "disabled": true
                },
                {
                  "key": "is_default",
                  "value": "true",
                  "description": "Filter by default rule (`true` | `false`).",
                  "disabled": true
                },
                {
                  "key": "activated_at",
                  "value": "true",
                  "description": "Filter by activation: `true` = active, `false` = inactive.",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "steps",
                  "description": "Comma-separated relations to embed. Supported: `steps`.",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s collection rules, ordered by priority. `_count.charges` carries the number of active charges on the rule."
          },
          "response": []
        },
        {
          "name": "Create collection rule",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"classificationId\": \"00000000-0000-0000-0000-000000000000\",\n  \"name\": \"\",\n  \"description\": \"\",\n  \"isDefault\": false,\n  \"priority\": 0,\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ],\n  \"steps\": [\n    {\n      \"messageTemplateId\": \"00000000-0000-0000-0000-000000000000\",\n      \"position\": 0,\n      \"name\": \"\",\n      \"triggerType\": \"before_due\",\n      \"triggerDays\": 0,\n      \"actionType\": \"notification\",\n      \"channels\": [\n        \"email\"\n      ],\n      \"tone\": \"friendly\",\n      \"preferredTime\": \"\",\n      \"activatedAt\": \"2026-01-01T00:00:00Z\",\n      \"externalId\": \"\",\n      \"customData\": {},\n      \"tags\": [\n        \"\"\n      ]\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a collection rule, optionally with steps. Setting `isDefault` unsets the previous default rule."
          },
          "response": []
        },
        {
          "name": "Get collection rule",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules/:id?include=steps",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules",
                ":id"
              ],
              "query": [
                {
                  "key": "include",
                  "value": "steps",
                  "description": "Comma-separated relations to embed. Supported: `steps`.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a collection rule by ID. Use `include=steps` to embed the steps."
          },
          "response": []
        },
        {
          "name": "Update collection rule",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"classificationId\": \"00000000-0000-0000-0000-000000000000\",\n  \"name\": \"\",\n  \"description\": \"\",\n  \"isDefault\": false,\n  \"priority\": 0,\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ],\n  \"steps\": [\n    {\n      \"id\": \"00000000-0000-0000-0000-000000000000\",\n      \"name\": \"\",\n      \"position\": 0,\n      \"triggerType\": \"before_due\",\n      \"triggerDays\": 0,\n      \"actionType\": \"notification\",\n      \"channels\": [\n        \"email\"\n      ],\n      \"messageTemplateId\": \"00000000-0000-0000-0000-000000000000\",\n      \"tone\": \"friendly\",\n      \"preferredTime\": \"\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates the rule data (partial). The `steps` array, when sent, upserts and removes missing steps."
          },
          "response": []
        },
        {
          "name": "Delete collection rule",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes the rule and its steps. Fails with 409 if any charge uses the rule."
          },
          "response": []
        },
        {
          "name": "List rule steps",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules/:id/steps",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules",
                ":id",
                "steps"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Lists the rule steps ordered by `position`, with the message template embedded."
          },
          "response": []
        },
        {
          "name": "Create step",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules/:id/steps",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules",
                ":id",
                "steps"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messageTemplateId\": \"00000000-0000-0000-0000-000000000000\",\n  \"position\": 0,\n  \"name\": \"\",\n  \"triggerType\": \"before_due\",\n  \"triggerDays\": 0,\n  \"actionType\": \"notification\",\n  \"channels\": [\n    \"email\"\n  ],\n  \"tone\": \"friendly\",\n  \"preferredTime\": \"\",\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a step on the rule. Without `position` it goes last; with `position`, following steps shift down."
          },
          "response": []
        },
        {
          "name": "Update step",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules/:id/steps/:stepId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules",
                ":id",
                "steps",
                ":stepId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                },
                {
                  "key": "stepId",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Step identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messageTemplateId\": \"00000000-0000-0000-0000-000000000000\",\n  \"position\": 0,\n  \"name\": \"\",\n  \"triggerType\": \"before_due\",\n  \"triggerDays\": 0,\n  \"actionType\": \"notification\",\n  \"channels\": [\n    \"email\"\n  ],\n  \"tone\": \"friendly\",\n  \"preferredTime\": \"\",\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a step (partial). Changing `position` automatically reorders the other steps."
          },
          "response": []
        },
        {
          "name": "Delete step",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/collection-rules/:id/steps/:stepId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "collection-rules",
                ":id",
                "steps",
                ":stepId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                },
                {
                  "key": "stepId",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Step identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes a step and reorders the remaining ones. Fails with 409 if the step has associated notifications."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Message templates",
      "item": [
        {
          "name": "List templates",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/templates?page=1&per_page=20&search=&channel=email&category=reminder&tone=friendly&is_active=true&sort_by=createdAt&sort_order=asc",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "templates"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search by name, subject or body.",
                  "disabled": true
                },
                {
                  "key": "channel",
                  "value": "email",
                  "description": "Filter by channel.",
                  "disabled": true
                },
                {
                  "key": "category",
                  "value": "reminder",
                  "description": "Filter by category.",
                  "disabled": true
                },
                {
                  "key": "tone",
                  "value": "friendly",
                  "description": "Filter by tone.",
                  "disabled": true
                },
                {
                  "key": "is_active",
                  "value": "true",
                  "description": "Filter by activation: `true` = active, `false` = inactive.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field. Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s message templates with pagination, search and filters."
          },
          "response": []
        },
        {
          "name": "Create template",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/templates",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "templates"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"channel\": \"email\",\n  \"category\": \"reminder\",\n  \"tone\": \"friendly\",\n  \"subject\": \"\",\n  \"body\": \"\",\n  \"variables\": [\n    \"\"\n  ],\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a message template. Fails with 409 if a template with the same `name` or `externalId` already exists."
          },
          "response": []
        },
        {
          "name": "Get template",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/templates/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "templates",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a template by ID."
          },
          "response": []
        },
        {
          "name": "Update template",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/templates/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "templates",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"channel\": \"email\",\n  \"category\": \"reminder\",\n  \"tone\": \"friendly\",\n  \"subject\": \"\",\n  \"body\": \"\",\n  \"variables\": [\n    \"\"\n  ],\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a template (partial). Fails with 409 if the new `name` or `externalId` is already taken."
          },
          "response": []
        },
        {
          "name": "Delete template",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/templates/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "templates",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes a template. Fails with 409 if it is in use by rule steps."
          },
          "response": []
        },
        {
          "name": "Duplicate template",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/templates/:id/duplicate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "templates",
                ":id",
                "duplicate"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a copy of the template with the given name. The copy starts inactive (`activatedAt` null) and without `externalId`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Classifications",
      "item": [
        {
          "name": "List classifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/classifications?page=1&per_page=20&is_default=true&auto_assign=true&activated_at=true&include=_count&sort=name&order=asc",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "classifications"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "is_default",
                  "value": "true",
                  "description": "Filter by default classification (`true` | `false`).",
                  "disabled": true
                },
                {
                  "key": "auto_assign",
                  "value": "true",
                  "description": "Filter by automatic assignment (`true` | `false`).",
                  "disabled": true
                },
                {
                  "key": "activated_at",
                  "value": "true",
                  "description": "Filter by activation: `true` = active, `false` or `null` = inactive.",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "_count",
                  "description": "Relations to embed. Supported: `_count` (customers and rules).",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "name",
                  "description": "Sort field (`name` | `code` | `priority` | `createdAt` | `updatedAt`).",
                  "disabled": true
                },
                {
                  "key": "order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s classifications, ordered by `priority` and `name` by default. Use `include=_count` for counters."
          },
          "response": []
        },
        {
          "name": "Create classification",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/classifications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "classifications"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"code\": \"good_payer\",\n  \"description\": \"\",\n  \"color\": \"#22c55e\",\n  \"priority\": 0,\n  \"isDefault\": false,\n  \"autoAssign\": false,\n  \"criteria\": {\n    \"minOnTimePercentage\": 0,\n    \"maxOnTimePercentage\": 0,\n    \"maxConsecutiveDelays\": 0,\n    \"maxCurrentOverdueDays\": 0,\n    \"evaluationPeriodMonths\": 0,\n    \"minChargesCount\": 0,\n    \"maxChargesCount\": 0,\n    \"hasNegativationHistory\": false,\n    \"hasProtestHistory\": false\n  },\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a classification. Setting `isDefault` unsets the previous default; a duplicate `code` fails with 409."
          },
          "response": []
        },
        {
          "name": "Get classification",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/classifications/:id?include=_count",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "classifications",
                ":id"
              ],
              "query": [
                {
                  "key": "include",
                  "value": "_count",
                  "description": "Relations to embed. Supported: `_count` (customers and rules).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a classification by ID. Use `include=_count` for counters."
          },
          "response": []
        },
        {
          "name": "Update classification",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/classifications/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "classifications",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"code\": \"good_payer\",\n  \"description\": \"\",\n  \"color\": \"#22c55e\",\n  \"priority\": 0,\n  \"isDefault\": false,\n  \"autoAssign\": false,\n  \"criteria\": {\n    \"minOnTimePercentage\": 0,\n    \"maxOnTimePercentage\": 0,\n    \"maxConsecutiveDelays\": 0,\n    \"maxCurrentOverdueDays\": 0,\n    \"evaluationPeriodMonths\": 0,\n    \"minChargesCount\": 0,\n    \"maxChargesCount\": 0,\n    \"hasNegativationHistory\": false,\n    \"hasProtestHistory\": false\n  },\n  \"activatedAt\": \"2026-01-01T00:00:00Z\",\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a classification (partial). A duplicate `code` fails with 409."
          },
          "response": []
        },
        {
          "name": "Delete classification",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/classifications/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "classifications",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes a classification. Fails with 409 if there are associated customers or rules. The `code` stays reserved."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Negotiation campaigns",
      "item": [
        {
          "name": "List campaigns",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negotiation-campaigns",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negotiation-campaigns"
              ]
            },
            "description": "Lists the organization’s negotiation campaigns (active and ended), newest first. Not paginated."
          },
          "response": []
        },
        {
          "name": "Create campaign",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negotiation-campaigns",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negotiation-campaigns"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"discountPercentage\": 30,\n  \"maxInstallments\": 1,\n  \"minDaysOverdue\": 0,\n  \"maxDaysOverdue\": 0,\n  \"validUntil\": \"2026-12-31\",\n  \"terms\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates and activates a discount campaign. The debtor portal starts offering it to charges within the configured overdue range."
          },
          "response": []
        },
        {
          "name": "End campaign",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negotiation-campaigns/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negotiation-campaigns",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Ends the campaign (deactivates; `activatedAt` becomes null). The record is kept and the portal stops offering it."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Credit Bureau Reports",
      "item": [
        {
          "name": "List bureau reports",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negativations?page=1&per_page=20&sort_by=createdAt&sort_order=asc&status=pending&bureau=serasa&person_id=00000000-0000-0000-0000-000000000000&charge_id=00000000-0000-0000-0000-000000000000&include=person,charge",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negativations"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field (`createdAt` | `updatedAt` | `amount` | `registeredAt`). Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filter by status (`pending` | `active` | `removed` | `failed`).",
                  "disabled": true
                },
                {
                  "key": "bureau",
                  "value": "serasa",
                  "description": "Filter by credit bureau (`serasa` | `spc` | `boa_vista`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by customer (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by charge (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,charge",
                  "description": "Comma-separated relations to embed (`person`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s bureau reports with pagination and filters. Use `include=person,charge` to embed customer and charge summaries."
          },
          "response": []
        },
        {
          "name": "Create bureau report",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negativations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negativations"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"chargeId\": \"00000000-0000-0000-0000-000000000000\",\n  \"bureau\": \"serasa\",\n  \"amount\": 150,\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a bureau report for a charge. The record starts as `pending` and is ONLY submitted to the bureau after human review and approval (legal workflow; `negativation.review_required` event). Returns 409 if a `pending`/`active` report already exists for the same charge and bureau."
          },
          "response": []
        },
        {
          "name": "Get bureau report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negativations/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negativations",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a bureau report by ID, with customer and charge summaries."
          },
          "response": []
        },
        {
          "name": "Update bureau report",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negativations/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negativations",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"pending\",\n  \"externalId\": \"\",\n  \"registeredAt\": \"2026-01-01T00:00:00Z\",\n  \"removedAt\": \"2026-01-01T00:00:00Z\",\n  \"removalReason\": \"\",\n  \"responseData\": {},\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a bureau report (partial). This is the approval step of the legal workflow: it requires the review (`approve`) permission and is where status moves from `pending` to `active` after human review."
          },
          "response": []
        },
        {
          "name": "Delete bureau report",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negativations/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negativations",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Logical removal: marks the report as `removed` and sets `removedAt`. The record remains for the audit trail."
          },
          "response": []
        },
        {
          "name": "Request bureau report removal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/negativations/:id/remove",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "negativations",
                ":id",
                "remove"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"removalReason\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Requests removal of a report from the bureau. Only allowed for `active` records; status becomes `removed` and the reason (if sent) is stored in `removalReason`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Notary Protests",
      "item": [
        {
          "name": "List protests",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/protests?page=1&per_page=20&sort_by=createdAt&sort_order=asc&status=pending&person_id=00000000-0000-0000-0000-000000000000&charge_id=00000000-0000-0000-0000-000000000000&include=person,charge",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "protests"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Sort field (`createdAt` | `updatedAt` | `amount` | `protestDate` | `sentAt`). Legacy alias: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Sort direction (`asc` | `desc`). Legacy alias: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filter by status (`pending` | `sent` | `intimated` | `protested` | `paid` | `cancelled`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by customer (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by charge (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,charge",
                  "description": "Comma-separated relations to embed (`person`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s protests with pagination and filters. Use `include=person,charge` to embed customer and charge summaries."
          },
          "response": []
        },
        {
          "name": "Create protest",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/protests",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "protests"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"00000000-0000-0000-0000-000000000000\",\n  \"chargeId\": \"00000000-0000-0000-0000-000000000000\",\n  \"amount\": 150,\n  \"notary\": \"\",\n  \"notaryCode\": \"\",\n  \"fees\": 12.5,\n  \"externalId\": \"\",\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a protest for a charge. The record starts as `pending` and is ONLY sent to the notary after human review and approval (legal workflow; `protest.review_required` event). Returns 409 if an active protest (`pending`/`sent`/`intimated`/`protested`) already exists for the same charge."
          },
          "response": []
        },
        {
          "name": "Get protest",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/protests/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "protests",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns a protest by ID, with customer and charge summaries."
          },
          "response": []
        },
        {
          "name": "Update protest",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/protests/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "protests",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"pending\",\n  \"notary\": \"\",\n  \"notaryCode\": \"\",\n  \"fees\": 0,\n  \"externalId\": \"\",\n  \"sentAt\": \"2026-01-01T00:00:00Z\",\n  \"intimationDate\": \"2026-01-01T00:00:00Z\",\n  \"protestDate\": \"2026-01-01T00:00:00Z\",\n  \"paymentDate\": \"2026-01-01T00:00:00Z\",\n  \"cancellationDate\": \"2026-01-01T00:00:00Z\",\n  \"responseData\": {},\n  \"customData\": {},\n  \"tags\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates a protest (partial). This is the approval step of the legal workflow: it requires the review (`approve`) permission and is where status advances from `pending` to `sent`/`intimated`/`protested` after human review."
          },
          "response": []
        },
        {
          "name": "Delete protest",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/protests/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "protests",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Logical removal: marks the protest as `cancelled` and sets `cancellationDate`. The record remains for the audit trail."
          },
          "response": []
        },
        {
          "name": "Request protest cancellation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/protests/:id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "protests",
                ":id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cancellationReason\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Requests cancellation of a protest. Not allowed for protests already `cancelled` or `paid`; status becomes `cancelled` and the reason (if sent) is stored in `responseData.cancellationReason`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Imports",
      "item": [
        {
          "name": "List imports",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports"
              ]
            },
            "description": "History of the organization’s 50 most recent imports (no pagination). File content and per-row errors are omitted; use GET /imports/{id} for details."
          },
          "response": []
        },
        {
          "name": "Create import",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"resourceType\": \"people\",\n  \"fileName\": \"clientes.csv\",\n  \"content\": \"nome,documento,email\\nMaria da Silva,12345678901,maria@example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Uploads a CSV file of customers or charges and queues asynchronous processing. The body is JSON with the raw CSV text in the `content` field (max 2 MB). Invalid rows do not abort the batch: they are recorded in `errors` (`[{ line, error }]`) while the rest is processed. Track progress via GET /imports/{id}. Responds 202."
          },
          "response": []
        },
        {
          "name": "Get import",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns an import’s status with progress counters and per-row rejection errors (`errors: [{ line, error }]`; line 1 is the header, data starts at line 2)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Exports",
      "item": [
        {
          "name": "Export customers (synchronous CSV)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/exports/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "exports",
                "people"
              ]
            },
            "description": "Generates and returns the customers CSV inline (`text/csv; charset=utf-8` with BOM, `Content-Disposition: attachment`). Columns: nome, documento, tipo_documento, email, telefone, classificacao, external_id, tags, criado_em. Capped at 10k rows; beyond that use the asynchronous export (POST /exports/jobs)."
          },
          "response": []
        },
        {
          "name": "Export charges (synchronous CSV)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/exports/charges?status=overdue&from=2026-01-01&to=2026-06-30",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "exports",
                "charges"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "overdue",
                  "description": "Filter charges by status (e.g. `pending`, `overdue`, `paid`).",
                  "disabled": true
                },
                {
                  "key": "from",
                  "value": "2026-01-01",
                  "description": "Due date from (ISO date `YYYY-MM-DD`).",
                  "disabled": true
                },
                {
                  "key": "to",
                  "value": "2026-06-30",
                  "description": "Due date until (ISO date `YYYY-MM-DD`).",
                  "disabled": true
                }
              ]
            },
            "description": "Generates and returns the charges CSV inline (`text/csv; charset=utf-8` with BOM, `Content-Disposition: attachment`), with optional status and due-date filters. Columns: cliente, documento_cliente, numero_documento, descricao, valor_original, valor_atual, vencimento, dias_atraso, status, origem, external_id. Capped at 10k rows; beyond that use the asynchronous export (POST /exports/jobs)."
          },
          "response": []
        },
        {
          "name": "List asynchronous exports",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/exports/jobs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "exports",
                "jobs"
              ]
            },
            "description": "History of the organization’s 50 most recent asynchronous exports (no pagination). Use this route to track job status; the CSV itself is not included in the listing."
          },
          "response": []
        },
        {
          "name": "Create asynchronous export",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/exports/jobs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "exports",
                "jobs"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"resourceType\": \"people\",\n  \"fileName\": \"cobrancas-junho.csv\",\n  \"filters\": {\n    \"status\": \"overdue\",\n    \"from\": \"2026-01-01\",\n    \"to\": \"2026-06-30\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Schedules CSV generation on a worker, without the 10k-row cap of the synchronous mode and without blocking the request. Track status via GET /exports/jobs and download the file via GET /exports/jobs/{id}/download before `expiresAt`. Responds 202."
          },
          "response": []
        },
        {
          "name": "Download export CSV",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/exports/jobs/:id/download",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "exports",
                "jobs",
                ":id",
                "download"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Serves the generated CSV of an asynchronous export (`text/csv; charset=utf-8` with BOM). Only available once the job is `completed` and before `expiresAt`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "List webhook endpoints",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints"
              ]
            },
            "description": "Lists the organization’s webhook endpoints with delivery counters by status. `secret` and `authConfig` never appear in the listing."
          },
          "response": []
        },
        {
          "name": "Create webhook endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://example.com/webhooks/kobana\",\n  \"description\": \"\",\n  \"events\": [\n    \"charge.paid\",\n    \"charge.overdue\"\n  ],\n  \"authType\": \"none\",\n  \"authConfig\": {\n    \"token\": \"meu-token-secreto\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates a webhook endpoint. The URL requires HTTPS and is validated against internal addresses (SSRF). The `secret` is returned only in this response — store it safely."
          },
          "response": []
        },
        {
          "name": "Get webhook endpoint",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Returns the endpoint with its latest 20 deliveries. The `secret` is never returned."
          },
          "response": []
        },
        {
          "name": "Update webhook endpoint",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://example.com\",\n  \"description\": \"\",\n  \"events\": [\n    \"charge.paid\"\n  ],\n  \"isActive\": false,\n  \"authType\": \"none\",\n  \"authConfig\": {\n    \"token\": \"meu-token-secreto\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Updates the endpoint (partial). The URL, when sent, is re-validated (HTTPS + SSRF); `authConfig` is encrypted and never returned."
          },
          "response": []
        },
        {
          "name": "Delete webhook endpoint",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Soft-deletes the endpoint; pending deliveries stop being processed."
          },
          "response": []
        },
        {
          "name": "Rotate secret",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints/:id/rotate-secret",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id",
                "rotate-secret"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Generates a new HMAC secret; the previous one stops validating immediately. The new secret is returned only in this response — store it safely."
          },
          "response": []
        },
        {
          "name": "Send test event",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints/:id/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id",
                "test"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Delivers a REAL `webhook.test` event to the endpoint through the same pipeline as business events (queue, HMAC signature, request/response capture, retry) — validate your consumer end to end without waiting for a real event. Delivered only to the target endpoint, regardless of the subscribed event list. Fails with 409 if the endpoint is inactive."
          },
          "response": []
        },
        {
          "name": "List endpoint deliveries",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints/:id/deliveries?page=1&per_page=20&status=pending",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id",
                "deliveries"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filter by delivery status.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                }
              ]
            },
            "description": "Lists the endpoint’s deliveries (paginated, newest first) with the request/response capture for inspection and debugging."
          },
          "response": []
        },
        {
          "name": "Retry delivery",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhook-endpoints/:id/deliveries/:deliveryId/retry",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id",
                "deliveries",
                ":deliveryId",
                "retry"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Resource identifier (UUID)."
                },
                {
                  "key": "deliveryId",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Delivery identifier (UUID)."
                }
              ]
            },
            "description": "Re-queues a delivery for an immediate retry (status resets to `pending`). Fails with 409 if the endpoint is inactive or deleted."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Audit trail",
      "item": [
        {
          "name": "Query audit trail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/audit-logs?page=1&per_page=20&action=&entity_type=&entity_id=00000000-0000-0000-0000-000000000000&actor_type=user&actor_id=&from=2026-01-01T00:00:00Z&to=2026-01-01T00:00:00Z",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "audit-logs"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number (starts at 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Items per page (max 100). Legacy alias: `limit`.",
                  "disabled": true
                },
                {
                  "key": "action",
                  "value": "",
                  "description": "Filter by action (partial match, `contains`).",
                  "disabled": true
                },
                {
                  "key": "entity_type",
                  "value": "",
                  "description": "Filter by entity type.",
                  "disabled": true
                },
                {
                  "key": "entity_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filter by entity (UUID).",
                  "disabled": true
                },
                {
                  "key": "actor_type",
                  "value": "user",
                  "description": "Filter by actor type (`user` | `system` | `job`).",
                  "disabled": true
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "description": "Filter by actor (user ID, job name or system name).",
                  "disabled": true
                },
                {
                  "key": "from",
                  "value": "2026-01-01T00:00:00Z",
                  "description": "Period start (ISO 8601, inclusive).",
                  "disabled": true
                },
                {
                  "key": "to",
                  "value": "2026-01-01T00:00:00Z",
                  "description": "Period end (ISO 8601, inclusive).",
                  "disabled": true
                }
              ]
            },
            "description": "Lists the organization’s audit trail records (newest first), with filters by action, entity, actor and period."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Metrics",
      "item": [
        {
          "name": "Recovery metrics",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/metrics/recovery?months=6",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "metrics",
                "recovery"
              ],
              "query": [
                {
                  "key": "months",
                  "value": "6",
                  "description": "Window in months (1–24; default 6).",
                  "disabled": true
                }
              ]
            },
            "description": "Returns the period’s recovery metrics (default: last 6 months, counted from the first day of the starting month)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Email layouts",
      "item": [
        {
          "name": "List email layouts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/email-layouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "email-layouts"
              ]
            },
            "description": "Lists the organization’s email layouts (default first) and the built-in reference layout."
          },
          "response": []
        },
        {
          "name": "Create email layout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/email-layouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "email-layouts"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Layout institucional\",\n  \"htmlBody\": \"<html><body><header>ACME</header>{{content}}</body></html>\",\n  \"isDefault\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Creates an email layout. The `htmlBody` must contain the `{{content}}` placeholder (otherwise, 400 `MISSING_CONTENT_PLACEHOLDER`). `isDefault: true` unsets the previous default."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Notification preferences",
      "item": [
        {
          "name": "Get notification preferences",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notification-preferences",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notification-preferences"
              ]
            },
            "description": "Returns the effective gate per message type — types without a saved record appear with all channels enabled."
          },
          "response": []
        },
        {
          "name": "Update notification preferences",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "User-Agent",
                "value": "Kevin Mitnick <kmitnick@kobana.com.br>",
                "type": "text"
              },
              {
                "key": "X-Idempotency-Key",
                "value": "00000000-0000-0000-0000-000000000000",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notification-preferences",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notification-preferences"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"preferences\": [\n    {\n      \"type\": \"reminder\",\n      \"emailEnabled\": false,\n      \"smsEnabled\": false,\n      \"whatsappEnabled\": false\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Upserts the submitted preferences (partial: only the included types are changed)."
          },
          "response": []
        }
      ]
    }
  ]
}
