{
  "info": {
    "name": "API do Kobana Dunning (v1.0.0)",
    "description": "API pública da Régua de Cobrança — a régua de cobrança da Kobana. Gerencie clientes, cobranças, réguas, acordos, disputas e webhooks programaticamente. Autentique com uma chave de API (Bearer) criada no dashboard em Configurações → Segurança; o acesso é limitado pelos escopos da chave (`dunning.dashboard.<recurso>.<ação>`).",
    "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 — Produção\nhttps://api.dunning.sandbox.kobana.com.br — Sandbox — ambiente de testes isolado, separado da produção."
    },
    {
      "key": "bearerToken",
      "value": "",
      "type": "string",
      "description": "JWT (HS512) usado no header Authorization: Bearer."
    }
  ],
  "item": [
    {
      "name": "Clientes",
      "item": [
        {
          "name": "Listar clientes",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação. Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Busca por nome, documento ou e-mail.",
                  "disabled": true
                },
                {
                  "key": "classification_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela classificação (UUID).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "active",
                  "description": "Filtra por status do cadastro (`active` | `deleted`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista os clientes da organização com paginação e filtros."
          },
          "response": []
        },
        {
          "name": "Criar cliente",
          "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": "Cria um cliente na carteira. `externalId` e `documentNumber` são usados para deduplicação em importações e integrações."
          },
          "response": []
        },
        {
          "name": "Consultar cliente",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna um cliente pelo ID."
          },
          "response": []
        },
        {
          "name": "Atualizar cliente",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza os dados de um cliente (parcial)."
          },
          "response": []
        },
        {
          "name": "Excluir cliente",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) um cliente. Cobranças e histórico permanecem para trilha de auditoria."
          },
          "response": []
        },
        {
          "name": "Extrato do devedor (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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Gera o extrato do devedor em PDF: todas as cobranças da pessoa (documento, vencimento, status, valor original e atual) com os totais em aberto, vencido e já pago. Escopado pela organização. Responde `application/pdf` como anexo binário."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Cobranças",
      "item": [
        {
          "name": "Listar cobranças",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação. Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Busca por número do documento, descrição, `externalId`, nome ou documento do cliente.",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelas cobranças de um cliente (UUID).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending,overdue",
                  "description": "Filtra por status. Aceita um valor ou lista separada por vírgula (`pending`, `paid`, `overdue`, `cancelled`, `negotiated`, `protested`, `negatived`, `written_off`).",
                  "disabled": true
                },
                {
                  "key": "due_date_from",
                  "value": "2026-01-01",
                  "description": "Vencimento a partir de (inclusive, `YYYY-MM-DD` ou datetime ISO).",
                  "disabled": true
                },
                {
                  "key": "due_date_to",
                  "value": "2026-12-31",
                  "description": "Vencimento até (inclusive, `YYYY-MM-DD` ou datetime ISO).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person",
                  "description": "Relações a incluir na resposta (`person`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as cobranças da organização com paginação e filtros. Cobranças pendentes vencidas são promovidas a `overdue` na leitura."
          },
          "response": []
        },
        {
          "name": "Criar cobrança",
          "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": "Cria uma cobrança para um cliente. Sem `collectionRuleId`, a régua padrão da organização é aplicada. `currentAmount` = original + juros + multa − desconto; cobrança já vencida entra como `overdue`."
          },
          "response": []
        },
        {
          "name": "Consultar cobrança",
          "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": "Relações a incluir na resposta (`person`, `engine` — telemetria da régua).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma cobrança pelo ID. Use `include=engine` para receber a telemetria do motor (enrollment na régua e execuções de etapa)."
          },
          "response": []
        },
        {
          "name": "Atualizar cobrança",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza os dados de uma cobrança (parcial)."
          },
          "response": []
        },
        {
          "name": "Excluir cobrança",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) uma cobrança e as tarefas e ofertas relacionadas. Cobrança com notificações, interações, negativações ou protestos associados não pode ser excluída (409)."
          },
          "response": []
        },
        {
          "name": "Carta de quitação (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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Gera a carta de quitação da cobrança em PDF (documento jurídico), escopada pela organização. Só é permitida quando a cobrança está paga (status `paid`); caso contrário retorna 409 (`CHARGE_NOT_SETTLED`). Responde `application/pdf` como anexo binário."
          },
          "response": []
        },
        {
          "name": "Notificar cobrança",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Cria uma notificação manual para a cobrança e a envia para a fila de processamento. Atualiza `lastNotificationAt` e, quando `collectionRuleStepId` é informado, o `currentStep` da cobrança."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Acordos",
      "item": [
        {
          "name": "Listar acordos",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação. Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "proposed",
                  "description": "Filtra por status do acordo.",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelos acordos de um cliente (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,installments",
                  "description": "Relações a incluir na resposta (`person`, `installments`, `negotiationOffer`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista os acordos da organização com paginação e filtros."
          },
          "response": []
        },
        {
          "name": "Criar acordo",
          "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": "Cria um acordo com status `proposed`. `finalTotal` = `originalTotal` − `discountAmount` (deve ser maior que zero) e `installmentValue` = `finalTotal` / `numberOfInstallments`."
          },
          "response": []
        },
        {
          "name": "Consultar acordo",
          "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": "Relações a incluir na resposta (`installments`, `negotiationOffer`).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna um acordo pelo ID (sempre inclui dados resumidos do cliente)."
          },
          "response": []
        },
        {
          "name": "Atualizar acordo",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza um acordo (parcial). Permitido apenas com status `proposed` ou `accepted` (409 nos demais)."
          },
          "response": []
        },
        {
          "name": "Excluir acordo",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) um acordo, marcando-o como `cancelled`. Acordos `completed` não podem ser excluídos (409)."
          },
          "response": []
        },
        {
          "name": "Aceitar acordo",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"acceptedIp\": \"\",\n  \"termsAccepted\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Aceita um acordo `proposed` (409 nos demais status): registra `acceptedAt`/`acceptedIp` e cria as parcelas com vencimentos mensais a partir de `firstDueDate`."
          },
          "response": []
        },
        {
          "name": "Cancelar acordo",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Cancela um acordo, registrando `cancelledAt` e o motivo, e cancela as parcelas pendentes/vencidas. Acordos `completed` ou já cancelados retornam 409."
          },
          "response": []
        },
        {
          "name": "Termo de acordo (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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Gera o termo de acordo em PDF (documento jurídico) com credor, devedor, totais e parcelas, escopado pela organização. Responde `application/pdf` como anexo binário."
          },
          "response": []
        },
        {
          "name": "Listar parcelas do acordo",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Lista as parcelas de um acordo (ordenadas por número) com um resumo agregado."
          },
          "response": []
        },
        {
          "name": "Atualizar parcela do acordo",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"installmentNumber\": 1,\n  \"paidAmount\": 0,\n  \"paidAt\": \"2026-08-03\",\n  \"status\": \"pending\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Atualiza uma parcela (pagamento/status). Permitido apenas em acordos `accepted` ou `active`; parcelas canceladas não podem ser alteradas (409). Primeiro pagamento ativa o acordo; com todas as parcelas pagas, o acordo é concluído (`completed`)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Disputas",
      "item": [
        {
          "name": "Listar disputas",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "open",
                  "description": "Filtra por status (`open` | `under_review` | `resolved_valid` | `resolved_invalid` | `canceled`).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela cobrança (UUID).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelo cliente (UUID).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as disputas da organização, ordenadas por abertura (mais recente primeiro). Não aceita ordenação customizada."
          },
          "response": []
        },
        {
          "name": "Abrir disputa",
          "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": "Abre uma disputa sobre uma cobrança e pausa a régua imediatamente. Se já houver disputa aberta ou em análise para a cobrança, retorna a existente (não duplica). Suporta `Idempotency-Key`."
          },
          "response": []
        },
        {
          "name": "Consultar disputa",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma disputa pelo ID, com cobrança completa, cliente e responsável."
          },
          "response": []
        },
        {
          "name": "Executar ação na disputa",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"start_review\",\n  \"assignedToId\": \"00000000-0000-0000-0000-000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Executa uma ação de fluxo na disputa: `start_review`, `resolve` ou `cancel`. Transições inválidas (ex.: `start_review` quando o status não é `open`) retornam 409."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Tarefas",
      "item": [
        {
          "name": "Listar tarefas",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação. Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filtra por status (`pending` | `in_progress` | `completed` | `cancelled`).",
                  "disabled": true
                },
                {
                  "key": "priority",
                  "value": "low",
                  "description": "Filtra por prioridade (`low` | `medium` | `high` | `urgent`).",
                  "disabled": true
                },
                {
                  "key": "task_type",
                  "value": "call",
                  "description": "Filtra pelo tipo (`call` | `email` | `visit` | `review` | `follow_up`).",
                  "disabled": true
                },
                {
                  "key": "assigned_to_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelo responsável (UUID).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelo cliente (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela cobrança (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,assignedTo,charge",
                  "description": "Relações a incluir, separadas por vírgula (`person`, `assignedTo`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as tarefas da organização com paginação e filtros. Ordenável via `sort_by` (`title` | `priority` | `status` | `dueAt` | `createdAt` | `updatedAt`)."
          },
          "response": []
        },
        {
          "name": "Criar tarefa",
          "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": "Cria uma tarefa, opcionalmente vinculada a um cliente, uma cobrança e um responsável (todos da própria organização). Suporta `Idempotency-Key`."
          },
          "response": []
        },
        {
          "name": "Consultar tarefa",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma tarefa pelo ID, com resumos de cliente, responsável e cobrança."
          },
          "response": []
        },
        {
          "name": "Atualizar tarefa",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza os dados de uma tarefa (parcial)."
          },
          "response": []
        },
        {
          "name": "Excluir tarefa",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui logicamente uma tarefa: o status passa a `cancelled` (o registro permanece)."
          },
          "response": []
        },
        {
          "name": "Concluir tarefa",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Marca a tarefa como concluída e preenche `completedAt`. Retorna 409 se a tarefa já estiver concluída ou cancelada."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Interações",
      "item": [
        {
          "name": "Listar interações",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação. Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "interaction_type",
                  "value": "call",
                  "description": "Filtra pelo tipo (`call` | `email` | `whatsapp` | `meeting` | `note`).",
                  "disabled": true
                },
                {
                  "key": "direction",
                  "value": "inbound",
                  "description": "Filtra pela direção (`inbound` | `outbound`).",
                  "disabled": true
                },
                {
                  "key": "outcome",
                  "value": "promise_to_pay",
                  "description": "Filtra pelo desfecho (`promise_to_pay` | `negotiation` | `dispute` | `no_contact` | `callback_requested` | `payment_confirmed`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelo cliente (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela cobrança (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,user,charge",
                  "description": "Relações a incluir, separadas por vírgula (`person`, `user`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as interações da organização com paginação e filtros. Ordenável via `sort_by` (`contactedAt` | `interactionType` | `createdAt` | `updatedAt`; padrão `contactedAt` desc)."
          },
          "response": []
        },
        {
          "name": "Registrar interação",
          "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": "Registra uma interação com um cliente, opcionalmente vinculada a uma cobrança. Suporta `Idempotency-Key`."
          },
          "response": []
        },
        {
          "name": "Consultar interação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma interação pelo ID, com resumos de cliente, usuário e cobrança."
          },
          "response": []
        },
        {
          "name": "Atualizar interação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza os campos editáveis de uma interação (parcial)."
          },
          "response": []
        },
        {
          "name": "Excluir interação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) uma interação; o registro permanece para trilha de auditoria."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Notificações",
      "item": [
        {
          "name": "Listar notificações",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação. Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "channel",
                  "value": "email,whatsapp",
                  "description": "Filtra por canal; aceita valor único ou lista separada por vírgula (`email` | `sms` | `whatsapp` | `voice` | `manual`).",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "failed,bounced",
                  "description": "Filtra por status; aceita valor único ou lista separada por vírgula (`pending` | `queued` | `sent` | `delivered` | `read` | `failed` | `bounced`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelo cliente (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela cobrança (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,charge,step",
                  "description": "Relações a incluir, separadas por vírgula (`person`, `charge`, `step`; `template` equivale a `step`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as notificações da organização com paginação e filtros. Ordenável via `sort_by` (`createdAt` | `updatedAt` | `sentAt` | `deliveredAt` | `channel` | `status`)."
          },
          "response": []
        },
        {
          "name": "Criar notificação",
          "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": "Cria uma notificação manual para um cliente, opcionalmente vinculada a uma cobrança e a um passo da régua. O destinatário é validado conforme o canal."
          },
          "response": []
        },
        {
          "name": "Consultar notificação",
          "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": "Relações a incluir, separadas por vírgula (`person`, `charge`, `step`; `template` equivale a `step`).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma notificação pelo ID; use `include` para anexar relações."
          },
          "response": []
        },
        {
          "name": "Atualizar notificação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza status, timestamps de entrega e metadados de uma notificação (parcial). Útil para integrações que confirmam envio/entrega."
          },
          "response": []
        },
        {
          "name": "Excluir notificação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui uma notificação DEFINITIVAMENTE (hard delete — o modelo não tem soft delete)."
          },
          "response": []
        },
        {
          "name": "Reenviar notificação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Cria uma NOVA notificação `pending` copiando a original (o `metadata` da nova referencia a original em `resendOf`). Só é permitido quando a original está `failed` ou `bounced`; caso contrário retorna 400. Suporta `Idempotency-Key`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Réguas de cobrança",
      "item": [
        {
          "name": "Listar réguas",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "classification_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela classificação associada (UUID).",
                  "disabled": true
                },
                {
                  "key": "is_default",
                  "value": "true",
                  "description": "Filtra pela régua padrão (`true` | `false`).",
                  "disabled": true
                },
                {
                  "key": "activated_at",
                  "value": "true",
                  "description": "Filtra por ativação: `true` = ativas, `false` = inativas.",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "steps",
                  "description": "Relações a embutir, separadas por vírgula. Suportado: `steps`.",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as réguas de cobrança da organização, ordenadas por prioridade. `_count.charges` traz o total de cobranças ativas na régua."
          },
          "response": []
        },
        {
          "name": "Criar régua",
          "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": "Cria uma régua de cobrança, opcionalmente já com etapas. Marcar `isDefault` desmarca a régua padrão anterior."
          },
          "response": []
        },
        {
          "name": "Consultar régua",
          "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": "Relações a embutir, separadas por vírgula. Suportado: `steps`.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma régua pelo ID. Use `include=steps` para incluir as etapas."
          },
          "response": []
        },
        {
          "name": "Atualizar régua",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza os dados da régua (parcial). O array `steps`, quando enviado, faz upsert e exclui as etapas ausentes."
          },
          "response": []
        },
        {
          "name": "Excluir régua",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) a régua e suas etapas. Falha com 409 se houver cobranças usando a régua."
          },
          "response": []
        },
        {
          "name": "Listar etapas da régua",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Lista as etapas da régua ordenadas por `position`, com o template de mensagem embutido."
          },
          "response": []
        },
        {
          "name": "Criar etapa",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Cria uma etapa na régua. Sem `position`, entra no fim; com `position`, desloca as etapas seguintes."
          },
          "response": []
        },
        {
          "name": "Atualizar etapa",
          "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": "Identificador (UUID) do recurso."
                },
                {
                  "key": "stepId",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) da etapa."
                }
              ]
            },
            "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": "Atualiza uma etapa (parcial). Mudar `position` reordena as demais etapas automaticamente."
          },
          "response": []
        },
        {
          "name": "Excluir etapa",
          "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": "Identificador (UUID) do recurso."
                },
                {
                  "key": "stepId",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) da etapa."
                }
              ]
            },
            "description": "Exclui (soft delete) uma etapa e reordena as restantes. Falha com 409 se a etapa tiver notificações associadas."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Templates de mensagem",
      "item": [
        {
          "name": "Listar 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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Busca por nome, assunto ou corpo.",
                  "disabled": true
                },
                {
                  "key": "channel",
                  "value": "email",
                  "description": "Filtra pelo canal.",
                  "disabled": true
                },
                {
                  "key": "category",
                  "value": "reminder",
                  "description": "Filtra pela categoria.",
                  "disabled": true
                },
                {
                  "key": "tone",
                  "value": "friendly",
                  "description": "Filtra pelo tom.",
                  "disabled": true
                },
                {
                  "key": "is_active",
                  "value": "true",
                  "description": "Filtra por ativação: `true` = ativos, `false` = inativos.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação. Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                }
              ]
            },
            "description": "Lista os templates de mensagem da organização com paginação, busca e filtros."
          },
          "response": []
        },
        {
          "name": "Criar 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": "Cria um template de mensagem. Falha com 409 se já existir template com o mesmo `name` ou `externalId`."
          },
          "response": []
        },
        {
          "name": "Consultar 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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna um template pelo ID."
          },
          "response": []
        },
        {
          "name": "Atualizar 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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza um template (parcial). Falha com 409 se o novo `name` ou `externalId` já estiver em uso."
          },
          "response": []
        },
        {
          "name": "Excluir 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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) um template. Falha com 409 se ele estiver em uso por etapas de régua."
          },
          "response": []
        },
        {
          "name": "Duplicar 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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Cria uma cópia do template com o nome informado. A cópia nasce inativa (`activatedAt` null) e sem `externalId`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Classificações",
      "item": [
        {
          "name": "Listar classificações",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "is_default",
                  "value": "true",
                  "description": "Filtra pela classificação padrão (`true` | `false`).",
                  "disabled": true
                },
                {
                  "key": "auto_assign",
                  "value": "true",
                  "description": "Filtra por atribuição automática (`true` | `false`).",
                  "disabled": true
                },
                {
                  "key": "activated_at",
                  "value": "true",
                  "description": "Filtra por ativação: `true` = ativas, `false` ou `null` = inativas.",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "_count",
                  "description": "Relações a embutir. Suportado: `_count` (clientes e réguas).",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "name",
                  "description": "Campo de ordenação (`name` | `code` | `priority` | `createdAt` | `updatedAt`).",
                  "disabled": true
                },
                {
                  "key": "order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as classificações da organização, por padrão ordenadas por `priority` e `name`. Use `include=_count` para os contadores."
          },
          "response": []
        },
        {
          "name": "Criar classificação",
          "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": "Cria uma classificação. Marcar `isDefault` desmarca a padrão anterior; `code` duplicado falha com 409."
          },
          "response": []
        },
        {
          "name": "Consultar classificação",
          "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": "Relações a embutir. Suportado: `_count` (clientes e réguas).",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma classificação pelo ID. Use `include=_count` para os contadores."
          },
          "response": []
        },
        {
          "name": "Atualizar classificação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza uma classificação (parcial). `code` duplicado falha com 409."
          },
          "response": []
        },
        {
          "name": "Excluir classificação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) uma classificação. Falha com 409 se houver clientes ou réguas associados. O `code` continua reservado."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Campanhas de negociação",
      "item": [
        {
          "name": "Listar campanhas",
          "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": "Lista as campanhas de negociação da organização (ativas e encerradas), da mais recente para a mais antiga. Sem paginação."
          },
          "response": []
        },
        {
          "name": "Criar campanha",
          "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": "Cria e ativa uma campanha de desconto. O portal do devedor passa a oferecê-la às cobranças na faixa de atraso configurada."
          },
          "response": []
        },
        {
          "name": "Encerrar campanha",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Encerra a campanha (desativa; `activatedAt` vira null). O registro é mantido e o portal deixa de oferecê-la."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Negativações",
      "item": [
        {
          "name": "Listar negativações",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação (`createdAt` | `updatedAt` | `amount` | `registeredAt`). Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filtra por status (`pending` | `active` | `removed` | `failed`).",
                  "disabled": true
                },
                {
                  "key": "bureau",
                  "value": "serasa",
                  "description": "Filtra pelo birô de crédito (`serasa` | `spc` | `boa_vista`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelo cliente (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela cobrança (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,charge",
                  "description": "Relações a embutir, separadas por vírgula (`person`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as negativações da organização com paginação e filtros. Use `include=person,charge` para embutir os resumos de cliente e cobrança."
          },
          "response": []
        },
        {
          "name": "Criar negativação",
          "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": "Registra uma negativação para uma cobrança. O registro nasce `pending` e SÓ é enviado ao birô após revisão e aprovação humana (workflow jurídico; evento `negativation.review_required`). Retorna 409 se já existir negativação `pending`/`active` para a mesma cobrança no mesmo birô."
          },
          "response": []
        },
        {
          "name": "Consultar negativação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna uma negativação pelo ID, com os resumos de cliente e cobrança."
          },
          "response": []
        },
        {
          "name": "Atualizar negativação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza uma negativação (parcial). É a etapa de aprovação do workflow jurídico: exige permissão de revisão (`approve`) e é onde o status sai de `pending` para `active` após a revisão humana."
          },
          "response": []
        },
        {
          "name": "Excluir negativação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Baixa lógica: marca a negativação como `removed` e grava `removedAt`. O registro permanece para trilha de auditoria."
          },
          "response": []
        },
        {
          "name": "Solicitar baixa da negativação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"removalReason\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Solicita a baixa de uma negativação no birô. Só é permitido para registros `active`; o status vira `removed` e o motivo (se enviado) fica em `removalReason`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Protestos",
      "item": [
        {
          "name": "Listar protestos",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "sort_by",
                  "value": "createdAt",
                  "description": "Campo de ordenação (`createdAt` | `updatedAt` | `amount` | `protestDate` | `sentAt`). Alias legado: `sortField`.",
                  "disabled": true
                },
                {
                  "key": "sort_order",
                  "value": "asc",
                  "description": "Direção da ordenação (`asc` | `desc`). Alias legado: `sortDirection`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filtra por status (`pending` | `sent` | `intimated` | `protested` | `paid` | `cancelled`).",
                  "disabled": true
                },
                {
                  "key": "person_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pelo cliente (UUID).",
                  "disabled": true
                },
                {
                  "key": "charge_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela cobrança (UUID).",
                  "disabled": true
                },
                {
                  "key": "include",
                  "value": "person,charge",
                  "description": "Relações a embutir, separadas por vírgula (`person`, `charge`).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista os protestos da organização com paginação e filtros. Use `include=person,charge` para embutir os resumos de cliente e cobrança."
          },
          "response": []
        },
        {
          "name": "Criar protesto",
          "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": "Registra um protesto para uma cobrança. O registro nasce `pending` e SÓ é enviado ao cartório após revisão e aprovação humana (workflow jurídico; evento `protest.review_required`). Retorna 409 se já existir protesto ativo (`pending`/`sent`/`intimated`/`protested`) para a mesma cobrança."
          },
          "response": []
        },
        {
          "name": "Consultar protesto",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna um protesto pelo ID, com os resumos de cliente e cobrança."
          },
          "response": []
        },
        {
          "name": "Atualizar protesto",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza um protesto (parcial). É a etapa de aprovação do workflow jurídico: exige permissão de revisão (`approve`) e é onde o status avança de `pending` para `sent`/`intimated`/`protested` após a revisão humana."
          },
          "response": []
        },
        {
          "name": "Excluir protesto",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Baixa lógica: marca o protesto como `cancelled` e grava `cancellationDate`. O registro permanece para trilha de auditoria."
          },
          "response": []
        },
        {
          "name": "Solicitar cancelamento do protesto",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cancellationReason\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Solicita o cancelamento de um protesto. Não é permitido para protestos já `cancelled` nem `paid`; o status vira `cancelled` e o motivo (se enviado) fica em `responseData.cancellationReason`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Importações",
      "item": [
        {
          "name": "Listar importações",
          "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": "Histórico das 50 importações mais recentes da organização (sem paginação). O conteúdo do arquivo e os erros por linha ficam de fora; consulte GET /imports/{id} para o detalhe."
          },
          "response": []
        },
        {
          "name": "Criar importação",
          "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": "Sobe uma planilha CSV de clientes ou cobranças e agenda o processamento assíncrono (fila). O corpo é JSON com o CSV em texto puro no campo `content` (máx. 2 MB). Linhas inválidas não derrubam o lote: são registradas em `errors` (`[{ line, error }]`) e o restante é processado. Acompanhe pelo GET /imports/{id}. Responde 202."
          },
          "response": []
        },
        {
          "name": "Consultar importação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna o status de uma importação com contadores de progresso e os erros por linha rejeitada (`errors: [{ line, error }]`; a linha 1 é o cabeçalho, os dados começam na linha 2)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Exportações",
      "item": [
        {
          "name": "Exportar clientes (CSV síncrono)",
          "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": "Gera e responde na hora o CSV de clientes (`text/csv; charset=utf-8` com BOM, `Content-Disposition: attachment`). Colunas: nome, documento, tipo_documento, email, telefone, classificacao, external_id, tags, criado_em. Teto de 10 mil linhas; acima disso use a exportação assíncrona (POST /exports/jobs)."
          },
          "response": []
        },
        {
          "name": "Exportar cobranças (CSV síncrono)",
          "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": "Filtra as cobranças pelo status (ex.: `pending`, `overdue`, `paid`).",
                  "disabled": true
                },
                {
                  "key": "from",
                  "value": "2026-01-01",
                  "description": "Vencimento a partir de (data ISO `YYYY-MM-DD`).",
                  "disabled": true
                },
                {
                  "key": "to",
                  "value": "2026-06-30",
                  "description": "Vencimento até (data ISO `YYYY-MM-DD`).",
                  "disabled": true
                }
              ]
            },
            "description": "Gera e responde na hora o CSV de cobranças (`text/csv; charset=utf-8` com BOM, `Content-Disposition: attachment`), com filtros opcionais de status e período de vencimento. Colunas: cliente, documento_cliente, numero_documento, descricao, valor_original, valor_atual, vencimento, dias_atraso, status, origem, external_id. Teto de 10 mil linhas; acima disso use a exportação assíncrona (POST /exports/jobs)."
          },
          "response": []
        },
        {
          "name": "Listar exportações assíncronas",
          "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": "Histórico das 50 exportações assíncronas mais recentes da organização (sem paginação). Use esta rota para acompanhar o status dos jobs; o CSV em si não vem na listagem."
          },
          "response": []
        },
        {
          "name": "Criar exportação assíncrona",
          "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": "Agenda a geração do CSV num worker, sem o teto de 10 mil linhas do modo síncrono e sem travar a request. Acompanhe o status em GET /exports/jobs e baixe o arquivo em GET /exports/jobs/{id}/download antes de `expiresAt`. Responde 202."
          },
          "response": []
        },
        {
          "name": "Baixar CSV da exportação",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Serve o CSV já gerado de uma exportação assíncrona (`text/csv; charset=utf-8` com BOM). Só entrega se o job estiver `completed` e dentro da validade (`expiresAt`)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "Listar endpoints de webhook",
          "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": "Lista os endpoints de webhook da organização com contadores de entrega por status. `secret` e `authConfig` nunca aparecem na listagem."
          },
          "response": []
        },
        {
          "name": "Criar endpoint de webhook",
          "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": "Cria um endpoint de webhook. A URL exige HTTPS e é validada contra endereços internos (SSRF). O `secret` é retornado apenas nesta resposta — guarde com segurança."
          },
          "response": []
        },
        {
          "name": "Consultar endpoint de webhook",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Retorna o endpoint com as últimas 20 entregas. O `secret` nunca é retornado."
          },
          "response": []
        },
        {
          "name": "Atualizar endpoint de webhook",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "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": "Atualiza o endpoint (parcial). A URL, se enviada, é revalidada (HTTPS + SSRF); `authConfig` é cifrado e nunca retornado."
          },
          "response": []
        },
        {
          "name": "Excluir endpoint de webhook",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Exclui (soft delete) o endpoint; entregas pendentes deixam de ser processadas."
          },
          "response": []
        },
        {
          "name": "Rotacionar 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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Gera um novo secret HMAC; o anterior deixa de validar imediatamente. O novo secret é retornado apenas nesta resposta — guarde com segurança."
          },
          "response": []
        },
        {
          "name": "Disparar evento de teste",
          "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": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Entrega um evento `webhook.test` REAL ao endpoint, pelo mesmo pipeline dos eventos de negócio (fila, assinatura HMAC, captura de request/response, retry) — valide seu consumidor fim a fim sem esperar um evento real. Entregue somente ao endpoint alvo, independente da lista de eventos assinados. Falha com 409 se o endpoint estiver inativo."
          },
          "response": []
        },
        {
          "name": "Listar entregas do 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/deliveries?page=1&per_page=20&status=pending",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "webhook-endpoints",
                ":id",
                "deliveries"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "description": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "Filtra pelo status da entrega.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) do recurso."
                }
              ]
            },
            "description": "Lista as entregas do endpoint (paginado, mais recentes primeiro) com a captura de request/response para inspeção e debug."
          },
          "response": []
        },
        {
          "name": "Reenviar entrega",
          "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": "Identificador (UUID) do recurso."
                },
                {
                  "key": "deliveryId",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Identificador (UUID) da entrega."
                }
              ]
            },
            "description": "Re-enfileira uma entrega para nova tentativa imediata (status volta a `pending`). Falha com 409 se o endpoint estiver inativo ou removido."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Trilha de auditoria",
      "item": [
        {
          "name": "Consultar trilha de auditoria",
          "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": "Página (a partir de 1).",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": "20",
                  "description": "Itens por página (máx. 100). Alias legado: `limit`.",
                  "disabled": true
                },
                {
                  "key": "action",
                  "value": "",
                  "description": "Filtra por ação (busca parcial, `contains`).",
                  "disabled": true
                },
                {
                  "key": "entity_type",
                  "value": "",
                  "description": "Filtra pelo tipo de entidade.",
                  "disabled": true
                },
                {
                  "key": "entity_id",
                  "value": "00000000-0000-0000-0000-000000000000",
                  "description": "Filtra pela entidade (UUID).",
                  "disabled": true
                },
                {
                  "key": "actor_type",
                  "value": "user",
                  "description": "Filtra pelo tipo de ator (`user` | `system` | `job`).",
                  "disabled": true
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "description": "Filtra pelo ator (ID do usuário, nome do job ou do sistema).",
                  "disabled": true
                },
                {
                  "key": "from",
                  "value": "2026-01-01T00:00:00Z",
                  "description": "Início do período (ISO 8601, inclusive).",
                  "disabled": true
                },
                {
                  "key": "to",
                  "value": "2026-01-01T00:00:00Z",
                  "description": "Fim do período (ISO 8601, inclusive).",
                  "disabled": true
                }
              ]
            },
            "description": "Lista os registros da trilha de auditoria da organização (mais recentes primeiro), com filtros por ação, entidade, ator e período."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Métricas",
      "item": [
        {
          "name": "Métricas de recuperação",
          "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": "Janela em meses (1–24; padrão 6).",
                  "disabled": true
                }
              ]
            },
            "description": "Retorna as métricas de recuperação do período (padrão: últimos 6 meses, contados a partir do primeiro dia do mês inicial)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Layouts de e-mail",
      "item": [
        {
          "name": "Listar layouts de e-mail",
          "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": "Lista os layouts de e-mail da organização (padrão primeiro) e o layout embutido de referência."
          },
          "response": []
        },
        {
          "name": "Criar layout de e-mail",
          "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": "Cria um layout de e-mail. O `htmlBody` deve conter o placeholder `{{content}}` (senão, 400 `MISSING_CONTENT_PLACEHOLDER`). `isDefault: true` desmarca o padrão anterior."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Preferências de notificação",
      "item": [
        {
          "name": "Consultar preferências de notificação",
          "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": "Retorna o gate efetivo por tipo de mensagem — tipos sem registro salvo aparecem com todos os canais ligados."
          },
          "response": []
        },
        {
          "name": "Atualizar preferências de notificação",
          "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": "Faz upsert das preferências enviadas (parcial: só os tipos incluídos são alterados)."
          },
          "response": []
        }
      ]
    }
  ]
}
