{
  "openapi": "3.1.0",
  "info": {
    "title": "ImobyFlow API",
    "version": "1.0.0",
    "description": "A API de integração da ImobyFlow: a carteira, os clientes, as recomendações do Radar, as parcerias e os eventos da conta, para o seu CRM, site ou assistente de IA. Documentação: https://imobyflow.com.br/desenvolvedores",
    "termsOfService": "https://imobyflow.com.br/termos-api",
    "contact": {
      "name": "ImobyFlow",
      "url": "https://imobyflow.com.br/contato"
    }
  },
  "servers": [
    {
      "url": "https://api.imobyflow.com.br/v1"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Conta",
      "description": "A conta dona da chave: plano, cota de imóveis, permissões da chave, limites e o uso do mês.",
      "x-description-en": "The account that owns the key: plan, property quota, key permissions, limits and monthly usage."
    },
    {
      "name": "Listas de valores",
      "description": "Os valores aceitos em cada campo de código: tipos de imóvel, finalidades, status, etapas, permissões e eventos. São os MESMOS valores do banco — não existe tradução no meio.",
      "x-description-en": "The accepted values for each code field: property types, purposes, statuses, stages, permissions and events. They are the SAME values stored by the platform — there is no translation layer."
    },
    {
      "name": "Cidades e bairros",
      "description": "O catálogo de localização: cidade pelo código do IBGE e bairro pelo identificador do catálogo. Bairro é fechado contra o catálogo — é por ele que o imóvel entra nas recomendações.",
      "x-description-en": "The location catalog: city by its IBGE code and neighborhood by its catalog identifier. Neighborhoods are closed against the catalog — that is what lets a property into recommendations."
    },
    {
      "name": "Imóveis",
      "description": "A carteira da conta: ler, sincronizar pelo código do seu sistema, mudar status, confirmar disponibilidade, enviar fotos por endereço e mandar para a lixeira.",
      "x-description-en": "The account's portfolio: read, sync by your system's code, change status, confirm availability, send photos by URL and move to the trash."
    },
    {
      "name": "Clientes",
      "description": "Os clientes da conta, com o perfil de busca que liga as recomendações: ler, sincronizar pelo código do seu sistema, mover no funil, arquivar e registrar atendimentos.",
      "x-description-en": "The account's clients, with the search profile that drives recommendations: read, sync by your system's code, move through the funnel, archive and log interactions."
    },
    {
      "name": "Oportunidades (Radar)",
      "description": "As oportunidades que o Radar encontra entre imóveis e clientes — da própria carteira e de parceiros —, com a mesma regra de exibição do painel.",
      "x-description-en": "The opportunities Radar finds between properties and clients — in the account itself and with partners — under the same display rules as the dashboard."
    },
    {
      "name": "Parcerias",
      "description": "As parcerias da equipe, com a etapa e as duas pontas. Só o lado que captou o cliente move o funil.",
      "x-description-en": "The team's partnerships, with the stage and both sides. Only the side that brought the client moves the funnel."
    },
    {
      "name": "Equipe",
      "description": "Quem está na equipe: nome, e-mail, papel e CRECI. É pelo e-mail que o seu sistema reconhece o corretor.",
      "x-description-en": "Who is on the team: name, e-mail, role and broker license. Your system matches the broker by e-mail."
    },
    {
      "name": "Lançamentos",
      "description": "O catálogo de lançamentos da cidade: empreendimento, tipologias, tabela e estágio da obra.",
      "x-description-en": "The city's new-development catalog: development, unit types, price list and construction stage."
    },
    {
      "name": "Captação",
      "description": "Os proprietários que chegam à vez da conta e o aceite, que debita o crédito e libera o contato. Aceitar exige uma permissão própria e o termo específico aceito no painel.",
      "x-description-en": "Property owners offered to the account and the acceptance, which debits credit and reveals the contact. Accepting requires its own permission and the specific term accepted in the dashboard."
    },
    {
      "name": "Eventos",
      "description": "O que mudou na conta, em ordem, com 30 dias de memória — a sincronização incremental. O evento é enxuto: ids e os nomes dos campos que mudaram; o detalhe vem da leitura do recurso.",
      "x-description-en": "What changed in the account, in order, with 30 days of history — incremental sync. Events are lean: ids and the names of the changed fields; the detail comes from reading the resource."
    },
    {
      "name": "Webhooks",
      "description": "Os endereços que recebem os eventos na hora, assinados no padrão Standard Webhooks, com nova tentativa, desligamento automático, reenvio e evento de teste.",
      "x-description-en": "The endpoints that receive events right away, signed with the Standard Webhooks spec, with retries, automatic disabling, redelivery and a test event."
    },
    {
      "name": "Lotes",
      "description": "Até 500 imóveis ou clientes numa chamada, processados no ritmo da plataforma, com o desfecho de cada item.",
      "x-description-en": "Up to 500 properties or clients in one call, processed at the platform pace, with the outcome of each item."
    }
  ],
  "paths": {
    "/me": {
      "get": {
        "operationId": "getMe",
        "tags": [
          "Conta"
        ],
        "summary": "Quem sou eu",
        "description": "A primeira chamada de toda integração: confirma que a chave vale e mostra a conta, as permissões desta chave, os limites e o uso do mês.",
        "x-summary-en": "Who am I",
        "x-description-en": "The first call of every integration: confirms the key works and shows the account, this key's permissions, the limits and monthly usage.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Quem sou eu",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Me",
                      "description": "Conta.",
                      "x-description-en": "Account."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "account": {
                      "id": "5c1e2f3a-8b7d-4e21-9f6a-0d2c4b8e7a11",
                      "name": "Sua Imobiliária",
                      "type": "IMOBILIARIA",
                      "plan": "IMOB_20"
                    },
                    "access": {
                      "status": "APPROVED",
                      "tier": "PADRAO",
                      "pilotUntil": null,
                      "limits": {
                        "ratePerSecond": 10,
                        "burst": 20,
                        "monthlyQuota": 300000,
                        "maxKeys": 4,
                        "maxWebhooks": 3
                      }
                    },
                    "key": {
                      "id": "k_3c9f1a2b",
                      "name": "CRM produção",
                      "scopes": [
                        "properties:read",
                        "properties:write",
                        "leads:read",
                        "leads:write",
                        "events:read"
                      ],
                      "expiresAt": null
                    },
                    "usage": {
                      "month": "2026-10",
                      "calls": 1840,
                      "monthlyQuota": 300000,
                      "remaining": 298160
                    },
                    "properties": {
                      "active": 1840,
                      "limit": 2000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/property-types": {
      "get": {
        "operationId": "getPropertyTypes",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Tipos de imóvel",
        "description": "As categorias e os subtipos. É o subtipo que vai no campo `type`.",
        "x-summary-en": "Property types",
        "x-description-en": "Categories and subtypes. The subtype is what goes in the `type` field.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tipos de imóvel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/PropertyTypeGroup",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "category": "RESIDENCIAL",
                      "label": "Residencial",
                      "types": [
                        {
                          "value": "APARTAMENTO",
                          "label": "Apartamento"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/purposes": {
      "get": {
        "operationId": "getPurposes",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Finalidades",
        "description": "Venda e locação.",
        "x-summary-en": "Purposes",
        "x-description-en": "Sale and rent.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Finalidades",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/ValueLabel",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "value": "VENDA",
                      "label": "Venda"
                    },
                    {
                      "value": "LOCACAO",
                      "label": "Locação"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/property-statuses": {
      "get": {
        "operationId": "getPropertyStatuses",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Status do imóvel",
        "description": "Os status que o imóvel pode ter.",
        "x-summary-en": "Property statuses",
        "x-description-en": "The statuses a property can have.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Status do imóvel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/ValueLabel",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "value": "ACTIVE",
                      "label": "Disponível"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/lead-statuses": {
      "get": {
        "operationId": "getLeadStatuses",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Etapas do cliente",
        "description": "As etapas do atendimento.",
        "x-summary-en": "Client stages",
        "x-description-en": "The funnel stages.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Etapas do cliente",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/ValueLabel",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "value": "NEW",
                      "label": "Novo"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/partnership-statuses": {
      "get": {
        "operationId": "getPartnershipStatuses",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Etapas da parceria",
        "description": "As etapas da parceria.",
        "x-summary-en": "Partnership stages",
        "x-description-en": "The partnership stages.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Etapas da parceria",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/ValueLabel",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "value": "NEGOTIATING",
                      "label": "Em negociação"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/construction-stages": {
      "get": {
        "operationId": "getConstructionStages",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Estágios da obra",
        "description": "Os estágios de um lançamento.",
        "x-summary-en": "Construction stages",
        "x-description-en": "The stages of a new development.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Estágios da obra",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/ValueLabel",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "value": "OFF_PLAN",
                      "label": "Na planta / Em obra"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/scopes": {
      "get": {
        "operationId": "getScopes",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Permissões",
        "description": "As permissões que uma chave pode ter.",
        "x-summary-en": "Permissions",
        "x-description-en": "The permissions a key can have.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Permissões",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/ScopeInfo",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "properties:read",
                      "group": "Imóveis",
                      "label": "Ler imóveis",
                      "description": "Carteira, situação no Radar, na curadoria e na confirmação."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reference/event-types": {
      "get": {
        "operationId": "getEventTypes",
        "tags": [
          "Listas de valores"
        ],
        "summary": "Tipos de evento",
        "description": "Os eventos, com a permissão de leitura que dá acesso a cada um.",
        "x-summary-en": "Event types",
        "x-description-en": "The events, with the read permission that grants access to each.",
        "x-scope": null,
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tipos de evento",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A lista.",
                      "x-description-en": "The list.",
                      "items": {
                        "$ref": "#/components/schemas/EventTypeInfo",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "type": "property.updated",
                      "scope": "properties:read",
                      "description": "Imóvel alterado (campos em changedFields)"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/geo/cities": {
      "get": {
        "operationId": "listCities",
        "tags": [
          "Cidades e bairros"
        ],
        "summary": "Cidades",
        "description": "As cidades do catálogo, com o código do IBGE.",
        "x-summary-en": "Cities",
        "x-description-en": "Catalog cities, with their IBGE code.",
        "x-scope": null,
        "x-error-codes": [
          "invalid_param",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "uf",
            "in": "query",
            "required": false,
            "description": "Só as de um estado (2 letras).",
            "schema": {
              "type": "string",
              "description": "Só as de um estado (2 letras).",
              "x-description-en": "Only one state (2 letters)."
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Parte do nome (sem acento conta igual).",
            "schema": {
              "type": "string",
              "description": "Parte do nome (sem acento conta igual).",
              "x-description-en": "Part of the name (accents ignored)."
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 1000 (padrão 100).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 1000 (padrão 100).",
              "x-description-en": "Items per page: 1 to 1000 (default 100).",
              "minimum": 1,
              "maximum": 1000,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cidades",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "As cidades.",
                      "x-description-en": "The cities.",
                      "items": {
                        "$ref": "#/components/schemas/City",
                        "description": "Cidade.",
                        "x-description-en": "City."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Próxima página.",
                      "x-description-en": "Next page."
                    },
                    "total": {
                      "type": "integer",
                      "description": "Total no filtro.",
                      "x-description-en": "Total in the filter."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor",
                    "total"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "cityId": "4106902",
                      "name": "Curitiba",
                      "uf": "PR",
                      "citySlug": "curitiba"
                    }
                  ],
                  "nextCursor": null,
                  "total": 1
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/geo/cities/{cityId}/neighborhoods": {
      "get": {
        "operationId": "listNeighborhoods",
        "tags": [
          "Cidades e bairros"
        ],
        "summary": "Bairros de uma cidade",
        "description": "Os bairros do catálogo. O `neighborhoodSlug` daqui é o que garante que o imóvel entra nas recomendações.",
        "x-summary-en": "A city's neighborhoods",
        "x-description-en": "Catalog neighborhoods. The `neighborhoodSlug` from here is what guarantees the property enters recommendations.",
        "x-scope": null,
        "x-error-codes": [
          "invalid_param",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "cityId",
            "in": "path",
            "required": true,
            "description": "Código do IBGE (7 dígitos).",
            "schema": {
              "type": "string",
              "description": "Código do IBGE (7 dígitos).",
              "x-description-en": "IBGE code (7 digits)."
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 1000 (padrão 100).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 1000 (padrão 100).",
              "x-description-en": "Items per page: 1 to 1000 (default 100).",
              "minimum": 1,
              "maximum": 1000,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Bairros de uma cidade",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os bairros.",
                      "x-description-en": "The neighborhoods.",
                      "items": {
                        "$ref": "#/components/schemas/Neighborhood",
                        "description": "Bairro.",
                        "x-description-en": "Neighborhood."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Próxima página.",
                      "x-description-en": "Next page."
                    },
                    "total": {
                      "type": "integer",
                      "description": "Total.",
                      "x-description-en": "Total."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor",
                    "total"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "neighborhoodSlug": "bigorrilho",
                      "name": "Bigorrilho"
                    }
                  ],
                  "nextCursor": "2s",
                  "total": 75
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/properties": {
      "get": {
        "operationId": "listProperties",
        "tags": [
          "Imóveis"
        ],
        "summary": "Listar a carteira",
        "description": "A carteira da conta, mais recentes antes, com filtros. Para sincronizar, use `updatedSince` — ou os eventos.",
        "x-summary-en": "List the portfolio",
        "x-description-en": "The account's portfolio, newest first, with filters. To sync, use `updatedSince` — or the events.",
        "x-scope": "properties:read",
        "x-error-codes": [
          "invalid_param",
          "invalid_cursor",
          "upstream_timeout",
          "upstream_busy",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 100 (padrão 50).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 100 (padrão 50).",
              "x-description-en": "Items per page: 1 to 100 (default 50).",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Status (`DELETED` = lixeira).",
            "schema": {
              "type": "string",
              "description": "Status (`DELETED` = lixeira).",
              "x-description-en": "Status (`DELETED` = trash).",
              "enum": [
                "ACTIVE",
                "INACTIVE",
                "SOLD",
                "RENTED",
                "DELETED"
              ]
            }
          },
          {
            "name": "purpose",
            "in": "query",
            "required": false,
            "description": "Finalidade.",
            "schema": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose.",
              "enum": [
                "VENDA",
                "LOCACAO"
              ]
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Subtipo.",
            "schema": {
              "type": "string",
              "description": "Subtipo.",
              "x-description-en": "Subtype.",
              "enum": [
                "APARTAMENTO",
                "CASA_RUA",
                "CASA_CONDOMINIO",
                "CASA_VILA",
                "STUDIO",
                "FLAT",
                "COBERTURA",
                "SALA_COMERCIAL",
                "LOJA_PONTO",
                "GALPAO",
                "PREDIO",
                "TERRENO_RUA",
                "TERRENO_CONDOMINIO",
                "CHACARA_SITIO",
                "FAZENDA"
              ]
            }
          },
          {
            "name": "citySlug",
            "in": "query",
            "required": false,
            "description": "Identificador da cidade no catálogo.",
            "schema": {
              "type": "string",
              "description": "Identificador da cidade no catálogo.",
              "x-description-en": "City identifier in the catalog."
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "required": false,
            "description": "Só o que mudou desde esta data/hora (ISO 8601, UTC).",
            "schema": {
              "type": "string",
              "description": "Só o que mudou desde esta data/hora (ISO 8601, UTC).",
              "x-description-en": "Only what changed since this date/time (ISO 8601, UTC).",
              "format": "date-time"
            }
          },
          {
            "name": "radar",
            "in": "query",
            "required": false,
            "description": "`pending` = só quem tem pendência para as recomendações; `ready` = só quem está pronto.",
            "schema": {
              "type": "string",
              "description": "`pending` = só quem tem pendência para as recomendações; `ready` = só quem está pronto.",
              "x-description-en": "`pending` = only items with recommendation pending items; `ready` = only ready items.",
              "enum": [
                "pending",
                "ready"
              ]
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Listar a carteira",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os imóveis.",
                      "x-description-en": "The properties.",
                      "items": {
                        "$ref": "#/components/schemas/Property",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "prop-3f9a1c2b7d4e",
                      "externalRef": "AP1234",
                      "kind": "PROPERTY",
                      "developmentId": null,
                      "status": "ACTIVE",
                      "type": "APARTAMENTO",
                      "category": "RESIDENCIAL",
                      "purposes": [
                        "VENDA"
                      ],
                      "salePrice": 890000,
                      "rentPrice": null,
                      "title": "Apartamento 3 quartos no Bigorrilho",
                      "description": "Sol da manhã, duas vagas e lazer completo.",
                      "address": {
                        "neighborhood": "Bigorrilho",
                        "neighborhoodSlug": "bigorrilho",
                        "city": "Curitiba",
                        "cityId": "4106902",
                        "citySlug": "curitiba",
                        "state": "PR",
                        "street": "Rua Padre Anchieta",
                        "number": "1500",
                        "complement": "Ap 82"
                      },
                      "bedrooms": 3,
                      "suites": 1,
                      "bathrooms": 2,
                      "parkingSpots": 2,
                      "area": 98,
                      "privateArea": 92,
                      "amenities": [
                        "Piscina",
                        "Academia"
                      ],
                      "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                      "photos": [
                        "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                      ],
                      "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                      "captador": {
                        "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                        "name": "Marina Souza"
                      },
                      "captadorName": null,
                      "sharedToNetwork": true,
                      "partnershipTerms": {
                        "commissionPercent": 6,
                        "rentCommissionMonths": null,
                        "splitListingPercent": 50
                      },
                      "radar": {
                        "eligible": true,
                        "pending": [],
                        "labels": []
                      },
                      "curation": {
                        "status": "APPROVED",
                        "reason": null,
                        "label": null
                      },
                      "confirmation": {
                        "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                        "dueAt": "2026-12-01T16:45:12.000Z",
                        "noticeAt": null,
                        "offlineAt": null
                      },
                      "inactiveReason": null,
                      "deletedAt": null,
                      "launch": null,
                      "photoSync": {
                        "state": "DONE",
                        "requested": 1,
                        "ingested": 1,
                        "failed": 0,
                        "queuedAt": "2026-10-02T16:45:12.000Z",
                        "finishedAt": "2026-10-02T16:45:12.000Z"
                      },
                      "createdAt": "2026-10-01T13:20:00.000Z",
                      "updatedAt": "2026-10-02T16:45:12.000Z"
                    }
                  ],
                  "nextCursor": "eyJhIjoiNWMxZS4uLiJ9"
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_cursor` — Cursor inválido — recomece a listagem sem ele\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_cursor": {
                    "summary": "Cursor inválido — recomece a listagem sem ele",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-cursor",
                      "title": "Cursor inválido — recomece a listagem sem ele",
                      "status": 400,
                      "code": "invalid_cursor",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_busy` — Muitas requisições ao mesmo tempo — tente de novo em instantes\n`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_busy": {
                    "summary": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-busy",
                      "title": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                      "status": 503,
                      "code": "upstream_busy",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "`upstream_timeout` — A consulta demorou demais — tente uma página menor",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_timeout": {
                    "summary": "A consulta demorou demais — tente uma página menor",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-timeout",
                      "title": "A consulta demorou demais — tente uma página menor",
                      "status": 504,
                      "code": "upstream_timeout",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createProperty",
        "tags": [
          "Imóveis"
        ],
        "summary": "Cadastrar um imóvel",
        "description": "Cria um imóvel. O mínimo: `type`, `purposes`, o preço de cada finalidade e o endereço com a cidade. Código que já existe → 409 com o id.",
        "x-summary-en": "Create a property",
        "x-description-en": "Creates a property. Minimum: `type`, `purposes`, the price for each purpose and the address with the city. An existing code → 409 with the id.",
        "x-scope": "properties:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "feed_sync_active",
          "plan_limit_reached",
          "external_ref_exists",
          "invalid_property",
          "concurrent_write",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Cadastrar um imóvel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/PropertyWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "ACTIVE",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": null,
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "CREATED",
                    "dryRun": false,
                    "conflicts": [],
                    "photos": "QUEUED"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`feed_sync_active` — A sincronização automática do CRM está ligada nesta conta\n`plan_limit_reached` — Limite de imóveis ativos do plano atingido\n`external_ref_exists` — Já existe um imóvel com este código\n`concurrent_write` — Outra gravação deste código está em andamento — tente de novo",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "feed_sync_active": {
                    "summary": "A sincronização automática do CRM está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/feed-sync-active",
                      "title": "A sincronização automática do CRM está ligada nesta conta",
                      "status": 409,
                      "code": "feed_sync_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "plan_limit_reached": {
                    "summary": "Limite de imóveis ativos do plano atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-limit-reached",
                      "title": "Limite de imóveis ativos do plano atingido",
                      "status": 409,
                      "code": "plan_limit_reached",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "external_ref_exists": {
                    "summary": "Já existe um imóvel com este código",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/external-ref-exists",
                      "title": "Já existe um imóvel com este código",
                      "status": 409,
                      "code": "external_ref_exists",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "concurrent_write": {
                    "summary": "Outra gravação deste código está em andamento — tente de novo",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/concurrent-write",
                      "title": "Outra gravação deste código está em andamento — tente de novo",
                      "status": 409,
                      "code": "concurrent_write",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido\n`invalid_property` — Imóvel incompleto ou incoerente",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_property": {
                    "summary": "Imóvel incompleto ou incoerente",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-property",
                      "title": "Imóvel incompleto ou incoerente",
                      "status": 422,
                      "code": "invalid_property",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PropertyInput",
                "description": "O imóvel.",
                "x-description-en": "The property."
              },
              "example": {
                "externalRef": "AP1234",
                "title": "Apartamento 3 quartos no Bigorrilho",
                "type": "APARTAMENTO",
                "purposes": [
                  "VENDA"
                ],
                "salePrice": 890000,
                "address": {
                  "cityId": "4106902",
                  "neighborhoodSlug": "bigorrilho",
                  "street": "Rua Padre Anchieta",
                  "number": "1500",
                  "complement": "Ap 82"
                },
                "bedrooms": 3,
                "suites": 1,
                "bathrooms": 2,
                "parkingSpots": 2,
                "area": 98,
                "photos": [
                  "https://www.suaimobiliaria.com.br/fotos/AP1234/1.jpg",
                  "https://www.suaimobiliaria.com.br/fotos/AP1234/2.jpg"
                ]
              }
            }
          }
        }
      }
    },
    "/properties/by-ref/{ref}": {
      "get": {
        "operationId": "getPropertyByRef",
        "tags": [
          "Imóveis"
        ],
        "summary": "Um imóvel pelo seu código",
        "description": "O imóvel pelo código do seu sistema (`externalRef`).",
        "x-summary-en": "One property by your code",
        "x-description-en": "The property by your system's code (`externalRef`).",
        "x-scope": "properties:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "ref",
            "in": "path",
            "required": true,
            "description": "O código do imóvel no seu sistema (até 80 caracteres; codifique espaço e `/`).",
            "schema": {
              "type": "string",
              "description": "O código do imóvel no seu sistema (até 80 caracteres; codifique espaço e `/`).",
              "x-description-en": "The property's code in your system (up to 80 characters; encode spaces and `/`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Um imóvel pelo seu código",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O imóvel.",
                      "x-description-en": "The property."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "ACTIVE",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": null,
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "putPropertyByRef",
        "tags": [
          "Imóveis"
        ],
        "summary": "Criar ou atualizar pelo seu código",
        "description": "O caminho natural de sincronização: cria o imóvel se o código for novo (201) ou atualiza o que existe (200). Campo ausente não apaga; nada mudou = `UNCHANGED`, sem escrita. A edição feita na tela vence e volta em `result.conflicts`.",
        "x-summary-en": "Create or update by your code",
        "x-description-en": "The natural sync path: creates the property when the code is new (201) or updates the existing one (200). Absent fields are kept; nothing changed = `UNCHANGED`, nothing written. Edits made in the dashboard win and come back in `result.conflicts`.",
        "x-scope": "properties:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "feed_sync_active",
          "plan_limit_reached",
          "property_in_trash",
          "invalid_property",
          "concurrent_write",
          "upstream_timeout",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "ref",
            "in": "path",
            "required": true,
            "description": "O código do imóvel no seu sistema (até 80 caracteres; codifique espaço e `/`).",
            "schema": {
              "type": "string",
              "description": "O código do imóvel no seu sistema (até 80 caracteres; codifique espaço e `/`).",
              "x-description-en": "The property's code in your system (up to 80 characters; encode spaces and `/`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Criar ou atualizar pelo seu código",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/PropertyWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "ACTIVE",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": null,
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "UPDATED",
                    "dryRun": false,
                    "conflicts": [],
                    "photos": "QUEUED"
                  }
                }
              }
            }
          },
          "201": {
            "description": "201 quando cria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/PropertyWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "ACTIVE",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": null,
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "UPDATED",
                    "dryRun": false,
                    "conflicts": [],
                    "photos": "QUEUED"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`feed_sync_active` — A sincronização automática do CRM está ligada nesta conta\n`plan_limit_reached` — Limite de imóveis ativos do plano atingido\n`property_in_trash` — Imóvel na lixeira\n`concurrent_write` — Outra gravação deste código está em andamento — tente de novo",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "feed_sync_active": {
                    "summary": "A sincronização automática do CRM está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/feed-sync-active",
                      "title": "A sincronização automática do CRM está ligada nesta conta",
                      "status": 409,
                      "code": "feed_sync_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "plan_limit_reached": {
                    "summary": "Limite de imóveis ativos do plano atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-limit-reached",
                      "title": "Limite de imóveis ativos do plano atingido",
                      "status": 409,
                      "code": "plan_limit_reached",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "property_in_trash": {
                    "summary": "Imóvel na lixeira",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/property-in-trash",
                      "title": "Imóvel na lixeira",
                      "status": 409,
                      "code": "property_in_trash",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "concurrent_write": {
                    "summary": "Outra gravação deste código está em andamento — tente de novo",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/concurrent-write",
                      "title": "Outra gravação deste código está em andamento — tente de novo",
                      "status": 409,
                      "code": "concurrent_write",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido\n`invalid_property` — Imóvel incompleto ou incoerente",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_property": {
                    "summary": "Imóvel incompleto ou incoerente",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-property",
                      "title": "Imóvel incompleto ou incoerente",
                      "status": 422,
                      "code": "invalid_property",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "`upstream_timeout` — A consulta demorou demais — tente uma página menor",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_timeout": {
                    "summary": "A consulta demorou demais — tente uma página menor",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-timeout",
                      "title": "A consulta demorou demais — tente uma página menor",
                      "status": 504,
                      "code": "upstream_timeout",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PropertyInput",
                "description": "O imóvel (sem `externalRef` — ele vai no caminho).",
                "x-description-en": "The property (without `externalRef` — it goes in the path)."
              },
              "example": {
                "title": "Apartamento 3 quartos no Bigorrilho",
                "type": "APARTAMENTO",
                "purposes": [
                  "VENDA"
                ],
                "salePrice": 890000,
                "address": {
                  "cityId": "4106902",
                  "neighborhoodSlug": "bigorrilho",
                  "street": "Rua Padre Anchieta",
                  "number": "1500",
                  "complement": "Ap 82"
                },
                "bedrooms": 3,
                "suites": 1,
                "bathrooms": 2,
                "parkingSpots": 2,
                "area": 98,
                "photos": [
                  "https://www.suaimobiliaria.com.br/fotos/AP1234/1.jpg",
                  "https://www.suaimobiliaria.com.br/fotos/AP1234/2.jpg"
                ]
              }
            }
          }
        }
      }
    },
    "/properties/{propertyId}": {
      "get": {
        "operationId": "getProperty",
        "tags": [
          "Imóveis"
        ],
        "summary": "Um imóvel",
        "description": "O imóvel, com a situação nas recomendações, na análise e na confirmação.",
        "x-summary-en": "One property",
        "x-description-en": "The property, with its recommendation, review and confirmation status.",
        "x-scope": "properties:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "propertyId",
            "in": "path",
            "required": true,
            "description": "Id do imóvel (`prop-…`).",
            "schema": {
              "type": "string",
              "description": "Id do imóvel (`prop-…`).",
              "x-description-en": "Property id (`prop-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Um imóvel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O imóvel.",
                      "x-description-en": "The property."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "ACTIVE",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": null,
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "patch": {
        "operationId": "patchProperty",
        "tags": [
          "Imóveis"
        ],
        "summary": "Alterar parte de um imóvel",
        "description": "Muda só o que vier. Para limpar um campo, mande `null`.",
        "x-summary-en": "Partially update a property",
        "x-description-en": "Changes only what is sent. To clear a field, send `null`.",
        "x-scope": "properties:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "feed_sync_active",
          "property_in_trash",
          "invalid_property",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "propertyId",
            "in": "path",
            "required": true,
            "description": "Id do imóvel (`prop-…`).",
            "schema": {
              "type": "string",
              "description": "Id do imóvel (`prop-…`).",
              "x-description-en": "Property id (`prop-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Alterar parte de um imóvel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/PropertyWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "ACTIVE",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": null,
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "UPDATED",
                    "dryRun": false,
                    "conflicts": [],
                    "photos": "QUEUED"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`feed_sync_active` — A sincronização automática do CRM está ligada nesta conta\n`property_in_trash` — Imóvel na lixeira",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "feed_sync_active": {
                    "summary": "A sincronização automática do CRM está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/feed-sync-active",
                      "title": "A sincronização automática do CRM está ligada nesta conta",
                      "status": 409,
                      "code": "feed_sync_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "property_in_trash": {
                    "summary": "Imóvel na lixeira",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/property-in-trash",
                      "title": "Imóvel na lixeira",
                      "status": 409,
                      "code": "property_in_trash",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido\n`invalid_property` — Imóvel incompleto ou incoerente",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_property": {
                    "summary": "Imóvel incompleto ou incoerente",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-property",
                      "title": "Imóvel incompleto ou incoerente",
                      "status": 422,
                      "code": "invalid_property",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PropertyInput",
                "description": "O que mudar.",
                "x-description-en": "What to change."
              },
              "example": {
                "salePrice": 870000
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteProperty",
        "tags": [
          "Imóveis"
        ],
        "summary": "Mandar para a lixeira",
        "description": "Lixeira de 30 dias (restaurável pela tela). Trava de encolhimento: no máximo 20% da carteira (e pelo menos 10) em 24 horas — um laço no seu sistema não esvazia a carteira. Com o feed do CRM ligado, quem tira imóvel do ar é o feed.",
        "x-summary-en": "Move to the trash",
        "x-description-en": "A 30-day trash (restorable in the dashboard). Shrink guard: at most 20% of the portfolio (and at least 10) in 24 hours — a loop in your system cannot empty the portfolio. With the CRM feed on, the feed is the one that takes properties offline.",
        "x-scope": "properties:write",
        "x-error-codes": [
          "invalid_param",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "shrink_guard",
          "feed_sync_active",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "propertyId",
            "in": "path",
            "required": true,
            "description": "Id do imóvel (`prop-…`).",
            "schema": {
              "type": "string",
              "description": "Id do imóvel (`prop-…`).",
              "x-description-en": "Property id (`prop-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mandar para a lixeira",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/PropertyWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "DELETED",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": "2026-10-02T16:45:12.000Z",
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "DELETED",
                    "dryRun": false,
                    "conflicts": [],
                    "photos": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`shrink_guard` — Trava de encolhimento: exclusões demais em 24 horas\n`feed_sync_active` — A sincronização automática do CRM está ligada nesta conta",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "shrink_guard": {
                    "summary": "Trava de encolhimento: exclusões demais em 24 horas",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/shrink-guard",
                      "title": "Trava de encolhimento: exclusões demais em 24 horas",
                      "status": 409,
                      "code": "shrink_guard",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "feed_sync_active": {
                    "summary": "A sincronização automática do CRM está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/feed-sync-active",
                      "title": "A sincronização automática do CRM está ligada nesta conta",
                      "status": 409,
                      "code": "feed_sync_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/properties/{propertyId}/matches": {
      "get": {
        "operationId": "listPropertyMatches",
        "tags": [
          "Oportunidades (Radar)"
        ],
        "summary": "Oportunidades de um imóvel",
        "description": "Os clientes que combinam com o imóvel. Só clientes da própria carteira — cliente de parceiro nunca aparece no seu imóvel.",
        "x-summary-en": "A property's opportunities",
        "x-description-en": "The clients that fit the property. Only the account's own clients — partner clients never show up on your property.",
        "x-scope": "radar:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "propertyId",
            "in": "path",
            "required": true,
            "description": "Id do imóvel (`prop-…`).",
            "schema": {
              "type": "string",
              "description": "Id do imóvel (`prop-…`).",
              "x-description-en": "Property id (`prop-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Oportunidades de um imóvel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "As oportunidades.",
                      "x-description-en": "The opportunities.",
                      "items": {
                        "$ref": "#/components/schemas/Match",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "m#prop-3f9a1c2b7d4e#lead-7c2e9a1b3d5f#L",
                      "scope": "INTERNAL",
                      "status": "NEW",
                      "score": 87,
                      "reasons": [
                        "Bairro preferido",
                        "Dentro do orçamento"
                      ],
                      "gaps": [],
                      "propertyId": "prop-3f9a1c2b7d4e",
                      "leadId": "lead-7c2e9a1b3d5f",
                      "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "ownerName": "Marina Souza",
                      "locked": false,
                      "lostRelevance": false,
                      "property": {
                        "title": "Apartamento 3 quartos no Bigorrilho",
                        "type": "APARTAMENTO",
                        "purpose": "VENDA",
                        "purposes": [
                          "VENDA"
                        ],
                        "price": 890000,
                        "priceFrom": false,
                        "rentPrice": null,
                        "city": "Curitiba",
                        "neighborhood": "Bigorrilho",
                        "bedrooms": 3,
                        "bathrooms": 2,
                        "parkingSpots": 2,
                        "area": 98,
                        "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                        "listingUrl": null,
                        "commissionPercent": 6,
                        "rentCommissionMonths": null,
                        "splitListingPercent": 50,
                        "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                        "deliveryDate": null,
                        "developmentId": null,
                        "developmentName": null
                      },
                      "client": {
                        "masked": false,
                        "status": "ATTENDING",
                        "preApproved": false,
                        "purposes": [
                          "VENDA"
                        ],
                        "propertyTypes": [
                          "APARTAMENTO"
                        ],
                        "regions": [
                          "Bigorrilho, Curitiba"
                        ],
                        "priceMin": 600000,
                        "priceMax": 950000,
                        "bedrooms": 3,
                        "parkingSpots": 2,
                        "areaMin": 80,
                        "name": "Carlos Pereira"
                      },
                      "counterpart": null,
                      "createdAt": "2026-10-02T16:45:12.000Z",
                      "updatedAt": "2026-10-02T16:45:12.000Z"
                    }
                  ],
                  "nextCursor": "eyJhIjoiNWMxZS4uLiJ9"
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/leads": {
      "get": {
        "operationId": "listLeads",
        "tags": [
          "Clientes"
        ],
        "summary": "Listar clientes",
        "description": "Os clientes da conta, mais recentes antes, com filtros.",
        "x-summary-en": "List clients",
        "x-description-en": "The account's clients, newest first, with filters.",
        "x-scope": "leads:read",
        "x-error-codes": [
          "invalid_param",
          "invalid_cursor",
          "upstream_timeout",
          "upstream_busy",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 100 (padrão 50).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 100 (padrão 50).",
              "x-description-en": "Items per page: 1 to 100 (default 50).",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "description": "`ACTIVE` (padrão), `ARCHIVED` ou `DELETED`.",
            "schema": {
              "type": "string",
              "description": "`ACTIVE` (padrão), `ARCHIVED` ou `DELETED`.",
              "x-description-en": "`ACTIVE` (default), `ARCHIVED` or `DELETED`.",
              "enum": [
                "ACTIVE",
                "ARCHIVED",
                "DELETED"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Etapa.",
            "schema": {
              "type": "string",
              "description": "Etapa.",
              "x-description-en": "Stage.",
              "enum": [
                "NEW",
                "ATTENDING",
                "PROPOSAL",
                "WON",
                "LOST"
              ]
            }
          },
          {
            "name": "ownerAccountId",
            "in": "query",
            "required": false,
            "description": "Só os de um corretor.",
            "schema": {
              "type": "string",
              "description": "Só os de um corretor.",
              "x-description-en": "Only one broker's items."
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "required": false,
            "description": "Só o que mudou desde esta data/hora (ISO 8601, UTC).",
            "schema": {
              "type": "string",
              "description": "Só o que mudou desde esta data/hora (ISO 8601, UTC).",
              "x-description-en": "Only what changed since this date/time (ISO 8601, UTC).",
              "format": "date-time"
            }
          },
          {
            "name": "radar",
            "in": "query",
            "required": false,
            "description": "`pending` = só quem tem pendência para as recomendações; `ready` = só quem está pronto.",
            "schema": {
              "type": "string",
              "description": "`pending` = só quem tem pendência para as recomendações; `ready` = só quem está pronto.",
              "x-description-en": "`pending` = only items with recommendation pending items; `ready` = only ready items.",
              "enum": [
                "pending",
                "ready"
              ]
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Listar clientes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os clientes.",
                      "x-description-en": "The clients.",
                      "items": {
                        "$ref": "#/components/schemas/Lead",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "lead-7c2e9a1b3d5f",
                      "externalRef": "CLI-889",
                      "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "state": "ACTIVE",
                      "status": "ATTENDING",
                      "name": "Carlos Pereira",
                      "phones": [
                        {
                          "number": "41999998888",
                          "isWhatsApp": true,
                          "label": null
                        }
                      ],
                      "email": "carlos@example.com",
                      "source": "CRM_API",
                      "sourceDetail": "Vista / Loft CRM",
                      "sourcePropertyId": null,
                      "preApproved": false,
                      "sharedToNetwork": true,
                      "notes": null,
                      "interest": {
                        "purposes": [
                          "VENDA"
                        ],
                        "propertyTypes": [
                          "APARTAMENTO"
                        ],
                        "locations": [
                          {
                            "cityId": "4106902",
                            "citySlug": "curitiba",
                            "cityName": "Curitiba",
                            "uf": "PR",
                            "neighborhoodSlug": "bigorrilho",
                            "neighborhoodName": "Bigorrilho",
                            "preference": "PREFERRED"
                          }
                        ],
                        "similarNeighborhoods": true,
                        "salePriceMin": 600000,
                        "salePriceMax": 950000,
                        "rentPriceMin": null,
                        "rentPriceMax": null,
                        "bedrooms": 3,
                        "bathrooms": null,
                        "parkingSpots": 2,
                        "areaMin": 80
                      },
                      "radar": {
                        "eligible": true,
                        "pending": [],
                        "labels": []
                      },
                      "lastActivityAt": "2026-10-02T16:45:12.000Z",
                      "archivedAt": null,
                      "archivedReason": null,
                      "deletedAt": null,
                      "createdAt": "2026-10-01T13:20:00.000Z",
                      "updatedAt": "2026-10-02T16:45:12.000Z"
                    }
                  ],
                  "nextCursor": "eyJhIjoiNWMxZS4uLiJ9"
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_cursor` — Cursor inválido — recomece a listagem sem ele\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_cursor": {
                    "summary": "Cursor inválido — recomece a listagem sem ele",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-cursor",
                      "title": "Cursor inválido — recomece a listagem sem ele",
                      "status": 400,
                      "code": "invalid_cursor",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_busy` — Muitas requisições ao mesmo tempo — tente de novo em instantes\n`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_busy": {
                    "summary": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-busy",
                      "title": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                      "status": 503,
                      "code": "upstream_busy",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "`upstream_timeout` — A consulta demorou demais — tente uma página menor",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_timeout": {
                    "summary": "A consulta demorou demais — tente uma página menor",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-timeout",
                      "title": "A consulta demorou demais — tente uma página menor",
                      "status": 504,
                      "code": "upstream_timeout",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createLead",
        "tags": [
          "Clientes"
        ],
        "summary": "Cadastrar um cliente",
        "description": "Cria um cliente. O mínimo: `name`, um telefone ou e-mail e `consentGiven: true`. Contato que já existe → 409 com o id. Sem responsável, vale a distribuição da imobiliária.",
        "x-summary-en": "Create a client",
        "x-description-en": "Creates a client. Minimum: `name`, a phone or e-mail and `consentGiven: true`. An existing contact → 409 with the id. Without an owner, the agency's distribution rule applies.",
        "x-scope": "leads:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "consent_required",
          "lead_exists",
          "external_ref_exists",
          "concurrent_write",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Cadastrar um cliente",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/LeadWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ACTIVE",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "CREATED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`lead_exists` — Já existe um cliente com este telefone ou e-mail\n`external_ref_exists` — Já existe um imóvel com este código\n`concurrent_write` — Outra gravação deste código está em andamento — tente de novo",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "lead_exists": {
                    "summary": "Já existe um cliente com este telefone ou e-mail",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/lead-exists",
                      "title": "Já existe um cliente com este telefone ou e-mail",
                      "status": 409,
                      "code": "lead_exists",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "external_ref_exists": {
                    "summary": "Já existe um imóvel com este código",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/external-ref-exists",
                      "title": "Já existe um imóvel com este código",
                      "status": 409,
                      "code": "external_ref_exists",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "concurrent_write": {
                    "summary": "Outra gravação deste código está em andamento — tente de novo",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/concurrent-write",
                      "title": "Outra gravação deste código está em andamento — tente de novo",
                      "status": 409,
                      "code": "concurrent_write",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido\n`consent_required` — Consentimento do cliente não declarado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "consent_required": {
                    "summary": "Consentimento do cliente não declarado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/consent-required",
                      "title": "Consentimento do cliente não declarado",
                      "status": 422,
                      "code": "consent_required",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeadInput",
                "description": "O cliente.",
                "x-description-en": "The client."
              },
              "example": {
                "externalRef": "CLI-889",
                "name": "Carlos Pereira",
                "phones": [
                  {
                    "number": "(41) 99999-8888",
                    "isWhatsApp": true
                  }
                ],
                "email": "carlos@example.com",
                "status": "ATTENDING",
                "ownerEmail": "marina@suaimobiliaria.com.br",
                "interest": {
                  "purposes": [
                    "VENDA"
                  ],
                  "propertyTypes": [
                    "APARTAMENTO"
                  ],
                  "locations": [
                    {
                      "cityId": "4106902",
                      "neighborhoodSlug": "bigorrilho"
                    }
                  ],
                  "salePriceMax": 950000,
                  "bedrooms": 3
                },
                "lastActivityAt": "2026-10-02T15:00:00Z",
                "consentGiven": true
              }
            }
          }
        }
      }
    },
    "/leads/{leadId}": {
      "get": {
        "operationId": "getLead",
        "tags": [
          "Clientes"
        ],
        "summary": "Um cliente",
        "description": "O cliente, com o perfil de busca e a situação nas recomendações.",
        "x-summary-en": "One client",
        "x-description-en": "The client, with the search profile and recommendation status.",
        "x-scope": "leads:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "leadId",
            "in": "path",
            "required": true,
            "description": "Id do cliente (`lead-…`).",
            "schema": {
              "type": "string",
              "description": "Id do cliente (`lead-…`).",
              "x-description-en": "Client id (`lead-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Um cliente",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O cliente.",
                      "x-description-en": "The client."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ACTIVE",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "patch": {
        "operationId": "patchLead",
        "tags": [
          "Clientes"
        ],
        "summary": "Alterar parte de um cliente",
        "description": "Muda só o que vier. Mudar a etapa entra no histórico, mas não conta como movimentação — para isso mande `lastActivityAt` ou registre um atendimento.",
        "x-summary-en": "Partially update a client",
        "x-description-en": "Changes only what is sent. Changing the stage is logged but does not count as activity — for that send `lastActivityAt` or log an interaction.",
        "x-scope": "leads:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "lead_in_trash",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "leadId",
            "in": "path",
            "required": true,
            "description": "Id do cliente (`lead-…`).",
            "schema": {
              "type": "string",
              "description": "Id do cliente (`lead-…`).",
              "x-description-en": "Client id (`lead-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Alterar parte de um cliente",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/LeadWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ACTIVE",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "UPDATED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`lead_in_trash` — Cliente na lixeira",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "lead_in_trash": {
                    "summary": "Cliente na lixeira",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/lead-in-trash",
                      "title": "Cliente na lixeira",
                      "status": 409,
                      "code": "lead_in_trash",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeadInput",
                "description": "O que mudar.",
                "x-description-en": "What to change."
              },
              "example": {
                "status": "PROPOSAL",
                "lastActivityAt": "2026-10-02T15:00:00Z"
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteLead",
        "tags": [
          "Clientes"
        ],
        "summary": "Mandar para a lixeira",
        "description": "Lixeira de 30 dias; cancela as parcerias abertas do cliente, como a tela. A mesma trava de encolhimento dos imóveis.",
        "x-summary-en": "Move to the trash",
        "x-description-en": "A 30-day trash; cancels the client's open partnerships, as the dashboard does. The same shrink guard as properties.",
        "x-scope": "leads:write",
        "x-error-codes": [
          "invalid_param",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "shrink_guard",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "leadId",
            "in": "path",
            "required": true,
            "description": "Id do cliente (`lead-…`).",
            "schema": {
              "type": "string",
              "description": "Id do cliente (`lead-…`).",
              "x-description-en": "Client id (`lead-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mandar para a lixeira",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/LeadWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "DELETED",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": "2026-10-02T16:45:12.000Z",
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "DELETED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`shrink_guard` — Trava de encolhimento: exclusões demais em 24 horas",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "shrink_guard": {
                    "summary": "Trava de encolhimento: exclusões demais em 24 horas",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/shrink-guard",
                      "title": "Trava de encolhimento: exclusões demais em 24 horas",
                      "status": 409,
                      "code": "shrink_guard",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/leads/by-ref/{ref}": {
      "get": {
        "operationId": "getLeadByRef",
        "tags": [
          "Clientes"
        ],
        "summary": "Um cliente pelo seu código",
        "description": "O cliente pelo código do seu sistema.",
        "x-summary-en": "One client by your code",
        "x-description-en": "The client by your system's code.",
        "x-scope": "leads:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "ref",
            "in": "path",
            "required": true,
            "description": "O código do cliente no seu sistema (até 80 caracteres).",
            "schema": {
              "type": "string",
              "description": "O código do cliente no seu sistema (até 80 caracteres).",
              "x-description-en": "The client's code in your system (up to 80 characters)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Um cliente pelo seu código",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O cliente.",
                      "x-description-en": "The client."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ACTIVE",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "putLeadByRef",
        "tags": [
          "Clientes"
        ],
        "summary": "Criar, atualizar ou vincular pelo seu código",
        "description": "Cria o cliente (201), atualiza (200) — ou VINCULA: o código é novo, mas a pessoa já está aqui pelo telefone ou e-mail (veio de um portal, da planilha); o código passa a apontar para ela (`LINKED`), sem um segundo cliente. Na criação, `consentGiven: true` é obrigatório.",
        "x-summary-en": "Create, update or link by your code",
        "x-description-en": "Creates the client (201), updates it (200) — or LINKS it: the code is new but the person is already here by phone or e-mail (from a portal, a spreadsheet); the code now points to them (`LINKED`), without a second client. On creation, `consentGiven: true` is required.",
        "x-scope": "leads:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "consent_required",
          "lead_linked_to_other_ref",
          "lead_in_trash",
          "external_ref_exists",
          "concurrent_write",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "ref",
            "in": "path",
            "required": true,
            "description": "O código do cliente no seu sistema (até 80 caracteres).",
            "schema": {
              "type": "string",
              "description": "O código do cliente no seu sistema (até 80 caracteres).",
              "x-description-en": "The client's code in your system (up to 80 characters)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Criar, atualizar ou vincular pelo seu código",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/LeadWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ACTIVE",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "UPDATED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "201": {
            "description": "201 quando cria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/LeadWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ACTIVE",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "UPDATED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`lead_linked_to_other_ref` — O cliente com este contato já tem outro código do CRM\n`lead_in_trash` — Cliente na lixeira\n`external_ref_exists` — Já existe um imóvel com este código\n`concurrent_write` — Outra gravação deste código está em andamento — tente de novo",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "lead_linked_to_other_ref": {
                    "summary": "O cliente com este contato já tem outro código do CRM",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/lead-linked-to-other-ref",
                      "title": "O cliente com este contato já tem outro código do CRM",
                      "status": 409,
                      "code": "lead_linked_to_other_ref",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "lead_in_trash": {
                    "summary": "Cliente na lixeira",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/lead-in-trash",
                      "title": "Cliente na lixeira",
                      "status": 409,
                      "code": "lead_in_trash",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "external_ref_exists": {
                    "summary": "Já existe um imóvel com este código",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/external-ref-exists",
                      "title": "Já existe um imóvel com este código",
                      "status": 409,
                      "code": "external_ref_exists",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "concurrent_write": {
                    "summary": "Outra gravação deste código está em andamento — tente de novo",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/concurrent-write",
                      "title": "Outra gravação deste código está em andamento — tente de novo",
                      "status": 409,
                      "code": "concurrent_write",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido\n`consent_required` — Consentimento do cliente não declarado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "consent_required": {
                    "summary": "Consentimento do cliente não declarado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/consent-required",
                      "title": "Consentimento do cliente não declarado",
                      "status": 422,
                      "code": "consent_required",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeadInput",
                "description": "O cliente (sem `externalRef`).",
                "x-description-en": "The client (without `externalRef`)."
              },
              "example": {
                "name": "Carlos Pereira",
                "phones": [
                  {
                    "number": "(41) 99999-8888",
                    "isWhatsApp": true
                  }
                ],
                "email": "carlos@example.com",
                "status": "ATTENDING",
                "ownerEmail": "marina@suaimobiliaria.com.br",
                "interest": {
                  "purposes": [
                    "VENDA"
                  ],
                  "propertyTypes": [
                    "APARTAMENTO"
                  ],
                  "locations": [
                    {
                      "cityId": "4106902",
                      "neighborhoodSlug": "bigorrilho"
                    }
                  ],
                  "salePriceMax": 950000,
                  "bedrooms": 3
                },
                "lastActivityAt": "2026-10-02T15:00:00Z",
                "consentGiven": true
              }
            }
          }
        }
      }
    },
    "/leads/{leadId}/matches": {
      "get": {
        "operationId": "listLeadMatches",
        "tags": [
          "Oportunidades (Radar)"
        ],
        "summary": "Oportunidades de um cliente",
        "description": "Os imóveis que servem ao cliente — da carteira e de parceiros.",
        "x-summary-en": "A client's opportunities",
        "x-description-en": "The properties that fit the client — own and from partners.",
        "x-scope": "radar:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "leadId",
            "in": "path",
            "required": true,
            "description": "Id do cliente (`lead-…`).",
            "schema": {
              "type": "string",
              "description": "Id do cliente (`lead-…`).",
              "x-description-en": "Client id (`lead-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Oportunidades de um cliente",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "As oportunidades.",
                      "x-description-en": "The opportunities.",
                      "items": {
                        "$ref": "#/components/schemas/Match",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "m#prop-3f9a1c2b7d4e#lead-7c2e9a1b3d5f#L",
                      "scope": "INTERNAL",
                      "status": "NEW",
                      "score": 87,
                      "reasons": [
                        "Bairro preferido",
                        "Dentro do orçamento"
                      ],
                      "gaps": [],
                      "propertyId": "prop-3f9a1c2b7d4e",
                      "leadId": "lead-7c2e9a1b3d5f",
                      "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "ownerName": "Marina Souza",
                      "locked": false,
                      "lostRelevance": false,
                      "property": {
                        "title": "Apartamento 3 quartos no Bigorrilho",
                        "type": "APARTAMENTO",
                        "purpose": "VENDA",
                        "purposes": [
                          "VENDA"
                        ],
                        "price": 890000,
                        "priceFrom": false,
                        "rentPrice": null,
                        "city": "Curitiba",
                        "neighborhood": "Bigorrilho",
                        "bedrooms": 3,
                        "bathrooms": 2,
                        "parkingSpots": 2,
                        "area": 98,
                        "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                        "listingUrl": null,
                        "commissionPercent": 6,
                        "rentCommissionMonths": null,
                        "splitListingPercent": 50,
                        "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                        "deliveryDate": null,
                        "developmentId": null,
                        "developmentName": null
                      },
                      "client": {
                        "masked": false,
                        "status": "ATTENDING",
                        "preApproved": false,
                        "purposes": [
                          "VENDA"
                        ],
                        "propertyTypes": [
                          "APARTAMENTO"
                        ],
                        "regions": [
                          "Bigorrilho, Curitiba"
                        ],
                        "priceMin": 600000,
                        "priceMax": 950000,
                        "bedrooms": 3,
                        "parkingSpots": 2,
                        "areaMin": 80,
                        "name": "Carlos Pereira"
                      },
                      "counterpart": null,
                      "createdAt": "2026-10-02T16:45:12.000Z",
                      "updatedAt": "2026-10-02T16:45:12.000Z"
                    }
                  ],
                  "nextCursor": "eyJhIjoiNWMxZS4uLiJ9"
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/matches": {
      "get": {
        "operationId": "listMatches",
        "tags": [
          "Oportunidades (Radar)"
        ],
        "summary": "Oportunidades da conta",
        "description": "As oportunidades, mais recentes antes. As de parceiros seguem a regra de exibição do painel: sem assinatura ativa, o parceiro fica escondido (`locked`). O nome do cliente só sai com `leads:read` na chave.",
        "x-summary-en": "The account's opportunities",
        "x-description-en": "The opportunities, newest first. Partner ones follow the dashboard display rule: without an active subscription the partner stays hidden (`locked`). The client's name only comes with `leads:read` on the key.",
        "x-scope": "radar:read",
        "x-error-codes": [
          "invalid_param",
          "invalid_cursor",
          "upstream_timeout",
          "upstream_busy",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 100 (padrão 50).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 100 (padrão 50).",
              "x-description-en": "Items per page: 1 to 100 (default 50).",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Situação.",
            "schema": {
              "type": "string",
              "description": "Situação.",
              "x-description-en": "Status.",
              "enum": [
                "NEW",
                "FAVORITED",
                "ARCHIVED",
                "REQUESTED"
              ]
            }
          },
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "description": "Origem.",
            "schema": {
              "type": "string",
              "description": "Origem.",
              "x-description-en": "Origin.",
              "enum": [
                "INTERNAL",
                "NETWORK",
                "LAUNCH"
              ]
            }
          },
          {
            "name": "ownerAccountId",
            "in": "query",
            "required": false,
            "description": "Só os de um corretor.",
            "schema": {
              "type": "string",
              "description": "Só os de um corretor.",
              "x-description-en": "Only one broker's items."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Oportunidades da conta",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "As oportunidades.",
                      "x-description-en": "The opportunities.",
                      "items": {
                        "$ref": "#/components/schemas/Match",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "m#prop-3f9a1c2b7d4e#lead-7c2e9a1b3d5f#L",
                      "scope": "INTERNAL",
                      "status": "NEW",
                      "score": 87,
                      "reasons": [
                        "Bairro preferido",
                        "Dentro do orçamento"
                      ],
                      "gaps": [],
                      "propertyId": "prop-3f9a1c2b7d4e",
                      "leadId": "lead-7c2e9a1b3d5f",
                      "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "ownerName": "Marina Souza",
                      "locked": false,
                      "lostRelevance": false,
                      "property": {
                        "title": "Apartamento 3 quartos no Bigorrilho",
                        "type": "APARTAMENTO",
                        "purpose": "VENDA",
                        "purposes": [
                          "VENDA"
                        ],
                        "price": 890000,
                        "priceFrom": false,
                        "rentPrice": null,
                        "city": "Curitiba",
                        "neighborhood": "Bigorrilho",
                        "bedrooms": 3,
                        "bathrooms": 2,
                        "parkingSpots": 2,
                        "area": 98,
                        "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                        "listingUrl": null,
                        "commissionPercent": 6,
                        "rentCommissionMonths": null,
                        "splitListingPercent": 50,
                        "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                        "deliveryDate": null,
                        "developmentId": null,
                        "developmentName": null
                      },
                      "client": {
                        "masked": false,
                        "status": "ATTENDING",
                        "preApproved": false,
                        "purposes": [
                          "VENDA"
                        ],
                        "propertyTypes": [
                          "APARTAMENTO"
                        ],
                        "regions": [
                          "Bigorrilho, Curitiba"
                        ],
                        "priceMin": 600000,
                        "priceMax": 950000,
                        "bedrooms": 3,
                        "parkingSpots": 2,
                        "areaMin": 80,
                        "name": "Carlos Pereira"
                      },
                      "counterpart": null,
                      "createdAt": "2026-10-02T16:45:12.000Z",
                      "updatedAt": "2026-10-02T16:45:12.000Z"
                    }
                  ],
                  "nextCursor": "eyJhIjoiNWMxZS4uLiJ9"
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_cursor` — Cursor inválido — recomece a listagem sem ele\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_cursor": {
                    "summary": "Cursor inválido — recomece a listagem sem ele",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-cursor",
                      "title": "Cursor inválido — recomece a listagem sem ele",
                      "status": 400,
                      "code": "invalid_cursor",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_busy` — Muitas requisições ao mesmo tempo — tente de novo em instantes\n`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_busy": {
                    "summary": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-busy",
                      "title": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                      "status": 503,
                      "code": "upstream_busy",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "`upstream_timeout` — A consulta demorou demais — tente uma página menor",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_timeout": {
                    "summary": "A consulta demorou demais — tente uma página menor",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-timeout",
                      "title": "A consulta demorou demais — tente uma página menor",
                      "status": 504,
                      "code": "upstream_timeout",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/partnerships": {
      "get": {
        "operationId": "listPartnerships",
        "tags": [
          "Parcerias"
        ],
        "summary": "Parcerias da equipe",
        "description": "Todas as parcerias numa resposta. O `nextCursor` existe no contrato para quando ela paginar — siga-o desde já.",
        "x-summary-en": "The team's partnerships",
        "x-description-en": "All partnerships in one response. `nextCursor` exists in the contract for when it paginates — follow it from day one.",
        "x-scope": "partnerships:read",
        "x-error-codes": [
          "invalid_param",
          "upstream_timeout",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Etapa.",
            "schema": {
              "type": "string",
              "description": "Etapa.",
              "x-description-en": "Stage.",
              "enum": [
                "PENDING",
                "ACCEPTED",
                "DECLINED",
                "CANCELLED",
                "LEAD_REGISTERED",
                "CONTACTED",
                "NEGOTIATING",
                "PROPOSAL",
                "WON",
                "LOST"
              ]
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "required": false,
            "description": "Só o que mudou desde esta data/hora (ISO 8601, UTC).",
            "schema": {
              "type": "string",
              "description": "Só o que mudou desde esta data/hora (ISO 8601, UTC).",
              "x-description-en": "Only what changed since this date/time (ISO 8601, UTC).",
              "format": "date-time"
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Parcerias da equipe",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "As parcerias.",
                      "x-description-en": "The partnerships.",
                      "items": {
                        "$ref": "#/components/schemas/Partnership",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "pship-5b8d2f1e9a3c",
                      "status": "NEGOTIATING",
                      "kind": "PROPERTY_FOR_CLIENT",
                      "propertyId": "prop-9e8d7c6b5a4f",
                      "leadId": "lead-7c2e9a1b3d5f",
                      "matchId": "m#prop-9e8d7c6b5a4f#lead-7c2e9a1b3d5f#L",
                      "developmentId": null,
                      "developmentTitle": null,
                      "score": 82,
                      "summary": "Apartamento 3 quartos no Batel para Carlos Pereira",
                      "reasons": [
                        "Bairro aceitável"
                      ],
                      "message": "Tenho um cliente para este imóvel.",
                      "ourSide": "REQUESTER",
                      "ourBrokerId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "canMoveFunnel": true,
                      "requester": {
                        "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                        "name": "Marina Souza",
                        "type": "CORRETOR"
                      },
                      "addressee": {
                        "accountId": "c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f",
                        "name": "Rafael Lima",
                        "type": "CORRETOR"
                      },
                      "counterpart": {
                        "name": "Rafael Lima",
                        "type": "CORRETOR",
                        "organization": "Lima Imóveis",
                        "contactName": "Rafael Lima",
                        "phone": "41988887777",
                        "email": "rafael@example.com",
                        "creci": "F-12345/PR",
                        "creciVerified": true
                      },
                      "property": {
                        "title": "Apartamento 3 quartos no Bigorrilho",
                        "type": "APARTAMENTO",
                        "purpose": "VENDA",
                        "purposes": [
                          "VENDA"
                        ],
                        "price": 890000,
                        "priceFrom": false,
                        "rentPrice": null,
                        "city": "Curitiba",
                        "neighborhood": "Bigorrilho",
                        "bedrooms": 3,
                        "bathrooms": 2,
                        "parkingSpots": 2,
                        "area": 98,
                        "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                        "listingUrl": null,
                        "commissionPercent": 6,
                        "rentCommissionMonths": null,
                        "splitListingPercent": 50,
                        "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                        "deliveryDate": null,
                        "developmentId": null,
                        "developmentName": null
                      },
                      "client": {
                        "masked": false,
                        "status": "ATTENDING",
                        "preApproved": false,
                        "purposes": [
                          "VENDA"
                        ],
                        "propertyTypes": [
                          "APARTAMENTO"
                        ],
                        "regions": [
                          "Bigorrilho, Curitiba"
                        ],
                        "priceMin": 600000,
                        "priceMax": 950000,
                        "bedrooms": 3,
                        "parkingSpots": 2,
                        "areaMin": 80,
                        "name": "Carlos Pereira"
                      },
                      "lastProgressAt": "2026-10-02T16:45:12.000Z",
                      "protectedUntil": null,
                      "propertyOffMarketAt": null,
                      "createdAt": "2026-10-01T13:20:00.000Z",
                      "updatedAt": "2026-10-02T16:45:12.000Z"
                    }
                  ],
                  "nextCursor": null
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "`upstream_timeout` — A consulta demorou demais — tente uma página menor",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_timeout": {
                    "summary": "A consulta demorou demais — tente uma página menor",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-timeout",
                      "title": "A consulta demorou demais — tente uma página menor",
                      "status": 504,
                      "code": "upstream_timeout",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/partnerships/{partnershipId}": {
      "get": {
        "operationId": "getPartnership",
        "tags": [
          "Parcerias"
        ],
        "summary": "Uma parceria",
        "description": "A parceria, com as duas pontas e quem pode mover o funil.",
        "x-summary-en": "One partnership",
        "x-description-en": "The partnership, with both sides and who can move the funnel.",
        "x-scope": "partnerships:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "partnershipId",
            "in": "path",
            "required": true,
            "description": "Id da parceria (`pship-…`).",
            "schema": {
              "type": "string",
              "description": "Id da parceria (`pship-…`).",
              "x-description-en": "Partnership id (`pship-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Uma parceria",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Partnership",
                      "description": "A parceria.",
                      "x-description-en": "The partnership."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "pship-5b8d2f1e9a3c",
                    "status": "NEGOTIATING",
                    "kind": "PROPERTY_FOR_CLIENT",
                    "propertyId": "prop-9e8d7c6b5a4f",
                    "leadId": "lead-7c2e9a1b3d5f",
                    "matchId": "m#prop-9e8d7c6b5a4f#lead-7c2e9a1b3d5f#L",
                    "developmentId": null,
                    "developmentTitle": null,
                    "score": 82,
                    "summary": "Apartamento 3 quartos no Batel para Carlos Pereira",
                    "reasons": [
                      "Bairro aceitável"
                    ],
                    "message": "Tenho um cliente para este imóvel.",
                    "ourSide": "REQUESTER",
                    "ourBrokerId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "canMoveFunnel": true,
                    "requester": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza",
                      "type": "CORRETOR"
                    },
                    "addressee": {
                      "accountId": "c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f",
                      "name": "Rafael Lima",
                      "type": "CORRETOR"
                    },
                    "counterpart": {
                      "name": "Rafael Lima",
                      "type": "CORRETOR",
                      "organization": "Lima Imóveis",
                      "contactName": "Rafael Lima",
                      "phone": "41988887777",
                      "email": "rafael@example.com",
                      "creci": "F-12345/PR",
                      "creciVerified": true
                    },
                    "property": {
                      "title": "Apartamento 3 quartos no Bigorrilho",
                      "type": "APARTAMENTO",
                      "purpose": "VENDA",
                      "purposes": [
                        "VENDA"
                      ],
                      "price": 890000,
                      "priceFrom": false,
                      "rentPrice": null,
                      "city": "Curitiba",
                      "neighborhood": "Bigorrilho",
                      "bedrooms": 3,
                      "bathrooms": 2,
                      "parkingSpots": 2,
                      "area": 98,
                      "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                      "listingUrl": null,
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50,
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "deliveryDate": null,
                      "developmentId": null,
                      "developmentName": null
                    },
                    "client": {
                      "masked": false,
                      "status": "ATTENDING",
                      "preApproved": false,
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "regions": [
                        "Bigorrilho, Curitiba"
                      ],
                      "priceMin": 600000,
                      "priceMax": 950000,
                      "bedrooms": 3,
                      "parkingSpots": 2,
                      "areaMin": 80,
                      "name": "Carlos Pereira"
                    },
                    "lastProgressAt": "2026-10-02T16:45:12.000Z",
                    "protectedUntil": null,
                    "propertyOffMarketAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/team": {
      "get": {
        "operationId": "listTeam",
        "tags": [
          "Equipe"
        ],
        "summary": "A equipe",
        "description": "Quem está na equipe, inclusive suspensos.",
        "x-summary-en": "The team",
        "x-description-en": "Who is on the team, including suspended members.",
        "x-scope": "team:read",
        "x-error-codes": [
          "not_available",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A equipe",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "A equipe.",
                      "x-description-en": "The team.",
                      "items": {
                        "$ref": "#/components/schemas/Member",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza",
                      "email": "marina@suaimobiliaria.com.br",
                      "phone": "41977776666",
                      "photoUrl": null,
                      "creci": "F-54321/PR",
                      "creciVerified": true,
                      "status": "active",
                      "canCaptureProperties": true,
                      "isSupervisor": false,
                      "supervisorId": null,
                      "receivesLeadDistribution": true,
                      "firstAccessAt": "2026-10-01T13:20:00.000Z"
                    }
                  ],
                  "nextCursor": null
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`not_available` — Recurso indisponível para este tipo de conta\n`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_available": {
                    "summary": "Recurso indisponível para este tipo de conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-available",
                      "title": "Recurso indisponível para este tipo de conta",
                      "status": 403,
                      "code": "not_available",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/feed": {
      "get": {
        "operationId": "getFeed",
        "tags": [
          "Imóveis"
        ],
        "summary": "Estado da sincronização do feed",
        "description": "Como terminou a última sincronização do link do CRM e se há outra agendada — para conferir o resultado depois de um `POST /v1/feed/sync`. Nunca traz o link nem o token.",
        "x-summary-en": "Feed sync status",
        "x-description-en": "How the last CRM link sync ended and whether another is scheduled — to check the result after a `POST /v1/feed/sync`. Never includes the link or the token.",
        "x-scope": "properties:read",
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Estado da sincronização do feed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/FeedSync",
                      "description": "O estado.",
                      "x-description-en": "The status."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "configured": true,
                    "connector": "vista",
                    "autoSync": true,
                    "status": "OK",
                    "message": "412 imóveis conferidos.",
                    "lastSyncAt": "2026-10-01T13:20:00.000Z",
                    "feedCount": 412,
                    "counts": {
                      "created": 2,
                      "updated": 5,
                      "archived": 0,
                      "skipped": 1,
                      "unchanged": 404,
                      "confirmed": 0
                    },
                    "conflicts": 0,
                    "scheduledFor": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/feed/sync": {
      "post": {
        "operationId": "syncFeed",
        "tags": [
          "Imóveis"
        ],
        "summary": "Sincronizar o feed agora",
        "description": "Avise depois de mudar a carteira no CRM: a ImobyFlow busca o MESMO link do feed, pela mesma sincronização de 6 em 6 horas — só o que mudou é gravado. A primeira chamada de cada janela de 10 minutos sincroniza na hora; as seguintes deixam UMA sincronização agendada para o fim da janela, então nenhuma alteração espera as 6 horas e chamar a cada mudança não sobrecarrega nada. Acompanhe por `GET /v1/feed` ou pelos eventos dos imóveis.",
        "x-summary-en": "Sync the feed now",
        "x-description-en": "Call it after changing the portfolio in your CRM: ImobyFlow fetches the SAME feed link, through the same 6-hourly sync — only what changed is written. The first call in each 10-minute window syncs right away; later ones leave ONE sync scheduled for the end of the window, so no change waits 6 hours and calling on every change overloads nothing. Follow it with `GET /v1/feed` or the property events.",
        "x-scope": "properties:write",
        "x-error-codes": [
          "feed_not_configured",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 quando já havia uma agendada (`ALREADY_SCHEDULED`) e no ensaio.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/FeedSync",
                      "description": "O estado.",
                      "x-description-en": "The status."
                    },
                    "result": {
                      "$ref": "#/components/schemas/FeedSyncResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "configured": true,
                    "connector": "vista",
                    "autoSync": true,
                    "status": "QUEUED",
                    "message": "Sincronização em andamento…",
                    "lastSyncAt": "2026-10-01T13:20:00.000Z",
                    "feedCount": 412,
                    "counts": {
                      "created": 2,
                      "updated": 5,
                      "archived": 0,
                      "skipped": 1,
                      "unchanged": 404,
                      "confirmed": 0
                    },
                    "conflicts": 0,
                    "scheduledFor": null
                  },
                  "result": {
                    "outcome": "QUEUED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "202": {
            "description": "Sincronizar o feed agora",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/FeedSync",
                      "description": "O estado.",
                      "x-description-en": "The status."
                    },
                    "result": {
                      "$ref": "#/components/schemas/FeedSyncResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "configured": true,
                    "connector": "vista",
                    "autoSync": true,
                    "status": "QUEUED",
                    "message": "Sincronização em andamento…",
                    "lastSyncAt": "2026-10-01T13:20:00.000Z",
                    "feedCount": 412,
                    "counts": {
                      "created": 2,
                      "updated": 5,
                      "archived": 0,
                      "skipped": 1,
                      "unchanged": 404,
                      "confirmed": 0
                    },
                    "conflicts": 0,
                    "scheduledFor": null
                  },
                  "result": {
                    "outcome": "QUEUED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`feed_not_configured` — O link do feed do CRM não está configurado nesta conta\n`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "feed_not_configured": {
                    "summary": "O link do feed do CRM não está configurado nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/feed-not-configured",
                      "title": "O link do feed do CRM não está configurado nesta conta",
                      "status": 409,
                      "code": "feed_not_configured",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/launches": {
      "get": {
        "operationId": "listLaunches",
        "tags": [
          "Lançamentos"
        ],
        "summary": "Lançamentos da cidade",
        "description": "O catálogo de lançamentos, com as tipologias.",
        "x-summary-en": "The city's new developments",
        "x-description-en": "The new-development catalog, with unit types.",
        "x-scope": "launches:read",
        "x-error-codes": [
          "invalid_param",
          "invalid_cursor",
          "upstream_timeout",
          "upstream_busy",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 50 (padrão 20).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 50 (padrão 20).",
              "x-description-en": "Items per page: 1 to 50 (default 20).",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "citySlug",
            "in": "query",
            "required": false,
            "description": "Identificador da cidade no catálogo.",
            "schema": {
              "type": "string",
              "description": "Identificador da cidade no catálogo.",
              "x-description-en": "City identifier in the catalog."
            }
          },
          {
            "name": "neighborhood",
            "in": "query",
            "required": false,
            "description": "Bairro (nome).",
            "schema": {
              "type": "string",
              "description": "Bairro (nome).",
              "x-description-en": "Neighborhood (name)."
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Subtipo.",
            "schema": {
              "type": "string",
              "description": "Subtipo.",
              "x-description-en": "Subtype.",
              "enum": [
                "APARTAMENTO",
                "CASA_RUA",
                "CASA_CONDOMINIO",
                "CASA_VILA",
                "STUDIO",
                "FLAT",
                "COBERTURA",
                "SALA_COMERCIAL",
                "LOJA_PONTO",
                "GALPAO",
                "PREDIO",
                "TERRENO_RUA",
                "TERRENO_CONDOMINIO",
                "CHACARA_SITIO",
                "FAZENDA"
              ]
            }
          },
          {
            "name": "stage",
            "in": "query",
            "required": false,
            "description": "Estágio da obra.",
            "schema": {
              "type": "string",
              "description": "Estágio da obra.",
              "x-description-en": "Construction stage.",
              "enum": [
                "LAUNCH",
                "OFF_PLAN",
                "NEW",
                "READY"
              ]
            }
          },
          {
            "name": "priceMin",
            "in": "query",
            "required": false,
            "description": "Preço mínimo.",
            "schema": {
              "type": "number",
              "description": "Preço mínimo.",
              "x-description-en": "Minimum price.",
              "minimum": 0
            }
          },
          {
            "name": "priceMax",
            "in": "query",
            "required": false,
            "description": "Preço máximo.",
            "schema": {
              "type": "number",
              "description": "Preço máximo.",
              "x-description-en": "Maximum price.",
              "minimum": 0
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca no nome.",
            "schema": {
              "type": "string",
              "description": "Busca no nome.",
              "x-description-en": "Search in the name."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lançamentos da cidade",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os empreendimentos.",
                      "x-description-en": "The developments.",
                      "items": {
                        "$ref": "#/components/schemas/Launch",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "prop-1a2b3c4d5e6f",
                      "title": "Residencial Jardim das Araucárias",
                      "developer": "Construtora Exemplo",
                      "address": {
                        "neighborhood": "Mossunguê",
                        "neighborhoodSlug": "mossungue",
                        "city": "Curitiba",
                        "cityId": "4106902",
                        "citySlug": "curitiba",
                        "state": "PR"
                      },
                      "constructionStage": "OFF_PLAN",
                      "deliveryDate": "2028-06",
                      "constructionProgress": 35,
                      "coverPhoto": "https://cdn.imobyflow.com.br/properties/y/1/orig.jpg",
                      "amenities": [
                        "Piscina"
                      ],
                      "commissionPercent": 5,
                      "priceMin": 650000,
                      "priceMax": 1200000,
                      "typologyCount": 1,
                      "typologies": [
                        {
                          "id": "prop-6f5e4d3c2b1a",
                          "title": "Garden 3 quartos",
                          "type": "APARTAMENTO",
                          "status": "ACTIVE",
                          "salePrice": 650000,
                          "bedrooms": 3,
                          "suites": 1,
                          "bathrooms": 2,
                          "parkingSpots": 2,
                          "area": 88,
                          "privateArea": 84,
                          "coverPhoto": null,
                          "floorPlans": [],
                          "unitFeatures": [
                            "Sacada com churrasqueira"
                          ],
                          "unitsAvailable": 12,
                          "unitsTotal": 40
                        }
                      ]
                    }
                  ],
                  "nextCursor": "eyJhIjoiNWMxZS4uLiJ9"
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_cursor` — Cursor inválido — recomece a listagem sem ele\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_cursor": {
                    "summary": "Cursor inválido — recomece a listagem sem ele",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-cursor",
                      "title": "Cursor inválido — recomece a listagem sem ele",
                      "status": 400,
                      "code": "invalid_cursor",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_busy` — Muitas requisições ao mesmo tempo — tente de novo em instantes\n`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_busy": {
                    "summary": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-busy",
                      "title": "Muitas requisições ao mesmo tempo — tente de novo em instantes",
                      "status": 503,
                      "code": "upstream_busy",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "`upstream_timeout` — A consulta demorou demais — tente uma página menor",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_timeout": {
                    "summary": "A consulta demorou demais — tente uma página menor",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-timeout",
                      "title": "A consulta demorou demais — tente uma página menor",
                      "status": 504,
                      "code": "upstream_timeout",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/properties/{propertyId}/status": {
      "post": {
        "operationId": "setPropertyStatus",
        "tags": [
          "Imóveis"
        ],
        "summary": "Mudar o status",
        "description": "Disponível, arquivado, vendido ou alugado — a mesma função da tela: só disponível ocupa a cota do plano, e quem negocia o imóvel é avisado. Vendido não volta pelo feed.",
        "x-summary-en": "Change the status",
        "x-description-en": "Available, archived, sold or rented — the same function as the dashboard: only available ones use the plan quota, and partners negotiating it are notified. Sold does not come back through the feed.",
        "x-scope": "properties:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "plan_limit_reached",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "propertyId",
            "in": "path",
            "required": true,
            "description": "Id do imóvel (`prop-…`).",
            "schema": {
              "type": "string",
              "description": "Id do imóvel (`prop-…`).",
              "x-description-en": "Property id (`prop-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mudar o status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Property",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/PropertyWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "prop-3f9a1c2b7d4e",
                    "externalRef": "AP1234",
                    "kind": "PROPERTY",
                    "developmentId": null,
                    "status": "SOLD",
                    "type": "APARTAMENTO",
                    "category": "RESIDENCIAL",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "rentPrice": null,
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "description": "Sol da manhã, duas vagas e lazer completo.",
                    "address": {
                      "neighborhood": "Bigorrilho",
                      "neighborhoodSlug": "bigorrilho",
                      "city": "Curitiba",
                      "cityId": "4106902",
                      "citySlug": "curitiba",
                      "state": "PR",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "privateArea": 92,
                    "amenities": [
                      "Piscina",
                      "Academia"
                    ],
                    "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                    "photos": [
                      "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg"
                    ],
                    "listingUrl": "https://www.suaimobiliaria.com.br/imovel/AP1234",
                    "captador": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza"
                    },
                    "captadorName": null,
                    "sharedToNetwork": true,
                    "partnershipTerms": {
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "curation": {
                      "status": "APPROVED",
                      "reason": null,
                      "label": null
                    },
                    "confirmation": {
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "dueAt": "2026-12-01T16:45:12.000Z",
                      "noticeAt": null,
                      "offlineAt": null
                    },
                    "inactiveReason": null,
                    "deletedAt": null,
                    "launch": null,
                    "photoSync": {
                      "state": "DONE",
                      "requested": 1,
                      "ingested": 1,
                      "failed": 0,
                      "queuedAt": "2026-10-02T16:45:12.000Z",
                      "finishedAt": "2026-10-02T16:45:12.000Z"
                    },
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "STATUS_SET",
                    "dryRun": false,
                    "conflicts": [],
                    "photos": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`plan_limit_reached` — Limite de imóveis ativos do plano atingido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "plan_limit_reached": {
                    "summary": "Limite de imóveis ativos do plano atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-limit-reached",
                      "title": "Limite de imóveis ativos do plano atingido",
                      "status": 409,
                      "code": "plan_limit_reached",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "O status.",
                "x-description-en": "The status.",
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "O novo status.",
                    "x-description-en": "The new status.",
                    "enum": [
                      "ACTIVE",
                      "INACTIVE",
                      "SOLD",
                      "RENTED"
                    ]
                  }
                },
                "required": [
                  "status"
                ],
                "additionalProperties": false
              },
              "example": {
                "status": "SOLD"
              }
            }
          }
        }
      }
    },
    "/properties/confirm": {
      "post": {
        "operationId": "confirmProperties",
        "tags": [
          "Imóveis"
        ],
        "summary": "Confirmar disponibilidade em lote",
        "description": "A régua dos 60 dias tira do ar o imóvel que ninguém confirma. Mande até 200 `ids` e `refs`; confirmado há menos de 24 h não regrava (`ALREADY_CONFIRMED`).",
        "x-summary-en": "Confirm availability in bulk",
        "x-description-en": "The 60-day rule takes unconfirmed properties offline. Send up to 200 `ids` and `refs`; confirmed less than 24 h ago is not rewritten (`ALREADY_CONFIRMED`).",
        "x-scope": "properties:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Confirmar disponibilidade em lote",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "O desfecho de cada imóvel.",
                      "x-description-en": "Each property outcome.",
                      "items": {
                        "$ref": "#/components/schemas/ConfirmItem",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "result": {
                      "type": "object",
                      "description": "O resumo.",
                      "x-description-en": "The summary.",
                      "properties": {
                        "dryRun": {
                          "type": "boolean",
                          "description": "Ensaio.",
                          "x-description-en": "Dry run."
                        },
                        "summary": {
                          "type": "object",
                          "description": "Contagem por desfecho.",
                          "x-description-en": "Count per outcome.",
                          "additionalProperties": {
                            "type": "integer",
                            "description": "Quantos.",
                            "x-description-en": "How many."
                          }
                        }
                      },
                      "required": [
                        "dryRun",
                        "summary"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "ref": "AP1234",
                      "propertyId": "prop-3f9a1c2b7d4e",
                      "outcome": "CONFIRMED"
                    },
                    {
                      "ref": "CA0042",
                      "propertyId": null,
                      "outcome": "NOT_FOUND"
                    }
                  ],
                  "result": {
                    "dryRun": false,
                    "summary": {
                      "CONFIRMED": 1,
                      "NOT_FOUND": 1
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Até 200 no total.",
                "x-description-en": "Up to 200 in total.",
                "properties": {
                  "ids": {
                    "type": "array",
                    "description": "Ids dos imóveis.",
                    "x-description-en": "Property ids.",
                    "items": {
                      "type": "string",
                      "description": "Id.",
                      "x-description-en": "Id."
                    }
                  },
                  "refs": {
                    "type": "array",
                    "description": "Códigos do seu sistema.",
                    "x-description-en": "Your system codes.",
                    "items": {
                      "type": "string",
                      "description": "Código.",
                      "x-description-en": "Code."
                    }
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "refs": [
                  "AP1234",
                  "CA0042"
                ]
              }
            }
          }
        }
      }
    },
    "/leads/{leadId}/state": {
      "post": {
        "operationId": "setLeadState",
        "tags": [
          "Clientes"
        ],
        "summary": "Arquivar ou reativar",
        "description": "`ARCHIVED` arquiva; `ACTIVE` reativa. A mesma função da tela.",
        "x-summary-en": "Archive or reactivate",
        "x-description-en": "`ARCHIVED` archives; `ACTIVE` reactivates. The same function as the dashboard.",
        "x-scope": "leads:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "lead_in_trash",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "leadId",
            "in": "path",
            "required": true,
            "description": "Id do cliente (`lead-…`).",
            "schema": {
              "type": "string",
              "description": "Id do cliente (`lead-…`).",
              "x-description-en": "Client id (`lead-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Arquivar ou reativar",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/LeadWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ARCHIVED",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": "2026-10-02T16:45:12.000Z",
                    "archivedReason": "MANUAL",
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "STATE_SET",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`lead_in_trash` — Cliente na lixeira",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "lead_in_trash": {
                    "summary": "Cliente na lixeira",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/lead-in-trash",
                      "title": "Cliente na lixeira",
                      "status": 409,
                      "code": "lead_in_trash",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "O estado.",
                "x-description-en": "The state.",
                "properties": {
                  "state": {
                    "type": "string",
                    "description": "O estado.",
                    "x-description-en": "The state.",
                    "enum": [
                      "ACTIVE",
                      "ARCHIVED"
                    ]
                  }
                },
                "required": [
                  "state"
                ],
                "additionalProperties": false
              },
              "example": {
                "state": "ARCHIVED"
              }
            }
          }
        }
      }
    },
    "/leads/{leadId}/interactions": {
      "post": {
        "operationId": "addLeadInteraction",
        "tags": [
          "Clientes"
        ],
        "summary": "Registrar um atendimento",
        "description": "Contato, visita, proposta ou anotação feitos no SEU sistema, com a data dele. Conta como movimentação (o cliente não é arquivado por inatividade).",
        "x-summary-en": "Log an interaction",
        "x-description-en": "A contact, visit, proposal or note made in YOUR system, with its date. It counts as activity (the client is not archived for inactivity).",
        "x-scope": "leads:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "leadId",
            "in": "path",
            "required": true,
            "description": "Id do cliente (`lead-…`).",
            "schema": {
              "type": "string",
              "description": "Id do cliente (`lead-…`).",
              "x-description-en": "Client id (`lead-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Registrar um atendimento",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Lead",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/LeadWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "lead-7c2e9a1b3d5f",
                    "externalRef": "CLI-889",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "state": "ACTIVE",
                    "status": "ATTENDING",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "41999998888",
                        "isWhatsApp": true,
                        "label": null
                      }
                    ],
                    "email": "carlos@example.com",
                    "source": "CRM_API",
                    "sourceDetail": "Vista / Loft CRM",
                    "sourcePropertyId": null,
                    "preApproved": false,
                    "sharedToNetwork": true,
                    "notes": null,
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "citySlug": "curitiba",
                          "cityName": "Curitiba",
                          "uf": "PR",
                          "neighborhoodSlug": "bigorrilho",
                          "neighborhoodName": "Bigorrilho",
                          "preference": "PREFERRED"
                        }
                      ],
                      "similarNeighborhoods": true,
                      "salePriceMin": 600000,
                      "salePriceMax": 950000,
                      "rentPriceMin": null,
                      "rentPriceMax": null,
                      "bedrooms": 3,
                      "bathrooms": null,
                      "parkingSpots": 2,
                      "areaMin": 80
                    },
                    "radar": {
                      "eligible": true,
                      "pending": [],
                      "labels": []
                    },
                    "lastActivityAt": "2026-10-02T16:45:12.000Z",
                    "archivedAt": null,
                    "archivedReason": null,
                    "deletedAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "ADDED",
                    "dryRun": false,
                    "interaction": {
                      "id": "int-1a2b3c",
                      "type": "VISIT",
                      "note": "Visitou o AP1234 com a esposa.",
                      "at": "2026-10-02T15:00:00.000Z"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "O atendimento.",
                "x-description-en": "The interaction.",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "`CONTACT`, `VISIT`, `PROPOSAL` ou `NOTE`.",
                    "x-description-en": "`CONTACT`, `VISIT`, `PROPOSAL` or `NOTE`.",
                    "enum": [
                      "CONTACT",
                      "VISIT",
                      "PROPOSAL",
                      "NOTE"
                    ]
                  },
                  "note": {
                    "type": "string",
                    "description": "Anotação.",
                    "x-description-en": "Note.",
                    "maxLength": 1000
                  },
                  "at": {
                    "type": "string",
                    "description": "Quando aconteceu (padrão: agora).",
                    "x-description-en": "When it happened (default: now).",
                    "format": "date-time"
                  }
                },
                "required": [
                  "type"
                ],
                "additionalProperties": false
              },
              "example": {
                "type": "VISIT",
                "note": "Visitou o AP1234 com a esposa.",
                "at": "2026-10-02T15:00:00Z"
              }
            }
          }
        }
      }
    },
    "/matches/{matchId}/dismiss": {
      "post": {
        "operationId": "dismissMatch",
        "tags": [
          "Oportunidades (Radar)"
        ],
        "summary": "Descartar oportunidade",
        "description": "A decisão do corretor, tomada no seu sistema. Oportunidade favoritada não se descarta.",
        "x-summary-en": "Dismiss an opportunity",
        "x-description-en": "The broker's decision, made in your system. A favorited opportunity cannot be dismissed.",
        "x-scope": "radar:write",
        "x-error-codes": [
          "invalid_param",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "matchId",
            "in": "path",
            "required": true,
            "description": "Id da oportunidade. Tem `#`: mande codificado (`%23`).",
            "schema": {
              "type": "string",
              "description": "Id da oportunidade. Tem `#`: mande codificado (`%23`).",
              "x-description-en": "Opportunity id. It contains `#`: send it URL-encoded (`%23`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Descartar oportunidade",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Match",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/MatchWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "m#prop-3f9a1c2b7d4e#lead-7c2e9a1b3d5f#L",
                    "scope": "INTERNAL",
                    "status": "ARCHIVED",
                    "score": 87,
                    "reasons": [
                      "Bairro preferido",
                      "Dentro do orçamento"
                    ],
                    "gaps": [],
                    "propertyId": "prop-3f9a1c2b7d4e",
                    "leadId": "lead-7c2e9a1b3d5f",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "ownerName": "Marina Souza",
                    "locked": false,
                    "lostRelevance": false,
                    "property": {
                      "title": "Apartamento 3 quartos no Bigorrilho",
                      "type": "APARTAMENTO",
                      "purpose": "VENDA",
                      "purposes": [
                        "VENDA"
                      ],
                      "price": 890000,
                      "priceFrom": false,
                      "rentPrice": null,
                      "city": "Curitiba",
                      "neighborhood": "Bigorrilho",
                      "bedrooms": 3,
                      "bathrooms": 2,
                      "parkingSpots": 2,
                      "area": 98,
                      "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                      "listingUrl": null,
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50,
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "deliveryDate": null,
                      "developmentId": null,
                      "developmentName": null
                    },
                    "client": {
                      "masked": false,
                      "status": "ATTENDING",
                      "preApproved": false,
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "regions": [
                        "Bigorrilho, Curitiba"
                      ],
                      "priceMin": 600000,
                      "priceMax": 950000,
                      "bedrooms": 3,
                      "parkingSpots": 2,
                      "areaMin": 80,
                      "name": "Carlos Pereira"
                    },
                    "counterpart": null,
                    "createdAt": "2026-10-02T16:45:12.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "APPLIED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/matches/{matchId}/restore": {
      "post": {
        "operationId": "restoreMatch",
        "tags": [
          "Oportunidades (Radar)"
        ],
        "summary": "Restaurar oportunidade",
        "description": "Volta a oportunidade descartada para as novas.",
        "x-summary-en": "Restore an opportunity",
        "x-description-en": "Brings a dismissed opportunity back to new.",
        "x-scope": "radar:write",
        "x-error-codes": [
          "invalid_param",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "matchId",
            "in": "path",
            "required": true,
            "description": "Id da oportunidade. Tem `#`: mande codificado (`%23`).",
            "schema": {
              "type": "string",
              "description": "Id da oportunidade. Tem `#`: mande codificado (`%23`).",
              "x-description-en": "Opportunity id. It contains `#`: send it URL-encoded (`%23`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Restaurar oportunidade",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Match",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/MatchWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "m#prop-3f9a1c2b7d4e#lead-7c2e9a1b3d5f#L",
                    "scope": "INTERNAL",
                    "status": "NEW",
                    "score": 87,
                    "reasons": [
                      "Bairro preferido",
                      "Dentro do orçamento"
                    ],
                    "gaps": [],
                    "propertyId": "prop-3f9a1c2b7d4e",
                    "leadId": "lead-7c2e9a1b3d5f",
                    "ownerAccountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "ownerName": "Marina Souza",
                    "locked": false,
                    "lostRelevance": false,
                    "property": {
                      "title": "Apartamento 3 quartos no Bigorrilho",
                      "type": "APARTAMENTO",
                      "purpose": "VENDA",
                      "purposes": [
                        "VENDA"
                      ],
                      "price": 890000,
                      "priceFrom": false,
                      "rentPrice": null,
                      "city": "Curitiba",
                      "neighborhood": "Bigorrilho",
                      "bedrooms": 3,
                      "bathrooms": 2,
                      "parkingSpots": 2,
                      "area": 98,
                      "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                      "listingUrl": null,
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50,
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "deliveryDate": null,
                      "developmentId": null,
                      "developmentName": null
                    },
                    "client": {
                      "masked": false,
                      "status": "ATTENDING",
                      "preApproved": false,
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "regions": [
                        "Bigorrilho, Curitiba"
                      ],
                      "priceMin": 600000,
                      "priceMax": 950000,
                      "bedrooms": 3,
                      "parkingSpots": 2,
                      "areaMin": 80,
                      "name": "Carlos Pereira"
                    },
                    "counterpart": null,
                    "createdAt": "2026-10-02T16:45:12.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "APPLIED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/partnerships/{partnershipId}/status": {
      "post": {
        "operationId": "setPartnershipStatus",
        "tags": [
          "Parcerias"
        ],
        "summary": "Mover a etapa da parceria",
        "description": "Só o lado que captou o cliente move o funil (`canMoveFunnel`). A contraparte só encerra depois de pedir atualização e ficar 15 dias sem resposta — a regra da tela.",
        "x-summary-en": "Move the partnership stage",
        "x-description-en": "Only the side that brought the client moves the funnel (`canMoveFunnel`). The other side can only close it after asking for an update and waiting 15 days without an answer — the dashboard rule.",
        "x-scope": "partnerships:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "partnershipId",
            "in": "path",
            "required": true,
            "description": "Id da parceria (`pship-…`).",
            "schema": {
              "type": "string",
              "description": "Id da parceria (`pship-…`).",
              "x-description-en": "Partnership id (`pship-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mover a etapa da parceria",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Partnership",
                      "description": "O objeto como ficou.",
                      "x-description-en": "The object as it now stands."
                    },
                    "result": {
                      "$ref": "#/components/schemas/PartnershipWriteResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "pship-5b8d2f1e9a3c",
                    "status": "PROPOSAL",
                    "kind": "PROPERTY_FOR_CLIENT",
                    "propertyId": "prop-9e8d7c6b5a4f",
                    "leadId": "lead-7c2e9a1b3d5f",
                    "matchId": "m#prop-9e8d7c6b5a4f#lead-7c2e9a1b3d5f#L",
                    "developmentId": null,
                    "developmentTitle": null,
                    "score": 82,
                    "summary": "Apartamento 3 quartos no Batel para Carlos Pereira",
                    "reasons": [
                      "Bairro aceitável"
                    ],
                    "message": "Tenho um cliente para este imóvel.",
                    "ourSide": "REQUESTER",
                    "ourBrokerId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                    "canMoveFunnel": true,
                    "requester": {
                      "accountId": "9a7b6c5d-4e3f-4a1b-8c2d-1e0f9a8b7c6d",
                      "name": "Marina Souza",
                      "type": "CORRETOR"
                    },
                    "addressee": {
                      "accountId": "c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f",
                      "name": "Rafael Lima",
                      "type": "CORRETOR"
                    },
                    "counterpart": {
                      "name": "Rafael Lima",
                      "type": "CORRETOR",
                      "organization": "Lima Imóveis",
                      "contactName": "Rafael Lima",
                      "phone": "41988887777",
                      "email": "rafael@example.com",
                      "creci": "F-12345/PR",
                      "creciVerified": true
                    },
                    "property": {
                      "title": "Apartamento 3 quartos no Bigorrilho",
                      "type": "APARTAMENTO",
                      "purpose": "VENDA",
                      "purposes": [
                        "VENDA"
                      ],
                      "price": 890000,
                      "priceFrom": false,
                      "rentPrice": null,
                      "city": "Curitiba",
                      "neighborhood": "Bigorrilho",
                      "bedrooms": 3,
                      "bathrooms": 2,
                      "parkingSpots": 2,
                      "area": 98,
                      "coverPhoto": "https://cdn.imobyflow.com.br/properties/x/1/orig.jpg",
                      "listingUrl": null,
                      "commissionPercent": 6,
                      "rentCommissionMonths": null,
                      "splitListingPercent": 50,
                      "lastConfirmedAt": "2026-10-02T16:45:12.000Z",
                      "deliveryDate": null,
                      "developmentId": null,
                      "developmentName": null
                    },
                    "client": {
                      "masked": false,
                      "status": "ATTENDING",
                      "preApproved": false,
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "regions": [
                        "Bigorrilho, Curitiba"
                      ],
                      "priceMin": 600000,
                      "priceMax": 950000,
                      "bedrooms": 3,
                      "parkingSpots": 2,
                      "areaMin": 80,
                      "name": "Carlos Pereira"
                    },
                    "lastProgressAt": "2026-10-02T16:45:12.000Z",
                    "protectedUntil": null,
                    "propertyOffMarketAt": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "APPLIED",
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "A etapa.",
                "x-description-en": "The stage.",
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "A nova etapa.",
                    "x-description-en": "The new stage.",
                    "enum": [
                      "PENDING",
                      "ACCEPTED",
                      "DECLINED",
                      "CANCELLED",
                      "LEAD_REGISTERED",
                      "CONTACTED",
                      "NEGOTIATING",
                      "PROPOSAL",
                      "WON",
                      "LOST"
                    ]
                  }
                },
                "required": [
                  "status"
                ],
                "additionalProperties": false
              },
              "example": {
                "status": "PROPOSAL"
              }
            }
          }
        }
      }
    },
    "/captacao/offers": {
      "get": {
        "operationId": "listCaptacaoOffers",
        "tags": [
          "Captação"
        ],
        "summary": "Proprietários na vez da conta",
        "description": "Os proprietários na vez da conta agora, com o prazo correndo — os mesmos cards da mesa —, e o resumo (crédito, pausa, módulo valendo). Antes do aceite, contato e endereço não existem na resposta.",
        "x-summary-en": "Owners offered to the account",
        "x-description-en": "The owners offered to the account right now, with the deadline running — the same cards as the desk — plus a summary (credit, pause, module status). Before accepting, contact and address do not exist in the response.",
        "x-scope": "captacao:read",
        "x-error-codes": [
          "captacao_not_active",
          "not_available",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Proprietários na vez da conta",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os proprietários.",
                      "x-description-en": "The owners.",
                      "items": {
                        "$ref": "#/components/schemas/CaptacaoOffer",
                        "description": "Proprietário.",
                        "x-description-en": "Owner."
                      }
                    },
                    "summary": {
                      "$ref": "#/components/schemas/CaptacaoSummary",
                      "description": "O resumo da mesa.",
                      "x-description-en": "Desk summary."
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Sempre nulo hoje.",
                      "x-description-en": "Always null today."
                    }
                  },
                  "required": [
                    "data",
                    "summary",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "cap-8e7d6c5b4a39",
                      "status": "OFFERED",
                      "purpose": "VENDA",
                      "propertyType": "CASA_RUA",
                      "city": "Curitiba",
                      "citySlug": "curitiba",
                      "neighborhood": "Água Verde",
                      "bedrooms": 3,
                      "suites": 1,
                      "bathrooms": 2,
                      "parkingSpots": 2,
                      "usableAreaDeclared": 140,
                      "areaDeclared": 300,
                      "priceExpected": 980000,
                      "sellTimeframe": "TRES_MESES",
                      "occupancy": "VAZIO",
                      "ownerRelation": "DONO",
                      "exclusivityOpenness": "SIM",
                      "alreadyListedDeclared": false,
                      "priceCents": 8000,
                      "deadline": "2026-10-03T17:00:00.000Z",
                      "matchingClients": {
                        "city": 14,
                        "neighborhood": 3
                      },
                      "demand": null,
                      "stockNeighborhood": 22,
                      "ownerNameMasked": "Jo** S****",
                      "ownerPhoneVerifiedVia": "WHATSAPP",
                      "ownerPhoneVerifiedAt": "2026-10-01T13:20:00.000Z",
                      "revealed": false,
                      "createdAt": "2026-10-01T13:20:00.000Z"
                    }
                  ],
                  "summary": {
                    "pendingCount": 1,
                    "balanceCents": 40000,
                    "subscriptionActive": true,
                    "platformActive": true,
                    "paused": false,
                    "pausedAuto": false,
                    "expiredStreak": 0,
                    "autoPauseAfter": 3,
                    "inActivation": false,
                    "leadsToFirstCharge": null,
                    "rechargePending": false,
                    "operatingCities": [
                      "curitiba"
                    ],
                    "purposes": [
                      "VENDA"
                    ],
                    "serviceDays": [
                      "MON",
                      "TUE",
                      "WED",
                      "THU",
                      "FRI"
                    ]
                  },
                  "nextCursor": null
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`not_available` — Recurso indisponível para este tipo de conta\n`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_available": {
                    "summary": "Recurso indisponível para este tipo de conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-available",
                      "title": "Recurso indisponível para este tipo de conta",
                      "status": 403,
                      "code": "not_available",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`captacao_not_active` — A Captação não está ligada nesta conta",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "captacao_not_active": {
                    "summary": "A Captação não está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/captacao-not-active",
                      "title": "A Captação não está ligada nesta conta",
                      "status": 409,
                      "code": "captacao_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/captacao/offers/{offerId}": {
      "get": {
        "operationId": "getCaptacaoOffer",
        "tags": [
          "Captação"
        ],
        "summary": "Um proprietário",
        "description": "Na vez da conta (sem contato) ou já aceito por ela (com contato).",
        "x-summary-en": "One owner",
        "x-description-en": "Offered to the account (no contact) or already accepted by it (with contact).",
        "x-scope": "captacao:read",
        "x-error-codes": [
          "not_found",
          "captacao_not_active",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "required": true,
            "description": "Id do proprietário na mesa (`cap-…`).",
            "schema": {
              "type": "string",
              "description": "Id do proprietário na mesa (`cap-…`).",
              "x-description-en": "The owner's id on the desk (`cap-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Um proprietário",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/CaptacaoOffer",
                      "description": "O proprietário.",
                      "x-description-en": "The owner."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "cap-8e7d6c5b4a39",
                    "status": "OFFERED",
                    "purpose": "VENDA",
                    "propertyType": "CASA_RUA",
                    "city": "Curitiba",
                    "citySlug": "curitiba",
                    "neighborhood": "Água Verde",
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "usableAreaDeclared": 140,
                    "areaDeclared": 300,
                    "priceExpected": 980000,
                    "sellTimeframe": "TRES_MESES",
                    "occupancy": "VAZIO",
                    "ownerRelation": "DONO",
                    "exclusivityOpenness": "SIM",
                    "alreadyListedDeclared": false,
                    "priceCents": 8000,
                    "deadline": "2026-10-03T17:00:00.000Z",
                    "matchingClients": {
                      "city": 14,
                      "neighborhood": 3
                    },
                    "demand": null,
                    "stockNeighborhood": 22,
                    "ownerNameMasked": "Jo** S****",
                    "ownerPhoneVerifiedVia": "WHATSAPP",
                    "ownerPhoneVerifiedAt": "2026-10-01T13:20:00.000Z",
                    "revealed": false,
                    "createdAt": "2026-10-01T13:20:00.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`captacao_not_active` — A Captação não está ligada nesta conta",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "captacao_not_active": {
                    "summary": "A Captação não está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/captacao-not-active",
                      "title": "A Captação não está ligada nesta conta",
                      "status": 409,
                      "code": "captacao_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/captacao/owners": {
      "get": {
        "operationId": "listCaptacaoOwners",
        "tags": [
          "Captação"
        ],
        "summary": "Proprietários aceitos",
        "description": "Os aceitos, por aba da mesa, em páginas de 10, com a contagem das três abas.",
        "x-summary-en": "Accepted owners",
        "x-description-en": "Accepted owners, by desk tab, in pages of 10, with the count of the three tabs.",
        "x-scope": "captacao:read",
        "x-error-codes": [
          "invalid_param",
          "invalid_cursor",
          "captacao_not_active",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "tab",
            "in": "query",
            "required": false,
            "description": "A aba (padrão `ACTIVE`).",
            "schema": {
              "type": "string",
              "description": "A aba (padrão `ACTIVE`).",
              "x-description-en": "The tab (default `ACTIVE`).",
              "enum": [
                "ACTIVE",
                "CAPTURED",
                "ARCHIVED"
              ]
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Proprietários aceitos",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os aceitos.",
                      "x-description-en": "The accepted owners.",
                      "items": {
                        "$ref": "#/components/schemas/CaptacaoOffer",
                        "description": "Proprietário.",
                        "x-description-en": "Owner."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Próxima página.",
                      "x-description-en": "Next page."
                    },
                    "total": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "Total na aba.",
                      "x-description-en": "Total in the tab."
                    },
                    "counts": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Quantos em cada aba.",
                      "x-description-en": "How many in each tab.",
                      "additionalProperties": {
                        "type": "integer",
                        "description": "Quantos.",
                        "x-description-en": "How many."
                      }
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor",
                    "total",
                    "counts"
                  ]
                },
                "example": {
                  "data": [],
                  "nextCursor": null,
                  "total": 0,
                  "counts": {
                    "ACTIVE": 0,
                    "CAPTURED": 0,
                    "ARCHIVED": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_cursor` — Cursor inválido — recomece a listagem sem ele\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_cursor": {
                    "summary": "Cursor inválido — recomece a listagem sem ele",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-cursor",
                      "title": "Cursor inválido — recomece a listagem sem ele",
                      "status": 400,
                      "code": "invalid_cursor",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`captacao_not_active` — A Captação não está ligada nesta conta",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "captacao_not_active": {
                    "summary": "A Captação não está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/captacao-not-active",
                      "title": "A Captação não está ligada nesta conta",
                      "status": 409,
                      "code": "captacao_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/captacao/offers/{offerId}/accept": {
      "post": {
        "operationId": "acceptCaptacaoOffer",
        "tags": [
          "Captação"
        ],
        "summary": "Aceitar um proprietário",
        "description": "O único caminho da API que gasta dinheiro: debita o crédito e libera o contato. Exige a permissão `captacao:accept` e o termo do item 13 dos Termos da API aceito pelo dono no painel. Cada aceite grava a chave, o IP e a versão do termo. Ensaio responde `WOULD_ACCEPT` com o preço; a re-tentativa do mesmo aceite, `ALREADY_ACCEPTED`, sem segundo débito.",
        "x-summary-en": "Accept an owner",
        "x-description-en": "The only API path that spends money: it debits credit and reveals the contact. Requires the `captacao:accept` permission and item 13 of the API Terms accepted by the owner in the dashboard. Each acceptance records the key, the IP and the terms version. A dry run returns `WOULD_ACCEPT` with the price; retrying the same acceptance returns `ALREADY_ACCEPTED`, with no second debit.",
        "x-scope": "captacao:accept",
        "x-error-codes": [
          "invalid_param",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "request_refused",
          "not_found",
          "captacao_not_active",
          "captacao_terms_required",
          "offer_unavailable",
          "captacao_insufficient_credit",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "required": true,
            "description": "Id do proprietário na mesa (`cap-…`).",
            "schema": {
              "type": "string",
              "description": "Id do proprietário na mesa (`cap-…`).",
              "x-description-en": "The owner's id on the desk (`cap-…`)."
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Aceitar um proprietário",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/CaptacaoOffer",
                      "description": "O proprietário (com contato).",
                      "x-description-en": "The owner (with contact)."
                    },
                    "result": {
                      "$ref": "#/components/schemas/CaptacaoAcceptResult",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome."
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "cap-8e7d6c5b4a39",
                    "status": "OFFERED",
                    "purpose": "VENDA",
                    "propertyType": "CASA_RUA",
                    "city": "Curitiba",
                    "citySlug": "curitiba",
                    "neighborhood": "Água Verde",
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "usableAreaDeclared": 140,
                    "areaDeclared": 300,
                    "priceExpected": 980000,
                    "sellTimeframe": "TRES_MESES",
                    "occupancy": "VAZIO",
                    "ownerRelation": "DONO",
                    "exclusivityOpenness": "SIM",
                    "alreadyListedDeclared": false,
                    "priceCents": 8000,
                    "deadline": "2026-10-03T17:00:00.000Z",
                    "matchingClients": {
                      "city": 14,
                      "neighborhood": 3
                    },
                    "demand": null,
                    "stockNeighborhood": 22,
                    "ownerNameMasked": "Jo** S****",
                    "ownerPhoneVerifiedVia": "WHATSAPP",
                    "ownerPhoneVerifiedAt": "2026-10-01T13:20:00.000Z",
                    "revealed": false,
                    "createdAt": "2026-10-01T13:20:00.000Z"
                  },
                  "result": {
                    "outcome": "WOULD_ACCEPT",
                    "dryRun": true,
                    "priceCents": 8000
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`captacao_terms_required` — Aceite pela API sem o termo específico aceito no painel\n`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "captacao_terms_required": {
                    "summary": "Aceite pela API sem o termo específico aceito no painel",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/captacao-terms-required",
                      "title": "Aceite pela API sem o termo específico aceito no painel",
                      "status": 403,
                      "code": "captacao_terms_required",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento\n`captacao_not_active` — A Captação não está ligada nesta conta\n`offer_unavailable` — Este proprietário não está mais disponível para a sua conta\n`captacao_insufficient_credit` — Crédito da Captação insuficiente",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "captacao_not_active": {
                    "summary": "A Captação não está ligada nesta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/captacao-not-active",
                      "title": "A Captação não está ligada nesta conta",
                      "status": 409,
                      "code": "captacao_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "offer_unavailable": {
                    "summary": "Este proprietário não está mais disponível para a sua conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/offer-unavailable",
                      "title": "Este proprietário não está mais disponível para a sua conta",
                      "status": 409,
                      "code": "offer_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "captacao_insufficient_credit": {
                    "summary": "Crédito da Captação insuficiente",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/captacao-insufficient-credit",
                      "title": "Crédito da Captação insuficiente",
                      "status": 409,
                      "code": "captacao_insufficient_credit",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`request_refused` — A plataforma recusou o pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "request_refused": {
                    "summary": "A plataforma recusou o pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/request-refused",
                      "title": "A plataforma recusou o pedido",
                      "status": 422,
                      "code": "request_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/events": {
      "get": {
        "operationId": "listEvents",
        "tags": [
          "Eventos"
        ],
        "summary": "O que mudou",
        "description": "Os eventos da conta em ordem, com 30 dias de memória. Guarde o `nextCursor` e mande de volta na próxima leitura — ele sempre vem, também quando não há nada novo. Cada tipo exige também a permissão de leitura do recurso. Um evento leva de segundos a mais de um minuto para aparecer: siga o CURSOR, nunca o relógio.",
        "x-summary-en": "What changed",
        "x-description-en": "The account's events in order, with 30 days of history. Keep `nextCursor` and send it back next time — it always comes, even when there is nothing new. Each type also requires the resource's read permission. An event takes from seconds to over a minute to show up: follow the CURSOR, never the clock.",
        "x-scope": "events:read",
        "x-error-codes": [
          "invalid_param",
          "invalid_cursor",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 500 (padrão 100).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 500 (padrão 100).",
              "x-description-en": "Items per page: 1 to 500 (default 100).",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "Começar desta data/hora (só sem cursor).",
            "schema": {
              "type": "string",
              "description": "Começar desta data/hora (só sem cursor).",
              "x-description-en": "Start from this date/time (only without a cursor).",
              "format": "date-time"
            }
          },
          {
            "name": "types",
            "in": "query",
            "required": false,
            "description": "Só estes tipos, separados por vírgula.",
            "schema": {
              "type": "string",
              "description": "Só estes tipos, separados por vírgula.",
              "x-description-en": "Only these types, comma-separated."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "O que mudou",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os eventos, em ordem.",
                      "x-description-en": "The events, in order.",
                      "items": {
                        "$ref": "#/components/schemas/Event",
                        "description": "Evento.",
                        "x-description-en": "Event."
                      }
                    },
                    "nextCursor": {
                      "type": "string",
                      "description": "Onde continuar (sempre vem).",
                      "x-description-en": "Where to continue (always present)."
                    },
                    "hasMore": {
                      "type": "boolean",
                      "description": "Há mais para ler agora.",
                      "x-description-en": "There is more to read right now."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor",
                    "hasMore"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "evt_4f1c9a7e2b3d8c6a5e4f1b2c",
                      "type": "property.updated",
                      "createdAt": "2026-10-02T16:45:12.000Z",
                      "data": {
                        "id": "prop-3f9a1c2b7d4e",
                        "externalRef": "AP1234",
                        "status": "ACTIVE",
                        "changedFields": [
                          "salePrice"
                        ],
                        "updatedAt": "2026-10-02T16:45:12.000Z"
                      }
                    }
                  ],
                  "nextCursor": "eyJhIjoiNWMxZS4uLiJ9",
                  "hasMore": false
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_cursor` — Cursor inválido — recomece a listagem sem ele\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_cursor": {
                    "summary": "Cursor inválido — recomece a listagem sem ele",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-cursor",
                      "title": "Cursor inválido — recomece a listagem sem ele",
                      "status": 400,
                      "code": "invalid_cursor",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webhooks": {
      "get": {
        "operationId": "listWebhooks",
        "tags": [
          "Webhooks"
        ],
        "summary": "Endereços cadastrados",
        "description": "Os endereços de webhook da conta.",
        "x-summary-en": "Registered endpoints",
        "x-description-en": "The account's webhook endpoints.",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Endereços cadastrados",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "Os endereços.",
                      "x-description-en": "The endpoints.",
                      "items": {
                        "$ref": "#/components/schemas/Webhook",
                        "description": "Endereço.",
                        "x-description-en": "Endpoint."
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "wh_9c8b7a6f5e4d3c2b",
                      "url": "https://crm.suaimobiliaria.com.br/imobyflow/eventos",
                      "types": [],
                      "description": "CRM — produção",
                      "status": "ACTIVE",
                      "disabledAt": null,
                      "disabledReason": null,
                      "secretRotatedAt": null,
                      "previousSecretValidUntil": null,
                      "createdAt": "2026-10-01T13:20:00.000Z",
                      "updatedAt": "2026-10-01T13:20:00.000Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createWebhook",
        "tags": [
          "Webhooks"
        ],
        "summary": "Cadastrar um endereço",
        "description": "Só HTTPS e só host público. A resposta traz o `secret` (`whsec_…`) UMA vez — guarde-o: é com ele que você confere a assinatura. Esta rota não aceita `Idempotency-Key` (a resposta guardada deixaria o segredo em texto); repetir cria outro endereço.",
        "x-summary-en": "Register an endpoint",
        "x-description-en": "HTTPS and public hosts only. The response carries the `secret` (`whsec_…`) ONCE — keep it: it is what you verify the signature with. This route does not accept `Idempotency-Key` (a stored response would keep the secret in plain text); repeating creates another endpoint.",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "webhook_url_refused",
          "webhook_limit_reached",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Cadastrar um endereço",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Webhook",
                      "description": "O endereço.",
                      "x-description-en": "The endpoint."
                    },
                    "secret": {
                      "type": "string",
                      "description": "O segredo, só nesta resposta.",
                      "x-description-en": "The secret, only in this response."
                    }
                  },
                  "required": [
                    "data",
                    "secret"
                  ]
                },
                "example": {
                  "data": {
                    "id": "wh_9c8b7a6f5e4d3c2b",
                    "url": "https://crm.suaimobiliaria.com.br/imobyflow/eventos",
                    "types": [],
                    "description": "CRM — produção",
                    "status": "ACTIVE",
                    "disabledAt": null,
                    "disabledReason": null,
                    "secretRotatedAt": null,
                    "previousSecretValidUntil": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-01T13:20:00.000Z"
                  },
                  "secret": "whsec_pcwwPI/A9TWaDe9mPSrOkWlrkADDKDKjCKivhG986jw="
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`webhook_limit_reached` — Limite de webhooks da conta atingido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "webhook_limit_reached": {
                    "summary": "Limite de webhooks da conta atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/webhook-limit-reached",
                      "title": "Limite de webhooks da conta atingido",
                      "status": 409,
                      "code": "webhook_limit_reached",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`webhook_url_refused` — Endereço de webhook recusado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "webhook_url_refused": {
                    "summary": "Endereço de webhook recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/webhook-url-refused",
                      "title": "Endereço de webhook recusado",
                      "status": 422,
                      "code": "webhook_url_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreate",
                "description": "O endereço.",
                "x-description-en": "The endpoint."
              },
              "example": {
                "url": "https://crm.suaimobiliaria.com.br/imobyflow/eventos",
                "types": [
                  "property.updated",
                  "lead.created"
                ],
                "description": "CRM — produção"
              }
            }
          }
        }
      }
    },
    "/webhooks/{webhookId}": {
      "patch": {
        "operationId": "updateWebhook",
        "tags": [
          "Webhooks"
        ],
        "summary": "Alterar um endereço",
        "description": "Muda o endereço, os tipos, a descrição — ou desliga e religa (religar limpa o motivo do desligamento).",
        "x-summary-en": "Update an endpoint",
        "x-description-en": "Changes the URL, the types, the description — or disables and re-enables it (re-enabling clears the disable reason).",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "not_found",
          "webhook_url_refused",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Id do endereço (`wh_…`).",
            "schema": {
              "type": "string",
              "description": "Id do endereço (`wh_…`).",
              "x-description-en": "Endpoint id (`wh_…`)."
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Alterar um endereço",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Webhook",
                      "description": "O endereço.",
                      "x-description-en": "The endpoint."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "wh_9c8b7a6f5e4d3c2b",
                    "url": "https://crm.suaimobiliaria.com.br/imobyflow/eventos",
                    "types": [],
                    "description": "CRM — produção",
                    "status": "ACTIVE",
                    "disabledAt": null,
                    "disabledReason": null,
                    "secretRotatedAt": null,
                    "previousSecretValidUntil": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-01T13:20:00.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido\n`webhook_url_refused` — Endereço de webhook recusado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "webhook_url_refused": {
                    "summary": "Endereço de webhook recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/webhook-url-refused",
                      "title": "Endereço de webhook recusado",
                      "status": 422,
                      "code": "webhook_url_refused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUpdate",
                "description": "O que mudar.",
                "x-description-en": "What to change."
              },
              "example": {
                "status": "ACTIVE"
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteWebhook",
        "tags": [
          "Webhooks"
        ],
        "summary": "Apagar um endereço",
        "description": "Para de entregar e apaga o endereço.",
        "x-summary-en": "Delete an endpoint",
        "x-description-en": "Stops delivering and deletes the endpoint.",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Id do endereço (`wh_…`).",
            "schema": {
              "type": "string",
              "description": "Id do endereço (`wh_…`).",
              "x-description-en": "Endpoint id (`wh_…`)."
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Apagar um endereço",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Webhook",
                      "description": "O endereço apagado.",
                      "x-description-en": "The deleted endpoint."
                    },
                    "result": {
                      "type": "object",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome.",
                      "properties": {
                        "outcome": {
                          "type": "string",
                          "description": "`DELETED`.",
                          "x-description-en": "`DELETED`."
                        }
                      },
                      "required": [
                        "outcome"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "wh_9c8b7a6f5e4d3c2b",
                    "url": "https://crm.suaimobiliaria.com.br/imobyflow/eventos",
                    "types": [],
                    "description": "CRM — produção",
                    "status": "ACTIVE",
                    "disabledAt": null,
                    "disabledReason": null,
                    "secretRotatedAt": null,
                    "previousSecretValidUntil": null,
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-01T13:20:00.000Z"
                  },
                  "result": {
                    "outcome": "DELETED"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webhooks/{webhookId}/rotate-secret": {
      "post": {
        "operationId": "rotateWebhookSecret",
        "tags": [
          "Webhooks"
        ],
        "summary": "Trocar o segredo",
        "description": "Gera um segredo novo, devolvido UMA vez. O anterior segue assinando junto por 24 horas — dá tempo de trocar no seu sistema sem perder evento. Sem `Idempotency-Key`.",
        "x-summary-en": "Rotate the secret",
        "x-description-en": "Generates a new secret, returned ONCE. The previous one keeps signing alongside for 24 hours — time to switch it in your system without losing events. No `Idempotency-Key`.",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Id do endereço (`wh_…`).",
            "schema": {
              "type": "string",
              "description": "Id do endereço (`wh_…`).",
              "x-description-en": "Endpoint id (`wh_…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Trocar o segredo",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Webhook",
                      "description": "O endereço.",
                      "x-description-en": "The endpoint."
                    },
                    "secret": {
                      "type": "string",
                      "description": "O segredo novo.",
                      "x-description-en": "The new secret."
                    }
                  },
                  "required": [
                    "data",
                    "secret"
                  ]
                },
                "example": {
                  "data": {
                    "id": "wh_9c8b7a6f5e4d3c2b",
                    "url": "https://crm.suaimobiliaria.com.br/imobyflow/eventos",
                    "types": [],
                    "description": "CRM — produção",
                    "status": "ACTIVE",
                    "disabledAt": null,
                    "disabledReason": null,
                    "secretRotatedAt": "2026-10-02T16:45:12.000Z",
                    "previousSecretValidUntil": "2026-10-03T16:45:12.000Z",
                    "createdAt": "2026-10-01T13:20:00.000Z",
                    "updatedAt": "2026-10-01T13:20:00.000Z"
                  },
                  "secret": "whsec_Hlmukgg3JG2Rb/ZqcR1wkYp5iy3AxDefBzk+bBHF5HM="
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webhooks/{webhookId}/test": {
      "post": {
        "operationId": "testWebhook",
        "tags": [
          "Webhooks"
        ],
        "summary": "Mandar um evento de teste",
        "description": "Entrega um `webhook.test` AGORA, assinado, e devolve o que o seu sistema respondeu.",
        "x-summary-en": "Send a test event",
        "x-description-en": "Delivers a `webhook.test` NOW, signed, and returns what your system answered.",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Id do endereço (`wh_…`).",
            "schema": {
              "type": "string",
              "description": "Id do endereço (`wh_…`).",
              "x-description-en": "Endpoint id (`wh_…`)."
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mandar um evento de teste",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/WebhookTestResult",
                      "description": "O resultado.",
                      "x-description-en": "The result."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "delivered": true,
                    "statusCode": 200,
                    "error": null,
                    "ms": 406
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webhooks/{webhookId}/deliveries": {
      "get": {
        "operationId": "listWebhookDeliveries",
        "tags": [
          "Webhooks"
        ],
        "summary": "Entregas de um endereço",
        "description": "As entregas, mais novas antes, com o status, as tentativas e o último código.",
        "x-summary-en": "An endpoint's deliveries",
        "x-description-en": "The deliveries, newest first, with status, attempts and the last status code.",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "invalid_param",
          "invalid_cursor",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Id do endereço (`wh_…`).",
            "schema": {
              "type": "string",
              "description": "Id do endereço (`wh_…`).",
              "x-description-en": "Endpoint id (`wh_…`)."
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página: de 1 a 200 (padrão 50).",
            "schema": {
              "type": "integer",
              "description": "Itens por página: de 1 a 200 (padrão 50).",
              "x-description-en": "Items per page: 1 to 200 (default 50).",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
            "schema": {
              "type": "string",
              "description": "O `nextCursor` da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.",
              "x-description-en": "The `nextCursor` from the previous page. The list is over when it comes back null. It is only valid for this route and this account."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entregas de um endereço",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Uma página da lista.",
                  "x-description-en": "One page of the list.",
                  "properties": {
                    "data": {
                      "type": "array",
                      "description": "As entregas.",
                      "x-description-en": "The deliveries.",
                      "items": {
                        "$ref": "#/components/schemas/Delivery",
                        "description": "Item.",
                        "x-description-en": "Item."
                      }
                    },
                    "nextCursor": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Cursor da próxima página (nulo = acabou).",
                      "x-description-en": "Next page cursor (null = done)."
                    }
                  },
                  "required": [
                    "data",
                    "nextCursor"
                  ]
                },
                "example": {
                  "data": [
                    {
                      "id": "dlv_20261002164512000_evt_4f1c9a7e2b3d8c6a5e4f1b2c",
                      "eventId": "evt_4f1c9a7e2b3d8c6a5e4f1b2c",
                      "type": "property.updated",
                      "status": "DELIVERED",
                      "attempts": 1,
                      "lastStatusCode": 200,
                      "lastError": null,
                      "lastAttemptAt": "2026-10-02T16:45:12.000Z",
                      "nextAttemptAt": null,
                      "deliveredAt": "2026-10-02T16:45:12.000Z",
                      "createdAt": "2026-10-02T16:45:12.000Z"
                    }
                  ],
                  "nextCursor": null
                }
              }
            }
          },
          "400": {
            "description": "`invalid_param` — Parâmetro inválido\n`invalid_cursor` — Cursor inválido — recomece a listagem sem ele\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_cursor": {
                    "summary": "Cursor inválido — recomece a listagem sem ele",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-cursor",
                      "title": "Cursor inválido — recomece a listagem sem ele",
                      "status": 400,
                      "code": "invalid_cursor",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webhooks/{webhookId}/deliveries/{deliveryId}/retry": {
      "post": {
        "operationId": "retryWebhookDelivery",
        "tags": [
          "Webhooks"
        ],
        "summary": "Reenviar uma entrega",
        "description": "Uma nova rodada de tentativas para a mesma entrega — com o MESMO `webhook-id`, então o seu sistema reconhece a repetição. A que já está agendada responde `ALREADY_SCHEDULED`.",
        "x-summary-en": "Redeliver",
        "x-description-en": "A new round of attempts for the same delivery — with the SAME `webhook-id`, so your system recognizes the repeat. One already scheduled returns `ALREADY_SCHEDULED`.",
        "x-scope": "webhooks:manage",
        "x-error-codes": [
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Id do endereço (`wh_…`).",
            "schema": {
              "type": "string",
              "description": "Id do endereço (`wh_…`).",
              "x-description-en": "Endpoint id (`wh_…`)."
            }
          },
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "description": "Id da entrega (`dlv_…`).",
            "schema": {
              "type": "string",
              "description": "Id da entrega (`dlv_…`).",
              "x-description-en": "Delivery id (`dlv_…`)."
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reenviar uma entrega",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Delivery",
                      "description": "A entrega.",
                      "x-description-en": "The delivery."
                    },
                    "result": {
                      "type": "object",
                      "description": "O desfecho.",
                      "x-description-en": "The outcome.",
                      "properties": {
                        "outcome": {
                          "type": "string",
                          "description": "`SCHEDULED` ou `ALREADY_SCHEDULED`.",
                          "x-description-en": "`SCHEDULED` or `ALREADY_SCHEDULED`.",
                          "enum": [
                            "SCHEDULED",
                            "ALREADY_SCHEDULED"
                          ]
                        }
                      },
                      "required": [
                        "outcome"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "result"
                  ]
                },
                "example": {
                  "data": {
                    "id": "dlv_20261002164512000_evt_4f1c9a7e2b3d8c6a5e4f1b2c",
                    "eventId": "evt_4f1c9a7e2b3d8c6a5e4f1b2c",
                    "type": "property.updated",
                    "status": "PENDING",
                    "attempts": 0,
                    "lastStatusCode": 200,
                    "lastError": null,
                    "lastAttemptAt": "2026-10-02T16:45:12.000Z",
                    "nextAttemptAt": null,
                    "deliveredAt": "2026-10-02T16:45:12.000Z",
                    "createdAt": "2026-10-02T16:45:12.000Z"
                  },
                  "result": {
                    "outcome": "SCHEDULED"
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/properties/batch": {
      "post": {
        "operationId": "createPropertyBatch",
        "tags": [
          "Lotes"
        ],
        "summary": "Lote de imóveis",
        "description": "Até 500 imóveis e 4 MB numa chamada. Cada item é o PUT pelo código (`externalRef` obrigatório) — as mesmas regras, os mesmos desfechos. Item mal formado volta `REJECTED` e não barra os outros; o mesmo código duas vezes no lote é recusado. Responde 202 na hora e processa no ritmo da plataforma (4 itens por segundo): 500 itens levam de 2 a 3 minutos.",
        "x-summary-en": "Batch of properties",
        "x-description-en": "Up to 500 properties and 4 MB in one call. Each item is the PUT by code (`externalRef` required) — same rules, same outcomes. A malformed item comes back `REJECTED` and does not block the others; the same code twice in a batch is refused. Answers 202 right away and processes at the platform pace (4 items per second): 500 items take 2 to 3 minutes.",
        "x-scope": "properties:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Lote de imóveis",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/BatchCreated",
                      "description": "O lote recebido.",
                      "x-description-en": "The received batch."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "b-4c1d9e2f7a3b8c6d",
                    "type": "properties",
                    "status": "QUEUED",
                    "total": 1,
                    "accepted": 1,
                    "rejected": 0,
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "O lote.",
                "x-description-en": "The batch.",
                "properties": {
                  "items": {
                    "type": "array",
                    "description": "Os itens (1 a 500).",
                    "x-description-en": "The items (1 to 500).",
                    "maxItems": 500,
                    "items": {
                      "$ref": "#/components/schemas/PropertyInput",
                      "description": "Item, com `externalRef`.",
                      "x-description-en": "Item, with `externalRef`."
                    }
                  }
                },
                "required": [
                  "items"
                ],
                "additionalProperties": false
              },
              "example": {
                "items": [
                  {
                    "externalRef": "AP1234",
                    "title": "Apartamento 3 quartos no Bigorrilho",
                    "type": "APARTAMENTO",
                    "purposes": [
                      "VENDA"
                    ],
                    "salePrice": 890000,
                    "address": {
                      "cityId": "4106902",
                      "neighborhoodSlug": "bigorrilho",
                      "street": "Rua Padre Anchieta",
                      "number": "1500",
                      "complement": "Ap 82"
                    },
                    "bedrooms": 3,
                    "suites": 1,
                    "bathrooms": 2,
                    "parkingSpots": 2,
                    "area": 98,
                    "photos": [
                      "https://www.suaimobiliaria.com.br/fotos/AP1234/1.jpg",
                      "https://www.suaimobiliaria.com.br/fotos/AP1234/2.jpg"
                    ]
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/properties/batch/{batchId}": {
      "get": {
        "operationId": "getPropertyBatch",
        "tags": [
          "Lotes"
        ],
        "summary": "Acompanhar o lote",
        "description": "O status, a contagem e o desfecho de cada item, na ordem do pedido. O lote fica disponível por 7 dias.",
        "x-summary-en": "Track the batch",
        "x-description-en": "The status, counts and each item outcome, in request order. The batch is available for 7 days.",
        "x-scope": "properties:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "batchId",
            "in": "path",
            "required": true,
            "description": "Id do lote (`b-…`).",
            "schema": {
              "type": "string",
              "description": "Id do lote (`b-…`).",
              "x-description-en": "Batch id (`b-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Acompanhar o lote",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Batch",
                      "description": "O lote.",
                      "x-description-en": "The batch."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "b-4c1d9e2f7a3b8c6d",
                    "type": "properties",
                    "status": "DONE",
                    "dryRun": false,
                    "total": 1,
                    "processed": 1,
                    "counts": {
                      "UPDATED": 1
                    },
                    "createdAt": "2026-10-02T16:45:12.000Z",
                    "startedAt": "2026-10-02T16:45:12.000Z",
                    "finishedAt": "2026-10-02T16:45:12.000Z",
                    "results": [
                      {
                        "index": 0,
                        "externalRef": "AP1234",
                        "outcome": "UPDATED",
                        "id": "prop-3f9a1c2b7d4e",
                        "code": null,
                        "detail": null,
                        "invalidParams": null,
                        "photos": "UNCHANGED"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/leads/batch": {
      "post": {
        "operationId": "createLeadBatch",
        "tags": [
          "Lotes"
        ],
        "summary": "Lote de clientes",
        "description": "Até 500 clientes e 4 MB numa chamada. Cada item é o PUT pelo código (`externalRef` obrigatório) — as mesmas regras, os mesmos desfechos. Item mal formado volta `REJECTED` e não barra os outros; o mesmo código duas vezes no lote é recusado. Responde 202 na hora e processa no ritmo da plataforma (4 itens por segundo): 500 itens levam de 2 a 3 minutos.",
        "x-summary-en": "Batch of clients",
        "x-description-en": "Up to 500 clients and 4 MB in one call. Each item is the PUT by code (`externalRef` required) — same rules, same outcomes. A malformed item comes back `REJECTED` and does not block the others; the same code twice in a batch is refused. Answers 202 right away and processes at the platform pace (4 items per second): 500 items take 2 to 3 minutes.",
        "x-scope": "leads:write",
        "x-error-codes": [
          "invalid_body",
          "invalid_param",
          "payload_too_large",
          "invalid_idempotency_key",
          "idempotency_key_reused",
          "idempotency_in_progress",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": false,
            "description": "`true` = modo ensaio: valida e diz o que aconteceria, sem gravar nada.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Repetir o MESMO pedido com a MESMA chave em 24 h devolve a mesma resposta, sem gravar de novo (`Idempotent-Replayed: true`).",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Lote de clientes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/BatchCreated",
                      "description": "O lote recebido.",
                      "x-description-en": "The received batch."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "b-4c1d9e2f7a3b8c6d",
                    "type": "leads",
                    "status": "QUEUED",
                    "total": 1,
                    "accepted": 1,
                    "rejected": 0,
                    "dryRun": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "`invalid_body` — Corpo inválido — envie um objeto JSON\n`invalid_param` — Parâmetro inválido\n`invalid_idempotency_key` — Idempotency-Key inválida (até 100 caracteres visíveis)\n`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "invalid_body": {
                    "summary": "Corpo inválido — envie um objeto JSON",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-body",
                      "title": "Corpo inválido — envie um objeto JSON",
                      "status": 400,
                      "code": "invalid_body",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_param": {
                    "summary": "Parâmetro inválido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-param",
                      "title": "Parâmetro inválido",
                      "status": 400,
                      "code": "invalid_param",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "invalid_idempotency_key": {
                    "summary": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/invalid-idempotency-key",
                      "title": "Idempotency-Key inválida (até 100 caracteres visíveis)",
                      "status": 400,
                      "code": "invalid_idempotency_key",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "`idempotency_in_progress` — Um pedido com esta Idempotency-Key ainda está em andamento",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_in_progress": {
                    "summary": "Um pedido com esta Idempotency-Key ainda está em andamento",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-in-progress",
                      "title": "Um pedido com esta Idempotency-Key ainda está em andamento",
                      "status": 409,
                      "code": "idempotency_in_progress",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "`payload_too_large` — Corpo grande demais",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "payload_too_large": {
                    "summary": "Corpo grande demais",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/payload-too-large",
                      "title": "Corpo grande demais",
                      "status": 413,
                      "code": "payload_too_large",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`idempotency_key_reused` — Idempotency-Key já usada com outro pedido",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "idempotency_key_reused": {
                    "summary": "Idempotency-Key já usada com outro pedido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/idempotency-key-reused",
                      "title": "Idempotency-Key já usada com outro pedido",
                      "status": 422,
                      "code": "idempotency_key_reused",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "O lote.",
                "x-description-en": "The batch.",
                "properties": {
                  "items": {
                    "type": "array",
                    "description": "Os itens (1 a 500).",
                    "x-description-en": "The items (1 to 500).",
                    "maxItems": 500,
                    "items": {
                      "$ref": "#/components/schemas/LeadInput",
                      "description": "Item, com `externalRef`.",
                      "x-description-en": "Item, with `externalRef`."
                    }
                  }
                },
                "required": [
                  "items"
                ],
                "additionalProperties": false
              },
              "example": {
                "items": [
                  {
                    "externalRef": "CLI-889",
                    "name": "Carlos Pereira",
                    "phones": [
                      {
                        "number": "(41) 99999-8888",
                        "isWhatsApp": true
                      }
                    ],
                    "email": "carlos@example.com",
                    "status": "ATTENDING",
                    "ownerEmail": "marina@suaimobiliaria.com.br",
                    "interest": {
                      "purposes": [
                        "VENDA"
                      ],
                      "propertyTypes": [
                        "APARTAMENTO"
                      ],
                      "locations": [
                        {
                          "cityId": "4106902",
                          "neighborhoodSlug": "bigorrilho"
                        }
                      ],
                      "salePriceMax": 950000,
                      "bedrooms": 3
                    },
                    "lastActivityAt": "2026-10-02T15:00:00Z",
                    "consentGiven": true
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/leads/batch/{batchId}": {
      "get": {
        "operationId": "getLeadBatch",
        "tags": [
          "Lotes"
        ],
        "summary": "Acompanhar o lote",
        "description": "O status, a contagem e o desfecho de cada item, na ordem do pedido. O lote fica disponível por 7 dias.",
        "x-summary-en": "Track the batch",
        "x-description-en": "The status, counts and each item outcome, in request order. The batch is available for 7 days.",
        "x-scope": "leads:read",
        "x-error-codes": [
          "not_found",
          "unauthorized",
          "access_not_active",
          "IP_NOT_ALLOWED",
          "ACCOUNT_INACTIVE",
          "NOT_REQUESTED",
          "PENDING",
          "INFO_REQUESTED",
          "DENIED",
          "SUSPENDED",
          "REVOKED",
          "PLAN_NOT_ELIGIBLE",
          "SUBSCRIPTION_INACTIVE",
          "PILOT_EXPIRED",
          "scope_missing",
          "route_not_found",
          "method_not_allowed",
          "rate_limited",
          "monthly_quota_exceeded",
          "internal",
          "upstream_unavailable",
          "authorizer_failure",
          "bad_request",
          "access_denied"
        ],
        "parameters": [
          {
            "name": "batchId",
            "in": "path",
            "required": true,
            "description": "Id do lote (`b-…`).",
            "schema": {
              "type": "string",
              "description": "Id do lote (`b-…`).",
              "x-description-en": "Batch id (`b-…`)."
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "description": "`pt-BR` (padrão) ou `en` — a língua dos rótulos e das mensagens de erro.",
            "schema": {
              "type": "string",
              "example": "pt-BR"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Acompanhar o lote",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A resposta.",
                  "x-description-en": "The response.",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Batch",
                      "description": "O lote.",
                      "x-description-en": "The batch."
                    }
                  },
                  "required": [
                    "data"
                  ]
                },
                "example": {
                  "data": {
                    "id": "b-4c1d9e2f7a3b8c6d",
                    "type": "leads",
                    "status": "DONE",
                    "dryRun": false,
                    "total": 1,
                    "processed": 1,
                    "counts": {
                      "UPDATED": 1
                    },
                    "createdAt": "2026-10-02T16:45:12.000Z",
                    "startedAt": "2026-10-02T16:45:12.000Z",
                    "finishedAt": "2026-10-02T16:45:12.000Z",
                    "results": [
                      {
                        "index": 0,
                        "externalRef": "CLI-889",
                        "outcome": "UPDATED",
                        "id": "lead-7c2e9a1b3d5f",
                        "code": null,
                        "detail": null,
                        "invalidParams": null,
                        "photos": null
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "`bad_request` — Requisição recusada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "bad_request": {
                    "summary": "Requisição recusada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/bad-request",
                      "title": "Requisição recusada",
                      "status": 400,
                      "code": "bad_request",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "`unauthorized` — Chave ausente, inválida, revogada ou vencida",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "unauthorized": {
                    "summary": "Chave ausente, inválida, revogada ou vencida",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/unauthorized",
                      "title": "Chave ausente, inválida, revogada ou vencida",
                      "status": 401,
                      "code": "unauthorized",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "`access_not_active` — A API desta conta não está ativa\n`IP_NOT_ALLOWED` — Endereço de origem fora da lista da chave\n`ACCOUNT_INACTIVE` — Conta inativa\n`NOT_REQUESTED` — API não pedida para esta conta\n`PENDING` — Pedido de acesso em análise\n`INFO_REQUESTED` — Pedido de acesso aguardando informações\n`DENIED` — Pedido de acesso recusado\n`SUSPENDED` — Acesso à API suspenso\n`REVOKED` — Acesso à API encerrado\n`PLAN_NOT_ELIGIBLE` — Plano sem acesso à API\n`SUBSCRIPTION_INACTIVE` — Assinatura em atraso\n`PILOT_EXPIRED` — Período de piloto encerrado\n`scope_missing` — A chave não tem a permissão desta rota\n`access_denied` — Acesso negado",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "access_not_active": {
                    "summary": "A API desta conta não está ativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-not-active",
                      "title": "A API desta conta não está ativa",
                      "status": 403,
                      "code": "access_not_active",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "IP_NOT_ALLOWED": {
                    "summary": "Endereço de origem fora da lista da chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/ip-not-allowed",
                      "title": "Endereço de origem fora da lista da chave",
                      "status": 403,
                      "code": "IP_NOT_ALLOWED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "ACCOUNT_INACTIVE": {
                    "summary": "Conta inativa",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/account-inactive",
                      "title": "Conta inativa",
                      "status": 403,
                      "code": "ACCOUNT_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "NOT_REQUESTED": {
                    "summary": "API não pedida para esta conta",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-requested",
                      "title": "API não pedida para esta conta",
                      "status": 403,
                      "code": "NOT_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PENDING": {
                    "summary": "Pedido de acesso em análise",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pending",
                      "title": "Pedido de acesso em análise",
                      "status": 403,
                      "code": "PENDING",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "INFO_REQUESTED": {
                    "summary": "Pedido de acesso aguardando informações",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/info-requested",
                      "title": "Pedido de acesso aguardando informações",
                      "status": 403,
                      "code": "INFO_REQUESTED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "DENIED": {
                    "summary": "Pedido de acesso recusado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/denied",
                      "title": "Pedido de acesso recusado",
                      "status": 403,
                      "code": "DENIED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUSPENDED": {
                    "summary": "Acesso à API suspenso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/suspended",
                      "title": "Acesso à API suspenso",
                      "status": 403,
                      "code": "SUSPENDED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "REVOKED": {
                    "summary": "Acesso à API encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/revoked",
                      "title": "Acesso à API encerrado",
                      "status": 403,
                      "code": "REVOKED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PLAN_NOT_ELIGIBLE": {
                    "summary": "Plano sem acesso à API",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/plan-not-eligible",
                      "title": "Plano sem acesso à API",
                      "status": 403,
                      "code": "PLAN_NOT_ELIGIBLE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "SUBSCRIPTION_INACTIVE": {
                    "summary": "Assinatura em atraso",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/subscription-inactive",
                      "title": "Assinatura em atraso",
                      "status": 403,
                      "code": "SUBSCRIPTION_INACTIVE",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "PILOT_EXPIRED": {
                    "summary": "Período de piloto encerrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/pilot-expired",
                      "title": "Período de piloto encerrado",
                      "status": 403,
                      "code": "PILOT_EXPIRED",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "scope_missing": {
                    "summary": "A chave não tem a permissão desta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/scope-missing",
                      "title": "A chave não tem a permissão desta rota",
                      "status": 403,
                      "code": "scope_missing",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "access_denied": {
                    "summary": "Acesso negado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/access-denied",
                      "title": "Acesso negado",
                      "status": 403,
                      "code": "access_denied",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`not_found` — Não encontrado\n`route_not_found` — Rota não encontrada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "not_found": {
                    "summary": "Não encontrado",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/not-found",
                      "title": "Não encontrado",
                      "status": 404,
                      "code": "not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "route_not_found": {
                    "summary": "Rota não encontrada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/route-not-found",
                      "title": "Rota não encontrada",
                      "status": 404,
                      "code": "route_not_found",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "`method_not_allowed` — Método não permitido nesta rota",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "method_not_allowed": {
                    "summary": "Método não permitido nesta rota",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/method-not-allowed",
                      "title": "Método não permitido nesta rota",
                      "status": 405,
                      "code": "method_not_allowed",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "`rate_limited` — Limite de chamadas por segundo atingido\n`monthly_quota_exceeded` — Cota do mês esgotada",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "rate_limited": {
                    "summary": "Limite de chamadas por segundo atingido",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/rate-limited",
                      "title": "Limite de chamadas por segundo atingido",
                      "status": 429,
                      "code": "rate_limited",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "monthly_quota_exceeded": {
                    "summary": "Cota do mês esgotada",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/monthly-quota-exceeded",
                      "title": "Cota do mês esgotada",
                      "status": 429,
                      "code": "monthly_quota_exceeded",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "`internal` — Erro interno\n`authorizer_failure` — Falha temporária ao validar a chave",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "internal": {
                    "summary": "Erro interno",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/internal",
                      "title": "Erro interno",
                      "status": 500,
                      "code": "internal",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  },
                  "authorizer_failure": {
                    "summary": "Falha temporária ao validar a chave",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/authorizer-failure",
                      "title": "Falha temporária ao validar a chave",
                      "status": 500,
                      "code": "authorizer_failure",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "`upstream_unavailable` — Serviço temporariamente indisponível",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                },
                "examples": {
                  "upstream_unavailable": {
                    "summary": "Serviço temporariamente indisponível",
                    "value": {
                      "type": "https://imobyflow.com.br/desenvolvedores/erros/upstream-unavailable",
                      "title": "Serviço temporariamente indisponível",
                      "status": 503,
                      "code": "upstream_unavailable",
                      "requestId": "8c1f0a4e-2b7d-4c39-9e51-6a0d3f2b1c7e"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "imob_live_…",
        "description": "A chave da conta, criada no painel (Minha conta › Integração por API). Só no cabeçalho, nunca na URL."
      }
    },
    "schemas": {
      "Problem": {
        "type": "object",
        "description": "Erro no formato RFC 9457 (`application/problem+json`).",
        "x-description-en": "Error in RFC 9457 format (`application/problem+json`).",
        "properties": {
          "type": {
            "type": "string",
            "description": "Endereço da página deste erro, com a causa e o conserto.",
            "x-description-en": "URL of this error page, with the cause and the fix."
          },
          "title": {
            "type": "string",
            "description": "O nome do erro, na língua do `Accept-Language`.",
            "x-description-en": "Error name, in the `Accept-Language` language."
          },
          "status": {
            "type": "integer",
            "description": "O código HTTP.",
            "x-description-en": "The HTTP status code."
          },
          "code": {
            "type": "string",
            "description": "Código estável — é por ele que o seu sistema decide o que fazer.",
            "x-description-en": "Stable code — your system should branch on it."
          },
          "requestId": {
            "type": "string",
            "description": "Id da requisição. Mande junto quando falar com o suporte.",
            "x-description-en": "Request id. Include it when contacting support."
          },
          "detail": {
            "type": "string",
            "description": "Explicação do caso (quando houver).",
            "x-description-en": "Explanation of this case (when available)."
          },
          "invalidParams": {
            "type": "array",
            "description": "Todos os problemas do pedido de uma vez — não só o primeiro.",
            "x-description-en": "All problems in the request at once — not just the first one.",
            "items": {
              "type": "object",
              "description": "Um problema. Pode trazer mais chaves (`allowed`, `suggestions`, o id que já existe).",
              "x-description-en": "One problem. It may carry more keys (`allowed`, `suggestions`, the existing id).",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "O campo, com o caminho (`address.city`, `phones[0].number`).",
                  "x-description-en": "The field, with its path (`address.city`, `phones[0].number`)."
                },
                "reason": {
                  "type": "string",
                  "description": "O motivo, em código (`required`, `unknown_field`, `one_of`…).",
                  "x-description-en": "The reason, as a code (`required`, `unknown_field`, `one_of`…)."
                }
              },
              "required": [
                "name",
                "reason"
              ],
              "additionalProperties": true
            }
          }
        },
        "required": [
          "type",
          "title",
          "status",
          "code",
          "requestId"
        ]
      },
      "Limits": {
        "type": "object",
        "description": "Os limites da faixa de uso da conta.",
        "x-description-en": "The account's usage tier limits.",
        "properties": {
          "ratePerSecond": {
            "type": "integer",
            "description": "Chamadas por segundo.",
            "x-description-en": "Calls per second."
          },
          "burst": {
            "type": "integer",
            "description": "Pico tolerado num instante.",
            "x-description-en": "Short burst allowed."
          },
          "monthlyQuota": {
            "type": "integer",
            "description": "Chamadas por mês (mês de calendário, UTC).",
            "x-description-en": "Calls per month (calendar month, UTC)."
          },
          "maxKeys": {
            "type": "integer",
            "description": "Chaves ativas ao mesmo tempo.",
            "x-description-en": "Active keys at the same time."
          },
          "maxWebhooks": {
            "type": "integer",
            "description": "Endereços de webhook.",
            "x-description-en": "Webhook endpoints."
          }
        },
        "required": [
          "ratePerSecond",
          "burst",
          "monthlyQuota",
          "maxKeys",
          "maxWebhooks"
        ]
      },
      "Me": {
        "type": "object",
        "description": "Quem é a conta, o que a chave pode fazer e quanto da cota já foi usado.",
        "x-description-en": "Who the account is, what the key can do and how much of the quota is used.",
        "properties": {
          "account": {
            "type": "object",
            "description": "A conta dona da chave.",
            "x-description-en": "The account that owns the key.",
            "properties": {
              "id": {
                "type": "string",
                "description": "Id da conta.",
                "x-description-en": "Account id."
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Nome da empresa.",
                "x-description-en": "Company name."
              },
              "type": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "`IMOBILIARIA` ou `CONSTRUTORA`.",
                "x-description-en": "`IMOBILIARIA` (agency) or `CONSTRUTORA` (developer)."
              },
              "plan": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Código do plano.",
                "x-description-en": "Plan code."
              }
            },
            "required": [
              "id",
              "name",
              "type",
              "plan"
            ]
          },
          "access": {
            "type": "object",
            "description": "A liberação da API.",
            "x-description-en": "API access.",
            "properties": {
              "status": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Estado da liberação (`APPROVED` quando vale).",
                "x-description-en": "Access status (`APPROVED` when valid)."
              },
              "tier": {
                "type": "string",
                "description": "Faixa de uso: `PADRAO` ou `AMPLIADA`.",
                "x-description-en": "Usage tier: `PADRAO` (standard) or `AMPLIADA` (extended)."
              },
              "pilotUntil": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Fim do período de piloto, quando houver.",
                "x-description-en": "End of the pilot period, if any.",
                "format": "date-time"
              },
              "limits": {
                "$ref": "#/components/schemas/Limits",
                "description": "Os limites que valem para a conta.",
                "x-description-en": "The limits that apply to the account."
              }
            },
            "required": [
              "status",
              "tier",
              "pilotUntil",
              "limits"
            ]
          },
          "key": {
            "type": "object",
            "description": "A chave usada nesta chamada.",
            "x-description-en": "The key used in this call.",
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Id da chave (não é o segredo).",
                "x-description-en": "Key id (not the secret)."
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Nome dado no painel.",
                "x-description-en": "Name given in the dashboard."
              },
              "scopes": {
                "type": "array",
                "description": "As permissões que valem para ESTA chave.",
                "x-description-en": "The permissions that apply to THIS key.",
                "items": {
                  "type": "string",
                  "description": "Permissão.",
                  "x-description-en": "Permission.",
                  "enum": [
                    "properties:read",
                    "properties:write",
                    "leads:read",
                    "leads:write",
                    "radar:read",
                    "radar:write",
                    "partnerships:read",
                    "partnerships:write",
                    "team:read",
                    "launches:read",
                    "launches:write",
                    "captacao:read",
                    "captacao:accept",
                    "events:read",
                    "webhooks:manage"
                  ]
                }
              },
              "expiresAt": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Quando a chave vence (sem prazo = nulo).",
                "x-description-en": "When the key expires (null = no expiry).",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "name",
              "scopes",
              "expiresAt"
            ]
          },
          "usage": {
            "type": "object",
            "description": "O uso do mês.",
            "x-description-en": "Monthly usage.",
            "properties": {
              "month": {
                "type": "string",
                "description": "O mês (`AAAA-MM`, UTC).",
                "x-description-en": "The month (`YYYY-MM`, UTC)."
              },
              "calls": {
                "type": "integer",
                "description": "Chamadas feitas no mês.",
                "x-description-en": "Calls made this month."
              },
              "monthlyQuota": {
                "type": "integer",
                "description": "A cota do mês.",
                "x-description-en": "The monthly quota."
              },
              "remaining": {
                "type": "integer",
                "description": "O que ainda cabe.",
                "x-description-en": "What is left."
              }
            },
            "required": [
              "month",
              "calls",
              "monthlyQuota",
              "remaining"
            ]
          },
          "properties": {
            "type": "object",
            "description": "A cota de imóveis do plano.",
            "x-description-en": "The plan's property quota.",
            "properties": {
              "active": {
                "type": "integer",
                "description": "Imóveis ativos agora.",
                "x-description-en": "Active properties right now."
              },
              "limit": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Teto de imóveis ativos do plano.",
                "x-description-en": "The plan's active-property cap."
              }
            },
            "required": [
              "active",
              "limit"
            ]
          }
        },
        "required": [
          "account",
          "access",
          "key",
          "usage",
          "properties"
        ]
      },
      "ValueLabel": {
        "type": "object",
        "description": "Um valor aceito e o seu rótulo.",
        "x-description-en": "An accepted value and its label.",
        "properties": {
          "value": {
            "type": "string",
            "description": "O valor que vai no campo.",
            "x-description-en": "The value to send in the field."
          },
          "label": {
            "type": "string",
            "description": "O rótulo, na língua do `Accept-Language`.",
            "x-description-en": "The label, in the `Accept-Language` language."
          }
        },
        "required": [
          "value",
          "label"
        ]
      },
      "PropertyTypeGroup": {
        "type": "object",
        "description": "Uma categoria de imóvel e os seus subtipos.",
        "x-description-en": "A property category and its subtypes.",
        "properties": {
          "category": {
            "type": "string",
            "description": "A categoria.",
            "x-description-en": "The category.",
            "enum": [
              "RESIDENCIAL",
              "COMERCIAL",
              "TERRENO",
              "RURAL"
            ]
          },
          "label": {
            "type": "string",
            "description": "Rótulo da categoria.",
            "x-description-en": "Category label."
          },
          "types": {
            "type": "array",
            "description": "Os subtipos da categoria — é o subtipo que vai em `type`.",
            "x-description-en": "The subtypes in the category — the subtype is what goes in `type`.",
            "items": {
              "$ref": "#/components/schemas/ValueLabel",
              "description": "Subtipo.",
              "x-description-en": "Subtype."
            }
          }
        },
        "required": [
          "category",
          "label",
          "types"
        ]
      },
      "ScopeInfo": {
        "type": "object",
        "description": "Uma permissão que uma chave pode ter.",
        "x-description-en": "A permission a key can have.",
        "properties": {
          "id": {
            "type": "string",
            "description": "A permissão.",
            "x-description-en": "The permission.",
            "enum": [
              "properties:read",
              "properties:write",
              "leads:read",
              "leads:write",
              "radar:read",
              "radar:write",
              "partnerships:read",
              "partnerships:write",
              "team:read",
              "launches:read",
              "launches:write",
              "captacao:read",
              "captacao:accept",
              "events:read",
              "webhooks:manage"
            ]
          },
          "group": {
            "type": "string",
            "description": "O grupo, para exibir.",
            "x-description-en": "The group, for display."
          },
          "label": {
            "type": "string",
            "description": "O nome, para exibir.",
            "x-description-en": "The name, for display."
          },
          "description": {
            "type": "string",
            "description": "O que ela permite.",
            "x-description-en": "What it allows."
          }
        },
        "required": [
          "id",
          "group",
          "label",
          "description"
        ]
      },
      "EventTypeInfo": {
        "type": "object",
        "description": "Um tipo de evento.",
        "x-description-en": "An event type.",
        "properties": {
          "type": {
            "type": "string",
            "description": "O tipo do evento.",
            "x-description-en": "The event type.",
            "enum": [
              "property.created",
              "property.updated",
              "property.deleted",
              "property.restored",
              "property.purged",
              "lead.created",
              "lead.updated",
              "lead.deleted",
              "lead.restored",
              "lead.purged",
              "radar.client_summary",
              "partnership.created",
              "partnership.updated",
              "captacao.offer_received",
              "captacao.offer_accepted",
              "captacao.offer_withdrawn"
            ]
          },
          "scope": {
            "type": "string",
            "description": "A permissão de leitura que dá acesso a ele.",
            "x-description-en": "The read permission that grants access to it.",
            "enum": [
              "properties:read",
              "properties:write",
              "leads:read",
              "leads:write",
              "radar:read",
              "radar:write",
              "partnerships:read",
              "partnerships:write",
              "team:read",
              "launches:read",
              "launches:write",
              "captacao:read",
              "captacao:accept",
              "events:read",
              "webhooks:manage"
            ]
          },
          "description": {
            "type": "string",
            "description": "O que ele avisa.",
            "x-description-en": "What it signals."
          }
        },
        "required": [
          "type",
          "scope",
          "description"
        ]
      },
      "City": {
        "type": "object",
        "description": "Uma cidade do catálogo.",
        "x-description-en": "A catalog city.",
        "properties": {
          "cityId": {
            "type": "string",
            "description": "Código do IBGE, 7 dígitos — a forma mais segura de mandar a cidade.",
            "x-description-en": "IBGE code, 7 digits — the safest way to send the city."
          },
          "name": {
            "type": "string",
            "description": "Nome da cidade.",
            "x-description-en": "City name."
          },
          "uf": {
            "type": "string",
            "description": "Estado (UF).",
            "x-description-en": "State (UF)."
          },
          "citySlug": {
            "type": "string",
            "description": "Identificador da cidade no catálogo.",
            "x-description-en": "City identifier in the catalog."
          }
        },
        "required": [
          "cityId",
          "name",
          "uf",
          "citySlug"
        ]
      },
      "Neighborhood": {
        "type": "object",
        "description": "Um bairro do catálogo.",
        "x-description-en": "A catalog neighborhood.",
        "properties": {
          "neighborhoodSlug": {
            "type": "string",
            "description": "O identificador do bairro — o valor de `neighborhoodSlug` na escrita.",
            "x-description-en": "The neighborhood identifier — the `neighborhoodSlug` value for writes."
          },
          "name": {
            "type": "string",
            "description": "Nome do bairro.",
            "x-description-en": "Neighborhood name."
          }
        },
        "required": [
          "neighborhoodSlug",
          "name"
        ]
      },
      "Address": {
        "type": "object",
        "description": "O endereço completo — o imóvel é da própria conta.",
        "x-description-en": "The full address — the property belongs to the account itself.",
        "properties": {
          "neighborhood": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome do bairro.",
            "x-description-en": "Neighborhood name."
          },
          "neighborhoodSlug": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bairro do catálogo. Nulo quando o bairro ainda não foi reconhecido — aí o imóvel fica fora das recomendações até a curadoria decidir.",
            "x-description-en": "Catalog neighborhood. Null when the neighborhood is not recognized yet — the property stays out of recommendations until curation decides."
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome da cidade.",
            "x-description-en": "City name."
          },
          "cityId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Código do IBGE.",
            "x-description-en": "IBGE code."
          },
          "citySlug": {
            "type": [
              "string",
              "null"
            ],
            "description": "Identificador da cidade no catálogo.",
            "x-description-en": "City identifier in the catalog."
          },
          "state": {
            "type": [
              "string",
              "null"
            ],
            "description": "Estado (UF).",
            "x-description-en": "State (UF)."
          },
          "street": {
            "type": [
              "string",
              "null"
            ],
            "description": "Rua.",
            "x-description-en": "Street."
          },
          "number": {
            "type": [
              "string",
              "null"
            ],
            "description": "Número.",
            "x-description-en": "Number."
          },
          "complement": {
            "type": [
              "string",
              "null"
            ],
            "description": "Complemento.",
            "x-description-en": "Complement."
          }
        },
        "required": [
          "neighborhood",
          "neighborhoodSlug",
          "city",
          "cityId",
          "citySlug",
          "state",
          "street",
          "number",
          "complement"
        ]
      },
      "AddressArea": {
        "type": "object",
        "description": "O endereço até o bairro.",
        "x-description-en": "The address down to the neighborhood.",
        "properties": {
          "neighborhood": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome do bairro.",
            "x-description-en": "Neighborhood name."
          },
          "neighborhoodSlug": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bairro do catálogo.",
            "x-description-en": "Catalog neighborhood."
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome da cidade.",
            "x-description-en": "City name."
          },
          "cityId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Código do IBGE.",
            "x-description-en": "IBGE code."
          },
          "citySlug": {
            "type": [
              "string",
              "null"
            ],
            "description": "Identificador da cidade no catálogo.",
            "x-description-en": "City identifier in the catalog."
          },
          "state": {
            "type": [
              "string",
              "null"
            ],
            "description": "Estado (UF).",
            "x-description-en": "State (UF)."
          }
        },
        "required": [
          "neighborhood",
          "neighborhoodSlug",
          "city",
          "cityId",
          "citySlug",
          "state"
        ]
      },
      "PartnershipTerms": {
        "type": "object",
        "description": "As condições para parceiros.",
        "x-description-en": "Terms for partners.",
        "properties": {
          "commissionPercent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Comissão de venda oferecida a parceiros, em %.",
            "x-description-en": "Sale commission offered to partners, in %."
          },
          "rentCommissionMonths": {
            "type": [
              "number",
              "null"
            ],
            "description": "Comissão de locação, em aluguéis.",
            "x-description-en": "Rent commission, in months of rent."
          },
          "splitListingPercent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Parte da comissão que fica com quem captou, em %.",
            "x-description-en": "Share of the commission kept by the listing side, in %."
          }
        },
        "required": [
          "commissionPercent",
          "rentCommissionMonths",
          "splitListingPercent"
        ]
      },
      "PropertyRadar": {
        "type": "object",
        "description": "A situação do imóvel nas recomendações (Radar).",
        "x-description-en": "The property's status in recommendations (Radar).",
        "properties": {
          "eligible": {
            "type": "boolean",
            "description": "Entra nas recomendações agora (ativo e sem pendência).",
            "x-description-en": "Is in recommendations right now (active and with no pending item)."
          },
          "pending": {
            "type": "array",
            "description": "O que falta para entrar nas recomendações. A capa é obrigatória.",
            "x-description-en": "What is missing to enter recommendations. A cover photo is required.",
            "items": {
              "type": "string",
              "description": "Código da pendência.",
              "x-description-en": "Pending item code.",
              "enum": [
                "CITY_MISSING",
                "CITY_NOT_IN_CATALOG",
                "NEIGHBORHOOD_MISSING",
                "NEIGHBORHOOD_NOT_IN_CATALOG",
                "TYPE_MISSING",
                "PURPOSE_MISSING",
                "SALE_PRICE_MISSING",
                "RENT_PRICE_MISSING",
                "COVER_PHOTO_MISSING",
                "OTHER"
              ]
            }
          },
          "labels": {
            "type": "array",
            "description": "As mesmas pendências, por extenso.",
            "x-description-en": "The same pending items, spelled out.",
            "items": {
              "type": "string",
              "description": "Rótulo.",
              "x-description-en": "Label."
            }
          }
        },
        "required": [
          "eligible",
          "pending",
          "labels"
        ]
      },
      "Curation": {
        "type": "object",
        "description": "A análise do imóvel pela ImobyFlow antes de ele aparecer para parceiros. Imóvel novo pela API nasce em análise.",
        "x-description-en": "ImobyFlow's review before the property is shown to partners. New properties from the API start under review.",
        "properties": {
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "`PENDING`, `APPROVED` ou `REJECTED`.",
            "x-description-en": "`PENDING`, `APPROVED` or `REJECTED`."
          },
          "reason": {
            "type": [
              "string",
              "null"
            ],
            "description": "O motivo da recusa, em código.",
            "x-description-en": "The rejection reason, as a code.",
            "enum": [
              "LANCAMENTO",
              "SEM_VALOR",
              "QUALIDADE_BAIXA",
              "NAO_ANGARIACAO",
              "MARCA_DAGUA",
              "FOTOS_INSUFICIENTES",
              "DADOS_INCOERENTES",
              "OUTRO",
              null
            ]
          },
          "label": {
            "type": [
              "string",
              "null"
            ],
            "description": "O motivo por extenso.",
            "x-description-en": "The reason, spelled out."
          }
        },
        "required": [
          "status",
          "reason",
          "label"
        ]
      },
      "Confirmation": {
        "type": "object",
        "description": "A régua dos 60 dias: imóvel não confirmado sai do ar. Gravar o imóvel pela API (ou confirmar) renova a data.",
        "x-description-en": "The 60-day rule: unconfirmed properties go offline. Writing the property through the API (or confirming it) renews the date.",
        "properties": {
          "lastConfirmedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Última confirmação de que segue disponível.",
            "x-description-en": "Last confirmation that it is still available.",
            "format": "date-time"
          },
          "dueAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando a confirmação vence (a cada 60 dias).",
            "x-description-en": "When the confirmation is due (every 60 days).",
            "format": "date-time"
          },
          "noticeAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando o aviso de confirmação foi mandado.",
            "x-description-en": "When the confirmation notice was sent.",
            "format": "date-time"
          },
          "offlineAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando sai do ar sem resposta (7 dias depois do aviso).",
            "x-description-en": "When it goes offline without an answer (7 days after the notice).",
            "format": "date-time"
          }
        },
        "required": [
          "lastConfirmedAt",
          "dueAt",
          "noticeAt",
          "offlineAt"
        ]
      },
      "LaunchBlock": {
        "type": "object",
        "description": "Dados de lançamento (empreendimento e tipologia).",
        "x-description-en": "New-development data (development and unit type).",
        "properties": {
          "constructionStage": {
            "type": [
              "string",
              "null"
            ],
            "description": "Estágio da obra.",
            "x-description-en": "Construction stage.",
            "enum": [
              "LAUNCH",
              "OFF_PLAN",
              "NEW",
              "READY",
              null
            ]
          },
          "deliveryDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Previsão de entrega.",
            "x-description-en": "Expected delivery."
          },
          "constructionProgress": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Andamento da obra, em %.",
            "x-description-en": "Construction progress, in %."
          },
          "unitsTotal": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Unidades no total.",
            "x-description-en": "Total units."
          },
          "unitsAvailable": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Unidades disponíveis.",
            "x-description-en": "Available units."
          },
          "unitsReserved": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Unidades reservadas.",
            "x-description-en": "Reserved units."
          },
          "unitsSold": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Unidades vendidas.",
            "x-description-en": "Sold units."
          },
          "floorPlans": {
            "type": "array",
            "description": "As plantas.",
            "x-description-en": "The floor plans.",
            "items": {
              "type": "string",
              "description": "Endereço da planta.",
              "x-description-en": "Floor plan URL."
            }
          }
        },
        "required": [
          "constructionStage",
          "deliveryDate",
          "constructionProgress",
          "unitsTotal",
          "unitsAvailable",
          "unitsReserved",
          "unitsSold",
          "floorPlans"
        ]
      },
      "PhotoSync": {
        "type": "object",
        "description": "O download das fotos mandadas por endereço. Ele acontece depois da resposta — é aqui que você vê se a galeria entrou.",
        "x-description-en": "Download of the photos sent by URL. It happens after the response — this is where you see whether the gallery made it.",
        "properties": {
          "state": {
            "type": "string",
            "description": "`QUEUED` (na fila), `DONE`, `PARTIAL` (algumas falharam), `FAILED` ou `NOT_QUEUED` (a fila recusou — o próximo pedido tenta de novo).",
            "x-description-en": "`QUEUED`, `DONE`, `PARTIAL` (some failed), `FAILED` or `NOT_QUEUED` (the queue refused — the next request retries)."
          },
          "requested": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Fotos pedidas.",
            "x-description-en": "Photos requested."
          },
          "ingested": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Fotos baixadas e gravadas.",
            "x-description-en": "Photos downloaded and stored."
          },
          "failed": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Fotos que falharam.",
            "x-description-en": "Photos that failed."
          },
          "queuedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando entrou na fila.",
            "x-description-en": "When it was queued.",
            "format": "date-time"
          },
          "finishedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando terminou.",
            "x-description-en": "When it finished.",
            "format": "date-time"
          }
        },
        "required": [
          "state",
          "requested",
          "ingested",
          "failed",
          "queuedAt",
          "finishedAt"
        ]
      },
      "Property": {
        "type": "object",
        "description": "Um imóvel da carteira da conta.",
        "x-description-en": "A property in the account's portfolio.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do imóvel.",
            "x-description-en": "Property id."
          },
          "externalRef": {
            "type": [
              "string",
              "null"
            ],
            "description": "O código do imóvel no SEU sistema.",
            "x-description-en": "The property's code in YOUR system."
          },
          "kind": {
            "type": "string",
            "description": "`PROPERTY` (avulso), `DEVELOPMENT` (empreendimento) ou `TYPOLOGY` (tipologia de um empreendimento).",
            "x-description-en": "`PROPERTY` (standalone), `DEVELOPMENT` (new development) or `TYPOLOGY` (unit type of a development).",
            "enum": [
              "PROPERTY",
              "DEVELOPMENT",
              "TYPOLOGY"
            ]
          },
          "developmentId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O empreendimento desta tipologia.",
            "x-description-en": "The development of this unit type."
          },
          "status": {
            "type": "string",
            "description": "Situação. `DELETED` = na lixeira (30 dias).",
            "x-description-en": "Status. `DELETED` = in the trash (30 days).",
            "enum": [
              "ACTIVE",
              "INACTIVE",
              "SOLD",
              "RENTED",
              "DELETED"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Subtipo (veja as listas de valores).",
            "x-description-en": "Subtype (see the reference lists).",
            "enum": [
              "APARTAMENTO",
              "CASA_RUA",
              "CASA_CONDOMINIO",
              "CASA_VILA",
              "STUDIO",
              "FLAT",
              "COBERTURA",
              "SALA_COMERCIAL",
              "LOJA_PONTO",
              "GALPAO",
              "PREDIO",
              "TERRENO_RUA",
              "TERRENO_CONDOMINIO",
              "CHACARA_SITIO",
              "FAZENDA",
              null
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ],
            "description": "Categoria do subtipo.",
            "x-description-en": "The subtype's category.",
            "enum": [
              "RESIDENCIAL",
              "COMERCIAL",
              "TERRENO",
              "RURAL",
              null
            ]
          },
          "purposes": {
            "type": "array",
            "description": "Finalidades: `VENDA`, `LOCACAO` ou as duas.",
            "x-description-en": "Purposes: `VENDA` (sale), `LOCACAO` (rent) or both.",
            "items": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose.",
              "enum": [
                "VENDA",
                "LOCACAO"
              ]
            }
          },
          "salePrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Preço de venda, em reais.",
            "x-description-en": "Sale price, in BRL."
          },
          "rentPrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aluguel mensal, em reais.",
            "x-description-en": "Monthly rent, in BRL."
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Título do anúncio.",
            "x-description-en": "Listing title."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Descrição, em texto corrido.",
            "x-description-en": "Description, as plain text."
          },
          "address": {
            "$ref": "#/components/schemas/Address",
            "description": "Endereço.",
            "x-description-en": "Address."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos.",
            "x-description-en": "Bedrooms."
          },
          "suites": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Suítes.",
            "x-description-en": "Suites."
          },
          "bathrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Banheiros.",
            "x-description-en": "Bathrooms."
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas de garagem.",
            "x-description-en": "Parking spots."
          },
          "area": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área privativa total, em m² — a que se compara entre imóveis.",
            "x-description-en": "Total private area, in m² — the comparable one."
          },
          "privateArea": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área coberta, em m² (só exibição).",
            "x-description-en": "Covered area, in m² (display only)."
          },
          "amenities": {
            "type": "array",
            "description": "Itens do imóvel e do condomínio.",
            "x-description-en": "Property and building amenities.",
            "items": {
              "type": "string",
              "description": "Item.",
              "x-description-en": "Item."
            }
          },
          "coverPhoto": {
            "type": [
              "string",
              "null"
            ],
            "description": "A capa (a 1ª foto). Sem capa o imóvel não entra nas recomendações.",
            "x-description-en": "The cover (1st photo). Without a cover the property is left out of recommendations."
          },
          "photos": {
            "type": "array",
            "description": "A galeria, na ordem.",
            "x-description-en": "The gallery, in order.",
            "items": {
              "type": "string",
              "description": "Endereço da foto.",
              "x-description-en": "Photo URL."
            }
          },
          "listingUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Endereço do anúncio no seu site.",
            "x-description-en": "Listing URL on your website."
          },
          "captador": {
            "type": [
              "object",
              "null"
            ],
            "description": "O corretor responsável da equipe.",
            "x-description-en": "The responsible broker on the team.",
            "properties": {
              "accountId": {
                "type": "string",
                "description": "Id do corretor.",
                "x-description-en": "Broker id."
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Nome.",
                "x-description-en": "Name."
              }
            },
            "required": [
              "accountId",
              "name"
            ]
          },
          "captadorName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome do captador em texto (quem não está na equipe).",
            "x-description-en": "Listing agent name as text (someone not on the team)."
          },
          "sharedToNetwork": {
            "type": "boolean",
            "description": "Compartilhado com parceiros.",
            "x-description-en": "Shared with partners."
          },
          "partnershipTerms": {
            "$ref": "#/components/schemas/PartnershipTerms",
            "description": "Condições para parceiros.",
            "x-description-en": "Partner terms."
          },
          "radar": {
            "$ref": "#/components/schemas/PropertyRadar",
            "description": "Situação nas recomendações.",
            "x-description-en": "Recommendation status."
          },
          "curation": {
            "$ref": "#/components/schemas/Curation",
            "description": "Análise da ImobyFlow.",
            "x-description-en": "ImobyFlow's review."
          },
          "confirmation": {
            "$ref": "#/components/schemas/Confirmation",
            "description": "A confirmação de disponibilidade.",
            "x-description-en": "Availability confirmation."
          },
          "inactiveReason": {
            "type": [
              "string",
              "null"
            ],
            "description": "Por que está arquivado (só com `status` = `INACTIVE`).",
            "x-description-en": "Why it is archived (only when `status` = `INACTIVE`)."
          },
          "deletedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi para a lixeira.",
            "x-description-en": "When it was moved to the trash.",
            "format": "date-time"
          },
          "launch": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LaunchBlock"
              },
              {
                "type": "null"
              }
            ],
            "description": "Dados de lançamento (só empreendimento e tipologia).",
            "x-description-en": "New-development data (development and unit type only)."
          },
          "photoSync": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PhotoSync"
              },
              {
                "type": "null"
              }
            ],
            "description": "O download das fotos mandadas por endereço.",
            "x-description-en": "Download of the photos sent by URL."
          },
          "createdAt": {
            "type": "string",
            "description": "Quando foi criado (UTC).",
            "x-description-en": "When it was created (UTC).",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Última alteração (UTC).",
            "x-description-en": "Last change (UTC).",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "externalRef",
          "kind",
          "developmentId",
          "status",
          "type",
          "category",
          "purposes",
          "salePrice",
          "rentPrice",
          "title",
          "description",
          "address",
          "bedrooms",
          "suites",
          "bathrooms",
          "parkingSpots",
          "area",
          "privateArea",
          "amenities",
          "coverPhoto",
          "photos",
          "listingUrl",
          "captador",
          "captadorName",
          "sharedToNetwork",
          "partnershipTerms",
          "radar",
          "curation",
          "confirmation",
          "inactiveReason",
          "deletedAt",
          "launch",
          "photoSync",
          "createdAt",
          "updatedAt"
        ]
      },
      "AddressInput": {
        "type": "object",
        "description": "O endereço. Vem inteiro quando vem.",
        "x-description-en": "The address. Send it whole when you send it.",
        "properties": {
          "cityId": {
            "type": "string",
            "description": "Código do IBGE (7 dígitos). Com ele, `city` e `state` são dispensáveis.",
            "x-description-en": "IBGE code (7 digits). With it, `city` and `state` are not needed."
          },
          "city": {
            "type": "string",
            "description": "Nome da cidade (com `state`). Nome desconhecido volta 400 com sugestões.",
            "x-description-en": "City name (with `state`). An unknown name returns 400 with suggestions."
          },
          "state": {
            "type": "string",
            "description": "UF, 2 letras.",
            "x-description-en": "State (UF), 2 letters."
          },
          "neighborhoodSlug": {
            "type": "string",
            "description": "Bairro pelo identificador do catálogo — o caminho garantido.",
            "x-description-en": "Neighborhood by catalog identifier — the guaranteed path."
          },
          "neighborhood": {
            "type": "string",
            "description": "Bairro em texto. Ele passa pelo dicionário de apelidos; o que não for reconhecido fica pendente para a curadoria, nunca vira um bairro inventado.",
            "x-description-en": "Neighborhood as text. It goes through the alias dictionary; anything unrecognized waits for curation and never becomes a made-up neighborhood."
          },
          "street": {
            "type": "string",
            "description": "Rua.",
            "x-description-en": "Street."
          },
          "number": {
            "type": "string",
            "description": "Número.",
            "x-description-en": "Number."
          },
          "complement": {
            "type": "string",
            "description": "Complemento.",
            "x-description-en": "Complement."
          }
        },
        "additionalProperties": false
      },
      "PropertyInput": {
        "type": "object",
        "description": "Os campos que a API aceita no imóvel. Campo desconhecido é erro (400). Campo ausente não apaga; para limpar, mande `null`.",
        "x-description-en": "The fields the API accepts for a property. Unknown fields are an error (400). Absent fields are kept; to clear one, send `null`.",
        "properties": {
          "externalRef": {
            "type": "string",
            "description": "O código do imóvel no seu sistema (só no POST; no PUT ele vai no caminho).",
            "x-description-en": "The property's code in your system (POST only; in PUT it goes in the path).",
            "maxLength": 80
          },
          "title": {
            "type": "string",
            "description": "Título. Marcação HTML é removida.",
            "x-description-en": "Title. HTML markup is stripped.",
            "maxLength": 200
          },
          "description": {
            "type": "string",
            "description": "Descrição. `<br>` e `</p>` viram quebra de linha; o resto da marcação sai.",
            "x-description-en": "Description. `<br>` and `</p>` become line breaks; other markup is stripped.",
            "maxLength": 20000
          },
          "type": {
            "type": "string",
            "description": "Subtipo.",
            "x-description-en": "Subtype.",
            "enum": [
              "APARTAMENTO",
              "CASA_RUA",
              "CASA_CONDOMINIO",
              "CASA_VILA",
              "STUDIO",
              "FLAT",
              "COBERTURA",
              "SALA_COMERCIAL",
              "LOJA_PONTO",
              "GALPAO",
              "PREDIO",
              "TERRENO_RUA",
              "TERRENO_CONDOMINIO",
              "CHACARA_SITIO",
              "FAZENDA"
            ]
          },
          "purposes": {
            "type": "array",
            "description": "Finalidades.",
            "x-description-en": "Purposes.",
            "maxItems": 2,
            "items": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose.",
              "enum": [
                "VENDA",
                "LOCACAO"
              ]
            }
          },
          "salePrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Preço de venda, em reais. Obrigatório com `VENDA`.",
            "x-description-en": "Sale price, in BRL. Required with `VENDA`.",
            "minimum": 0
          },
          "rentPrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aluguel, em reais. Obrigatório com `LOCACAO`.",
            "x-description-en": "Rent, in BRL. Required with `LOCACAO`.",
            "minimum": 0
          },
          "address": {
            "$ref": "#/components/schemas/AddressInput",
            "description": "Endereço.",
            "x-description-en": "Address."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos.",
            "x-description-en": "Bedrooms.",
            "minimum": 0,
            "maximum": 99
          },
          "suites": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Suítes.",
            "x-description-en": "Suites.",
            "minimum": 0,
            "maximum": 99
          },
          "bathrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Banheiros.",
            "x-description-en": "Bathrooms.",
            "minimum": 0,
            "maximum": 99
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas.",
            "x-description-en": "Parking spots.",
            "minimum": 0,
            "maximum": 99
          },
          "area": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área privativa total, em m².",
            "x-description-en": "Total private area, in m².",
            "minimum": 0
          },
          "privateArea": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área coberta, em m².",
            "x-description-en": "Covered area, in m².",
            "minimum": 0
          },
          "listingUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Endereço do anúncio no seu site (http ou https).",
            "x-description-en": "Listing URL on your website (http or https).",
            "maxLength": 500
          },
          "captadorName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome do captador em texto.",
            "x-description-en": "Listing agent name as text."
          },
          "captadorAccountId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Id do corretor responsável da equipe.",
            "x-description-en": "Id of the responsible broker on the team."
          },
          "partnershipTerms": {
            "$ref": "#/components/schemas/PartnershipTerms",
            "description": "Condições para parceiros.",
            "x-description-en": "Partner terms."
          },
          "photos": {
            "type": "array",
            "description": "Até 30 endereços; a 1ª é a capa. Baixadas depois da resposta (veja `photoSync`). Ausente = a galeria fica como está; lista vazia = tirar as fotos.",
            "x-description-en": "Up to 30 URLs; the 1st is the cover. Downloaded after the response (see `photoSync`). Absent = gallery unchanged; empty list = remove the photos.",
            "maxItems": 30,
            "items": {
              "type": "string",
              "description": "Endereço da foto (http ou https).",
              "x-description-en": "Photo URL (http or https)."
            }
          }
        },
        "additionalProperties": false
      },
      "PropertyWriteResult": {
        "type": "object",
        "description": "O desfecho da escrita.",
        "x-description-en": "The write outcome.",
        "properties": {
          "outcome": {
            "type": "string",
            "description": "O que aconteceu: `CREATED`, `UPDATED`, `UNCHANGED` (nada mudou, nada gravado), `CONFIRMED` (só a data de disponibilidade), `STATUS_SET`, `DELETED`, `ALREADY_DELETED`…",
            "x-description-en": "What happened: `CREATED`, `UPDATED`, `UNCHANGED` (nothing changed, nothing written), `CONFIRMED` (only the availability date), `STATUS_SET`, `DELETED`, `ALREADY_DELETED`…"
          },
          "dryRun": {
            "type": "boolean",
            "description": "Foi um ensaio — nada foi gravado.",
            "x-description-en": "It was a dry run — nothing was written."
          },
          "conflicts": {
            "type": "array",
            "description": "Campos que a equipe editou na tela e que por isso não foram sobrescritos — a edição na tela vence.",
            "x-description-en": "Fields the team edited in the dashboard, so they were not overwritten — dashboard edits win.",
            "items": {
              "type": "string",
              "description": "Campo.",
              "x-description-en": "Field."
            }
          },
          "photos": {
            "type": [
              "string",
              "null"
            ],
            "description": "A galeria: `UNCHANGED`, `QUEUED`, `ALREADY_QUEUED` ou `CLEARED`. Nulo quando o pedido não falou de fotos.",
            "x-description-en": "The gallery: `UNCHANGED`, `QUEUED`, `ALREADY_QUEUED` or `CLEARED`. Null when the request did not mention photos."
          }
        },
        "required": [
          "outcome",
          "dryRun",
          "conflicts",
          "photos"
        ]
      },
      "Phone": {
        "type": "object",
        "description": "Um telefone.",
        "x-description-en": "A phone number.",
        "properties": {
          "number": {
            "type": "string",
            "description": "Só dígitos, com DDD (10 a 13).",
            "x-description-en": "Digits only, with area code (10 to 13)."
          },
          "isWhatsApp": {
            "type": "boolean",
            "description": "É WhatsApp.",
            "x-description-en": "Is WhatsApp."
          },
          "label": {
            "type": [
              "string",
              "null"
            ],
            "description": "Rótulo livre (`celular`, `trabalho`…).",
            "x-description-en": "Free label (`mobile`, `work`…)."
          }
        },
        "required": [
          "number",
          "isWhatsApp",
          "label"
        ]
      },
      "Location": {
        "type": "object",
        "description": "Uma região de interesse.",
        "x-description-en": "A region of interest.",
        "properties": {
          "cityId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Código do IBGE.",
            "x-description-en": "IBGE code."
          },
          "citySlug": {
            "type": [
              "string",
              "null"
            ],
            "description": "Identificador da cidade.",
            "x-description-en": "City identifier."
          },
          "cityName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome da cidade.",
            "x-description-en": "City name."
          },
          "uf": {
            "type": [
              "string",
              "null"
            ],
            "description": "Estado.",
            "x-description-en": "State."
          },
          "neighborhoodSlug": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bairro do catálogo (nulo = a cidade inteira).",
            "x-description-en": "Catalog neighborhood (null = the whole city)."
          },
          "neighborhoodName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome do bairro.",
            "x-description-en": "Neighborhood name."
          },
          "preference": {
            "type": "string",
            "description": "`PREFERRED` (preferido) ou `ACCEPTABLE` (aceitável) — pesa na nota da recomendação.",
            "x-description-en": "`PREFERRED` or `ACCEPTABLE` — it weighs on the recommendation score.",
            "enum": [
              "PREFERRED",
              "ACCEPTABLE"
            ]
          }
        },
        "required": [
          "cityId",
          "citySlug",
          "cityName",
          "uf",
          "neighborhoodSlug",
          "neighborhoodName",
          "preference"
        ]
      },
      "Interest": {
        "type": "object",
        "description": "O perfil de busca — é ele que liga as recomendações.",
        "x-description-en": "The search profile — it is what drives recommendations.",
        "properties": {
          "purposes": {
            "type": "array",
            "description": "Finalidades: `VENDA`, `LOCACAO` ou as duas.",
            "x-description-en": "Purposes: `VENDA` (sale), `LOCACAO` (rent) or both.",
            "items": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose.",
              "enum": [
                "VENDA",
                "LOCACAO"
              ]
            }
          },
          "propertyTypes": {
            "type": "array",
            "description": "Tipos de imóvel procurados.",
            "x-description-en": "Property types wanted.",
            "items": {
              "type": "string",
              "description": "Subtipo.",
              "x-description-en": "Subtype.",
              "enum": [
                "APARTAMENTO",
                "CASA_RUA",
                "CASA_CONDOMINIO",
                "CASA_VILA",
                "STUDIO",
                "FLAT",
                "COBERTURA",
                "SALA_COMERCIAL",
                "LOJA_PONTO",
                "GALPAO",
                "PREDIO",
                "TERRENO_RUA",
                "TERRENO_CONDOMINIO",
                "CHACARA_SITIO",
                "FAZENDA"
              ]
            }
          },
          "locations": {
            "type": "array",
            "description": "Regiões de interesse.",
            "x-description-en": "Regions of interest.",
            "items": {
              "$ref": "#/components/schemas/Location",
              "description": "Região.",
              "x-description-en": "Region."
            }
          },
          "similarNeighborhoods": {
            "type": "boolean",
            "description": "Aceita bairros parecidos com os escolhidos.",
            "x-description-en": "Accepts neighborhoods similar to the chosen ones."
          },
          "salePriceMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Compra: piso, em reais.",
            "x-description-en": "Purchase: minimum, in BRL."
          },
          "salePriceMax": {
            "type": [
              "number",
              "null"
            ],
            "description": "Compra: teto, em reais.",
            "x-description-en": "Purchase: maximum, in BRL."
          },
          "rentPriceMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aluguel: piso, em reais.",
            "x-description-en": "Rent: minimum, in BRL."
          },
          "rentPriceMax": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aluguel: teto, em reais.",
            "x-description-en": "Rent: maximum, in BRL."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos, no mínimo.",
            "x-description-en": "Minimum bedrooms."
          },
          "bathrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Banheiros, no mínimo.",
            "x-description-en": "Minimum bathrooms."
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas, no mínimo.",
            "x-description-en": "Minimum parking spots."
          },
          "areaMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área mínima, em m².",
            "x-description-en": "Minimum area, in m²."
          }
        },
        "required": [
          "purposes",
          "propertyTypes",
          "locations",
          "similarNeighborhoods",
          "salePriceMin",
          "salePriceMax",
          "rentPriceMin",
          "rentPriceMax",
          "bedrooms",
          "bathrooms",
          "parkingSpots",
          "areaMin"
        ]
      },
      "LeadRadar": {
        "type": "object",
        "description": "A situação do cliente nas recomendações.",
        "x-description-en": "The client's status in recommendations.",
        "properties": {
          "eligible": {
            "type": "boolean",
            "description": "Recebe recomendações agora (ativo e sem pendência).",
            "x-description-en": "Receives recommendations right now (active and with no pending item)."
          },
          "pending": {
            "type": "array",
            "description": "O que falta no perfil de busca.",
            "x-description-en": "What is missing in the search profile.",
            "items": {
              "type": "string",
              "description": "Código da pendência.",
              "x-description-en": "Pending item code.",
              "enum": [
                "PURPOSE_MISSING",
                "PROPERTY_TYPES_MISSING",
                "CITY_MISSING",
                "CITY_NOT_IN_CATALOG",
                "BUDGET_MISSING",
                "SALE_BUDGET_MISSING",
                "RENT_BUDGET_MISSING",
                "OTHER"
              ]
            }
          },
          "labels": {
            "type": "array",
            "description": "As mesmas pendências, por extenso.",
            "x-description-en": "The same pending items, spelled out.",
            "items": {
              "type": "string",
              "description": "Rótulo.",
              "x-description-en": "Label."
            }
          }
        },
        "required": [
          "eligible",
          "pending",
          "labels"
        ]
      },
      "Lead": {
        "type": "object",
        "description": "Um cliente da conta. Nome, telefone e e-mail são dado pessoal — a imobiliária é a controladora.",
        "x-description-en": "A client of the account. Name, phone and e-mail are personal data — the agency is the controller.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do cliente.",
            "x-description-en": "Client id."
          },
          "externalRef": {
            "type": [
              "string",
              "null"
            ],
            "description": "O código do cliente no SEU sistema.",
            "x-description-en": "The client's code in YOUR system."
          },
          "ownerAccountId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O corretor responsável (ou a própria imobiliária).",
            "x-description-en": "The responsible broker (or the agency itself)."
          },
          "state": {
            "type": "string",
            "description": "`ACTIVE`, `ARCHIVED` ou `DELETED` (lixeira).",
            "x-description-en": "`ACTIVE`, `ARCHIVED` or `DELETED` (trash).",
            "enum": [
              "ACTIVE",
              "ARCHIVED",
              "DELETED"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "Etapa do atendimento.",
            "x-description-en": "Funnel stage.",
            "enum": [
              "NEW",
              "ATTENDING",
              "PROPOSAL",
              "WON",
              "LOST",
              null
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome.",
            "x-description-en": "Name."
          },
          "phones": {
            "type": "array",
            "description": "Telefones.",
            "x-description-en": "Phones.",
            "items": {
              "$ref": "#/components/schemas/Phone",
              "description": "Telefone.",
              "x-description-en": "Phone."
            }
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "E-mail.",
            "x-description-en": "E-mail."
          },
          "source": {
            "type": "string",
            "description": "Por onde chegou: `MANUAL`, `IMPORT_CSV`, `EMAIL`, `WEBHOOK`, `META_ADS`, `PORTAL_API`, `CRM_API` (pela API)…",
            "x-description-en": "Where it came from: `MANUAL`, `IMPORT_CSV`, `EMAIL`, `WEBHOOK`, `META_ADS`, `PORTAL_API`, `CRM_API` (through the API)…"
          },
          "sourceDetail": {
            "type": [
              "string",
              "null"
            ],
            "description": "Detalhe da origem (o portal, o nome do sistema).",
            "x-description-en": "Source detail (the portal, the system name)."
          },
          "sourcePropertyId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O imóvel que trouxe o cliente, quando houver.",
            "x-description-en": "The property that brought the client, if any."
          },
          "preApproved": {
            "type": "boolean",
            "description": "Crédito pré-aprovado.",
            "x-description-en": "Pre-approved credit."
          },
          "sharedToNetwork": {
            "type": "boolean",
            "description": "O perfil (sem nome nem contato) pode receber imóveis de parceiros.",
            "x-description-en": "The profile (without name or contact) may receive partner properties."
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Anotações.",
            "x-description-en": "Notes."
          },
          "interest": {
            "$ref": "#/components/schemas/Interest",
            "description": "Perfil de busca.",
            "x-description-en": "Search profile."
          },
          "radar": {
            "$ref": "#/components/schemas/LeadRadar",
            "description": "Situação nas recomendações.",
            "x-description-en": "Recommendation status."
          },
          "lastActivityAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Última movimentação — anda pela data que o seu sistema manda e pelos atendimentos, nunca pela sincronização.",
            "x-description-en": "Last activity — moves with the date your system sends and with interactions, never with sync itself.",
            "format": "date-time"
          },
          "archivedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi arquivado.",
            "x-description-en": "When it was archived.",
            "format": "date-time"
          },
          "archivedReason": {
            "type": [
              "string",
              "null"
            ],
            "description": "Por que foi arquivado (`MANUAL`, `INACTIVITY`, `IMPORT`…).",
            "x-description-en": "Why it was archived (`MANUAL`, `INACTIVITY`, `IMPORT`…)."
          },
          "deletedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi para a lixeira.",
            "x-description-en": "When it was moved to the trash.",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "description": "Quando foi criado (UTC).",
            "x-description-en": "When it was created (UTC).",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Última alteração (UTC).",
            "x-description-en": "Last change (UTC).",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "externalRef",
          "ownerAccountId",
          "state",
          "status",
          "name",
          "phones",
          "email",
          "source",
          "sourceDetail",
          "sourcePropertyId",
          "preApproved",
          "sharedToNetwork",
          "notes",
          "interest",
          "radar",
          "lastActivityAt",
          "archivedAt",
          "archivedReason",
          "deletedAt",
          "createdAt",
          "updatedAt"
        ]
      },
      "PhoneInput": {
        "type": "object",
        "description": "Um telefone. Também aceita só o número, em texto.",
        "x-description-en": "A phone. A plain string with the number is also accepted.",
        "properties": {
          "number": {
            "type": "string",
            "description": "Com DDD; só os dígitos contam.",
            "x-description-en": "With area code; only digits count."
          },
          "isWhatsApp": {
            "type": "boolean",
            "description": "É WhatsApp (padrão: sim).",
            "x-description-en": "Is WhatsApp (default: yes)."
          },
          "label": {
            "type": "string",
            "description": "Rótulo livre.",
            "x-description-en": "Free label.",
            "maxLength": 40
          }
        },
        "additionalProperties": false
      },
      "LocationInput": {
        "type": "object",
        "description": "Uma região de interesse.",
        "x-description-en": "A region of interest.",
        "properties": {
          "cityId": {
            "type": "string",
            "description": "Código do IBGE.",
            "x-description-en": "IBGE code."
          },
          "cityName": {
            "type": "string",
            "description": "Nome da cidade (com `uf`).",
            "x-description-en": "City name (with `uf`)."
          },
          "uf": {
            "type": "string",
            "description": "Estado.",
            "x-description-en": "State."
          },
          "neighborhoodSlug": {
            "type": "string",
            "description": "Bairro do catálogo.",
            "x-description-en": "Catalog neighborhood."
          },
          "neighborhoodName": {
            "type": "string",
            "description": "Bairro em texto. Área de mercado (\"Ecoville\") vira os bairros do catálogo que ela cobre.",
            "x-description-en": "Neighborhood as text. Market areas (\"Ecoville\") expand into the catalog neighborhoods they cover."
          },
          "preference": {
            "type": "string",
            "description": "`PREFERRED` (padrão) ou `ACCEPTABLE`.",
            "x-description-en": "`PREFERRED` (default) or `ACCEPTABLE`.",
            "enum": [
              "PREFERRED",
              "ACCEPTABLE"
            ]
          }
        },
        "additionalProperties": false
      },
      "InterestInput": {
        "type": "object",
        "description": "O perfil de busca. É mesclado campo a campo: mandar só o teto não apaga as regiões.",
        "x-description-en": "The search profile. Merged field by field: sending only the maximum does not erase the regions.",
        "properties": {
          "purposes": {
            "type": "array",
            "description": "Finalidades.",
            "x-description-en": "Purposes.",
            "items": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose.",
              "enum": [
                "VENDA",
                "LOCACAO"
              ]
            }
          },
          "propertyTypes": {
            "type": "array",
            "description": "Tipos procurados.",
            "x-description-en": "Types wanted.",
            "items": {
              "type": "string",
              "description": "Subtipo.",
              "x-description-en": "Subtype.",
              "enum": [
                "APARTAMENTO",
                "CASA_RUA",
                "CASA_CONDOMINIO",
                "CASA_VILA",
                "STUDIO",
                "FLAT",
                "COBERTURA",
                "SALA_COMERCIAL",
                "LOJA_PONTO",
                "GALPAO",
                "PREDIO",
                "TERRENO_RUA",
                "TERRENO_CONDOMINIO",
                "CHACARA_SITIO",
                "FAZENDA"
              ]
            }
          },
          "locations": {
            "type": "array",
            "description": "Regiões (até 20). Quando vem, vem inteira.",
            "x-description-en": "Regions (up to 20). Send the whole list when you send it.",
            "maxItems": 20,
            "items": {
              "$ref": "#/components/schemas/LocationInput",
              "description": "Região.",
              "x-description-en": "Region."
            }
          },
          "similarNeighborhoods": {
            "type": "boolean",
            "description": "Aceita bairros parecidos.",
            "x-description-en": "Accepts similar neighborhoods."
          },
          "salePriceMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Compra: piso.",
            "x-description-en": "Purchase: minimum.",
            "minimum": 0
          },
          "salePriceMax": {
            "type": [
              "number",
              "null"
            ],
            "description": "Compra: teto. Abaixo do piso é recusado.",
            "x-description-en": "Purchase: maximum. Below the minimum is refused.",
            "minimum": 0
          },
          "rentPriceMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aluguel: piso.",
            "x-description-en": "Rent: minimum.",
            "minimum": 0
          },
          "rentPriceMax": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aluguel: teto. Abaixo do piso é recusado.",
            "x-description-en": "Rent: maximum. Below the minimum is refused.",
            "minimum": 0
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos, no mínimo.",
            "x-description-en": "Minimum bedrooms.",
            "minimum": 0,
            "maximum": 99
          },
          "bathrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Banheiros, no mínimo.",
            "x-description-en": "Minimum bathrooms.",
            "minimum": 0,
            "maximum": 99
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas, no mínimo.",
            "x-description-en": "Minimum parking spots.",
            "minimum": 0,
            "maximum": 99
          },
          "areaMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área mínima, em m².",
            "x-description-en": "Minimum area, in m².",
            "minimum": 0
          }
        },
        "additionalProperties": false
      },
      "LeadInput": {
        "type": "object",
        "description": "Os campos que a API aceita no cliente. Campo desconhecido é erro; campo ausente não apaga.",
        "x-description-en": "The fields the API accepts for a client. Unknown fields are an error; absent fields are kept.",
        "properties": {
          "externalRef": {
            "type": "string",
            "description": "O código do cliente no seu sistema (só no POST).",
            "x-description-en": "The client's code in your system (POST only).",
            "maxLength": 80
          },
          "name": {
            "type": "string",
            "description": "Nome. Obrigatório na criação.",
            "x-description-en": "Name. Required on creation.",
            "maxLength": 120
          },
          "phones": {
            "type": "array",
            "description": "Até 5 telefones. Na criação, telefone ou e-mail.",
            "x-description-en": "Up to 5 phones. On creation, a phone or an e-mail.",
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/PhoneInput",
              "description": "Telefone.",
              "x-description-en": "Phone."
            }
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "E-mail.",
            "x-description-en": "E-mail."
          },
          "status": {
            "type": "string",
            "description": "Etapa do atendimento.",
            "x-description-en": "Funnel stage.",
            "enum": [
              "NEW",
              "ATTENDING",
              "PROPOSAL",
              "WON",
              "LOST"
            ]
          },
          "notes": {
            "type": "string",
            "description": "Anotações.",
            "x-description-en": "Notes.",
            "maxLength": 5000
          },
          "preApproved": {
            "type": "boolean",
            "description": "Crédito pré-aprovado.",
            "x-description-en": "Pre-approved credit."
          },
          "sharedToNetwork": {
            "type": "boolean",
            "description": "O perfil pode receber imóveis de parceiros.",
            "x-description-en": "The profile may receive partner properties."
          },
          "interest": {
            "$ref": "#/components/schemas/InterestInput",
            "description": "Perfil de busca.",
            "x-description-en": "Search profile."
          },
          "ownerAccountId": {
            "type": "string",
            "description": "O corretor responsável, pelo id.",
            "x-description-en": "The responsible broker, by id."
          },
          "ownerEmail": {
            "type": "string",
            "description": "O corretor responsável, pelo e-mail — é como o seu sistema o conhece. Sem responsável, vale a distribuição da imobiliária.",
            "x-description-en": "The responsible broker, by e-mail — the way your system knows them. Without one, the agency's distribution rule applies."
          },
          "lastActivityAt": {
            "type": "string",
            "description": "A última movimentação no SEU sistema. Só anda para a frente. Mais de 60 dias atrás na criação = o cliente entra arquivado (base histórica).",
            "x-description-en": "The last activity in YOUR system. It only moves forward. More than 60 days ago on creation = the client is created archived (historical base).",
            "format": "date-time"
          },
          "consentGiven": {
            "type": "boolean",
            "description": "Obrigatório `true` na criação: a imobiliária declara ter a base legal para tratar o dado (Termos da API).",
            "x-description-en": "Must be `true` on creation: the agency declares it has the legal basis to process the data (API Terms)."
          }
        },
        "additionalProperties": false
      },
      "LeadWriteResult": {
        "type": "object",
        "description": "O desfecho da escrita.",
        "x-description-en": "The write outcome.",
        "properties": {
          "outcome": {
            "type": "string",
            "description": "O que aconteceu: `CREATED`, `UPDATED`, `UNCHANGED`, `LINKED` (o código passou a apontar para um cliente que já existia pelo contato), `ARCHIVED` (criado arquivado, base histórica), `STATE_SET` (arquivado ou reativado), `ADDED` (atendimento registrado), `DELETED`, `ALREADY_DELETED`.",
            "x-description-en": "What happened: `CREATED`, `UPDATED`, `UNCHANGED`, `LINKED` (the code now points to a client that already existed by contact), `ARCHIVED` (created archived, historical base), `STATE_SET` (archived or reactivated), `ADDED` (interaction logged), `DELETED`, `ALREADY_DELETED`."
          },
          "dryRun": {
            "type": "boolean",
            "description": "Foi um ensaio — nada foi gravado.",
            "x-description-en": "It was a dry run — nothing was written."
          },
          "interaction": {
            "type": "object",
            "description": "O atendimento registrado (só em `POST /leads/{leadId}/interactions`).",
            "x-description-en": "The logged interaction (only in `POST /leads/{leadId}/interactions`).",
            "properties": {
              "id": {
                "type": "string",
                "description": "Id do registro.",
                "x-description-en": "Record id."
              },
              "type": {
                "type": "string",
                "description": "Tipo.",
                "x-description-en": "Type."
              },
              "note": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Anotação.",
                "x-description-en": "Note."
              },
              "at": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Quando aconteceu.",
                "x-description-en": "When it happened.",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "type",
              "note",
              "at"
            ]
          }
        },
        "required": [
          "outcome",
          "dryRun"
        ]
      },
      "PropertySnapshot": {
        "type": "object",
        "description": "O retrato do imóvel no par — o mesmo do card. Campos que a tela esconde saem nulos.",
        "x-description-en": "The property snapshot in the pair — the same as the card. Fields the dashboard hides come back null.",
        "properties": {
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Título.",
            "x-description-en": "Title."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Subtipo.",
            "x-description-en": "Subtype."
          },
          "purpose": {
            "type": [
              "string",
              "null"
            ],
            "description": "Finalidade do par.",
            "x-description-en": "Purpose of the pair."
          },
          "purposes": {
            "type": "array",
            "description": "Finalidades do imóvel.",
            "x-description-en": "The property's purposes.",
            "items": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose."
            }
          },
          "price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Preço (venda, ou aluguel quando o par é de locação).",
            "x-description-en": "Price (sale, or rent when the pair is a rental)."
          },
          "priceFrom": {
            "type": "boolean",
            "description": "O preço é \"a partir de\" (lançamento).",
            "x-description-en": "The price is a \"starting at\" price (new development)."
          },
          "rentPrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aluguel.",
            "x-description-en": "Rent."
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cidade.",
            "x-description-en": "City."
          },
          "neighborhood": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bairro.",
            "x-description-en": "Neighborhood."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos.",
            "x-description-en": "Bedrooms."
          },
          "bathrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Banheiros.",
            "x-description-en": "Bathrooms."
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas.",
            "x-description-en": "Parking spots."
          },
          "area": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área, em m².",
            "x-description-en": "Area, in m²."
          },
          "coverPhoto": {
            "type": [
              "string",
              "null"
            ],
            "description": "Capa.",
            "x-description-en": "Cover photo."
          },
          "listingUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Anúncio (nulo quando a tela também esconde).",
            "x-description-en": "Listing URL (null when the dashboard hides it too)."
          },
          "commissionPercent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Comissão de venda, em %.",
            "x-description-en": "Sale commission, in %."
          },
          "rentCommissionMonths": {
            "type": [
              "number",
              "null"
            ],
            "description": "Comissão de locação, em aluguéis.",
            "x-description-en": "Rent commission, in months."
          },
          "splitListingPercent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Parte de quem captou, em %.",
            "x-description-en": "Listing side share, in %."
          },
          "lastConfirmedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Última confirmação de disponibilidade.",
            "x-description-en": "Last availability confirmation.",
            "format": "date-time"
          },
          "deliveryDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Entrega (lançamento).",
            "x-description-en": "Delivery (new development)."
          },
          "developmentId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Empreendimento.",
            "x-description-en": "Development."
          },
          "developmentName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome do empreendimento.",
            "x-description-en": "Development name."
          }
        },
        "required": [
          "title",
          "type",
          "purpose",
          "purposes",
          "price",
          "priceFrom",
          "rentPrice",
          "city",
          "neighborhood",
          "bedrooms",
          "bathrooms",
          "parkingSpots",
          "area",
          "coverPhoto",
          "listingUrl",
          "commissionPercent",
          "rentCommissionMonths",
          "splitListingPercent",
          "lastConfirmedAt",
          "deliveryDate",
          "developmentId",
          "developmentName"
        ]
      },
      "ClientSnapshot": {
        "type": "object",
        "description": "O retrato do cliente no par.",
        "x-description-en": "The client snapshot in the pair.",
        "properties": {
          "masked": {
            "type": "boolean",
            "description": "O cliente é de parceiro e está mascarado.",
            "x-description-en": "The client belongs to a partner and is masked."
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "Etapa do atendimento.",
            "x-description-en": "Funnel stage."
          },
          "preApproved": {
            "type": "boolean",
            "description": "Crédito pré-aprovado.",
            "x-description-en": "Pre-approved credit."
          },
          "purposes": {
            "type": "array",
            "description": "Finalidades procuradas.",
            "x-description-en": "Purposes wanted.",
            "items": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose."
            }
          },
          "propertyTypes": {
            "type": "array",
            "description": "Tipos procurados.",
            "x-description-en": "Types wanted.",
            "items": {
              "type": "string",
              "description": "Subtipo.",
              "x-description-en": "Subtype."
            }
          },
          "regions": {
            "type": "array",
            "description": "Regiões, por extenso.",
            "x-description-en": "Regions, spelled out.",
            "items": {
              "type": "string",
              "description": "Região.",
              "x-description-en": "Region."
            }
          },
          "priceMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Piso.",
            "x-description-en": "Minimum."
          },
          "priceMax": {
            "type": [
              "number",
              "null"
            ],
            "description": "Teto.",
            "x-description-en": "Maximum."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos.",
            "x-description-en": "Bedrooms."
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas.",
            "x-description-en": "Parking spots."
          },
          "areaMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área mínima.",
            "x-description-en": "Minimum area."
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome — só com a permissão `leads:read` na chave e só quando a tela também mostra. Telefone, nunca.",
            "x-description-en": "Name — only with the `leads:read` permission on the key and only when the dashboard shows it too. Phone, never."
          }
        },
        "required": [
          "masked",
          "status",
          "preApproved",
          "purposes",
          "propertyTypes",
          "regions",
          "priceMin",
          "priceMax",
          "bedrooms",
          "parkingSpots",
          "areaMin",
          "name"
        ]
      },
      "Counterpart": {
        "type": "object",
        "description": "O parceiro do outro lado.",
        "x-description-en": "The partner on the other side.",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Id da conta do parceiro.",
            "x-description-en": "Partner's account id."
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome.",
            "x-description-en": "Name."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tipo de conta.",
            "x-description-en": "Account type."
          },
          "organization": {
            "type": [
              "string",
              "null"
            ],
            "description": "Imobiliária do parceiro.",
            "x-description-en": "Partner's agency."
          },
          "creci": {
            "type": [
              "string",
              "null"
            ],
            "description": "CRECI.",
            "x-description-en": "Broker license (CRECI)."
          },
          "creciVerified": {
            "type": "boolean",
            "description": "CRECI conferido.",
            "x-description-en": "License verified."
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "Telefone.",
            "x-description-en": "Phone."
          }
        },
        "required": [
          "accountId",
          "name",
          "type",
          "organization",
          "creci",
          "creciVerified",
          "phone"
        ]
      },
      "Match": {
        "type": "object",
        "description": "Uma oportunidade: um imóvel que serve a um cliente.",
        "x-description-en": "An opportunity: a property that fits a client.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id da oportunidade (`m#{imóvel}#{cliente}#{lado}`). Tem `#`: mande codificado (`%23`) no caminho.",
            "x-description-en": "Opportunity id (`m#{property}#{client}#{side}`). It contains `#`: URL-encode it (`%23`) in the path."
          },
          "scope": {
            "type": "string",
            "description": "`INTERNAL` (da própria carteira), `NETWORK` (com parceiros) ou `LAUNCH` (lançamento).",
            "x-description-en": "`INTERNAL` (own portfolio), `NETWORK` (with partners) or `LAUNCH` (new development).",
            "enum": [
              "INTERNAL",
              "NETWORK",
              "LAUNCH"
            ]
          },
          "status": {
            "type": "string",
            "description": "`NEW`, `FAVORITED`, `ARCHIVED` ou `REQUESTED` (virou pedido de parceria).",
            "x-description-en": "`NEW`, `FAVORITED`, `ARCHIVED` or `REQUESTED` (became a partnership request)."
          },
          "score": {
            "type": "integer",
            "description": "Nota de 0 a 100.",
            "x-description-en": "Score from 0 to 100."
          },
          "reasons": {
            "type": "array",
            "description": "Por que combina.",
            "x-description-en": "Why it matches.",
            "items": {
              "type": "string",
              "description": "Motivo.",
              "x-description-en": "Reason."
            }
          },
          "gaps": {
            "type": "array",
            "description": "O que não combina.",
            "x-description-en": "What doesn't match.",
            "items": {
              "type": "string",
              "description": "Diferença.",
              "x-description-en": "Gap."
            }
          },
          "propertyId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Imóvel.",
            "x-description-en": "Property."
          },
          "leadId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cliente.",
            "x-description-en": "Client."
          },
          "ownerAccountId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O corretor da casa que recebe a oportunidade.",
            "x-description-en": "The in-house broker who gets the opportunity."
          },
          "ownerName": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome dele.",
            "x-description-en": "Their name."
          },
          "locked": {
            "type": "boolean",
            "description": "Oportunidade de parceiro sem assinatura ativa — o parceiro fica escondido, como na tela.",
            "x-description-en": "Partner opportunity without an active subscription — the partner stays hidden, as in the dashboard."
          },
          "lostRelevance": {
            "type": "boolean",
            "description": "Deixou de combinar depois de uma mudança.",
            "x-description-en": "No longer matches after a change."
          },
          "property": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PropertySnapshot"
              },
              {
                "type": "null"
              }
            ],
            "description": "O imóvel.",
            "x-description-en": "The property."
          },
          "client": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ClientSnapshot"
              },
              {
                "type": "null"
              }
            ],
            "description": "O cliente.",
            "x-description-en": "The client."
          },
          "counterpart": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Counterpart"
              },
              {
                "type": "null"
              }
            ],
            "description": "O parceiro (nulo quando é da casa ou está escondido).",
            "x-description-en": "The partner (null when in-house or hidden)."
          },
          "createdAt": {
            "type": "string",
            "description": "Quando foi criado (UTC).",
            "x-description-en": "When it was created (UTC).",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Última alteração (UTC).",
            "x-description-en": "Last change (UTC).",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "scope",
          "status",
          "score",
          "reasons",
          "gaps",
          "propertyId",
          "leadId",
          "ownerAccountId",
          "ownerName",
          "locked",
          "lostRelevance",
          "property",
          "client",
          "counterpart",
          "createdAt",
          "updatedAt"
        ]
      },
      "MatchWriteResult": {
        "type": "object",
        "description": "O desfecho.",
        "x-description-en": "The outcome.",
        "properties": {
          "outcome": {
            "type": "string",
            "description": "`APPLIED`; em ensaio, `WOULD_APPLY`.",
            "x-description-en": "`APPLIED`; in a dry run, `WOULD_APPLY`."
          },
          "dryRun": {
            "type": "boolean",
            "description": "Foi um ensaio.",
            "x-description-en": "It was a dry run."
          }
        },
        "required": [
          "outcome",
          "dryRun"
        ]
      },
      "Party": {
        "type": "object",
        "description": "Uma ponta da parceria.",
        "x-description-en": "One side of the partnership.",
        "properties": {
          "accountId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Id da conta.",
            "x-description-en": "Account id."
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome.",
            "x-description-en": "Name."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tipo de conta.",
            "x-description-en": "Account type."
          }
        },
        "required": [
          "accountId",
          "name",
          "type"
        ]
      },
      "Partnership": {
        "type": "object",
        "description": "Uma parceria.",
        "x-description-en": "A partnership.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id da parceria.",
            "x-description-en": "Partnership id."
          },
          "status": {
            "type": "string",
            "description": "Etapa.",
            "x-description-en": "Stage.",
            "enum": [
              "PENDING",
              "ACCEPTED",
              "DECLINED",
              "CANCELLED",
              "LEAD_REGISTERED",
              "CONTACTED",
              "NEGOTIATING",
              "PROPOSAL",
              "WON",
              "LOST"
            ]
          },
          "kind": {
            "type": [
              "string",
              "null"
            ],
            "description": "`CLIENT_FOR_PROPERTY` ou `PROPERTY_FOR_CLIENT`.",
            "x-description-en": "`CLIENT_FOR_PROPERTY` or `PROPERTY_FOR_CLIENT`."
          },
          "propertyId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Imóvel.",
            "x-description-en": "Property."
          },
          "leadId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cliente.",
            "x-description-en": "Client."
          },
          "matchId": {
            "type": [
              "string",
              "null"
            ],
            "description": "A oportunidade de origem.",
            "x-description-en": "The originating opportunity."
          },
          "developmentId": {
            "type": [
              "string",
              "null"
            ],
            "description": "Empreendimento (registro em lançamento).",
            "x-description-en": "Development (new-development registration)."
          },
          "developmentTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome do empreendimento.",
            "x-description-en": "Development name."
          },
          "score": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Nota da oportunidade.",
            "x-description-en": "Opportunity score."
          },
          "summary": {
            "type": [
              "string",
              "null"
            ],
            "description": "Resumo.",
            "x-description-en": "Summary."
          },
          "reasons": {
            "type": "array",
            "description": "Por que combina.",
            "x-description-en": "Why it matches.",
            "items": {
              "type": "string",
              "description": "Motivo.",
              "x-description-en": "Reason."
            }
          },
          "message": {
            "type": [
              "string",
              "null"
            ],
            "description": "Mensagem do pedido.",
            "x-description-en": "Request message."
          },
          "ourSide": {
            "type": [
              "string",
              "null"
            ],
            "description": "O lado da conta: `REQUESTER` (pediu) ou `ADDRESSEE` (recebeu).",
            "x-description-en": "The account's side: `REQUESTER` or `ADDRESSEE`."
          },
          "ourBrokerId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O corretor da casa na parceria.",
            "x-description-en": "The in-house broker in the partnership."
          },
          "canMoveFunnel": {
            "type": "boolean",
            "description": "A conta pode mover a etapa — só o lado que captou o cliente pode.",
            "x-description-en": "The account can move the stage — only the side that brought the client can."
          },
          "requester": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Party"
              },
              {
                "type": "null"
              }
            ],
            "description": "Quem pediu.",
            "x-description-en": "Requester."
          },
          "addressee": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Party"
              },
              {
                "type": "null"
              }
            ],
            "description": "Quem recebeu.",
            "x-description-en": "Addressee."
          },
          "counterpart": {
            "type": "object",
            "description": "O parceiro do outro lado.",
            "x-description-en": "The partner on the other side.",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Nome.",
                "x-description-en": "Name."
              },
              "type": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Tipo de conta.",
                "x-description-en": "Account type."
              },
              "organization": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Imobiliária.",
                "x-description-en": "Agency."
              },
              "contactName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Contato.",
                "x-description-en": "Contact."
              },
              "phone": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Telefone.",
                "x-description-en": "Phone."
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "E-mail.",
                "x-description-en": "E-mail."
              },
              "creci": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "CRECI.",
                "x-description-en": "Broker license."
              },
              "creciVerified": {
                "type": "boolean",
                "description": "CRECI conferido.",
                "x-description-en": "License verified."
              }
            },
            "required": [
              "name",
              "type",
              "organization",
              "contactName",
              "phone",
              "email",
              "creci",
              "creciVerified"
            ]
          },
          "property": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PropertySnapshot"
              },
              {
                "type": "null"
              }
            ],
            "description": "O imóvel.",
            "x-description-en": "The property."
          },
          "client": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ClientSnapshot"
              },
              {
                "type": "null"
              }
            ],
            "description": "O cliente.",
            "x-description-en": "The client."
          },
          "lastProgressAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Último avanço de etapa.",
            "x-description-en": "Last stage move.",
            "format": "date-time"
          },
          "protectedUntil": {
            "type": [
              "string",
              "null"
            ],
            "description": "Até quando o cliente fica protegido (lançamento).",
            "x-description-en": "Until when the client is protected (new development).",
            "format": "date-time"
          },
          "propertyOffMarketAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando o imóvel saiu do ar.",
            "x-description-en": "When the property went off the market.",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "description": "Quando foi criado (UTC).",
            "x-description-en": "When it was created (UTC).",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Última alteração (UTC).",
            "x-description-en": "Last change (UTC).",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "status",
          "kind",
          "propertyId",
          "leadId",
          "matchId",
          "developmentId",
          "developmentTitle",
          "score",
          "summary",
          "reasons",
          "message",
          "ourSide",
          "ourBrokerId",
          "canMoveFunnel",
          "requester",
          "addressee",
          "counterpart",
          "property",
          "client",
          "lastProgressAt",
          "protectedUntil",
          "propertyOffMarketAt",
          "createdAt",
          "updatedAt"
        ]
      },
      "PartnershipWriteResult": {
        "type": "object",
        "description": "O desfecho.",
        "x-description-en": "The outcome.",
        "properties": {
          "outcome": {
            "type": "string",
            "description": "O que aconteceu.",
            "x-description-en": "What happened."
          },
          "dryRun": {
            "type": "boolean",
            "description": "Foi um ensaio.",
            "x-description-en": "It was a dry run."
          }
        },
        "required": [
          "outcome",
          "dryRun"
        ]
      },
      "Member": {
        "type": "object",
        "description": "Uma pessoa da equipe.",
        "x-description-en": "A team member.",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Id da pessoa na plataforma.",
            "x-description-en": "The person's platform id."
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome.",
            "x-description-en": "Name."
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "E-mail — é por ele que o seu sistema reconhece o corretor.",
            "x-description-en": "E-mail — your system matches the broker by it."
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "Telefone.",
            "x-description-en": "Phone."
          },
          "photoUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Foto.",
            "x-description-en": "Photo."
          },
          "creci": {
            "type": [
              "string",
              "null"
            ],
            "description": "CRECI (quem tem — a equipe também tem estagiários e administrativos).",
            "x-description-en": "Broker license (if any — the team also has interns and office staff)."
          },
          "creciVerified": {
            "type": "boolean",
            "description": "CRECI conferido.",
            "x-description-en": "License verified."
          },
          "status": {
            "type": "string",
            "description": "`active` ou `suspended`.",
            "x-description-en": "`active` or `suspended`."
          },
          "canCaptureProperties": {
            "type": "boolean",
            "description": "Pode cadastrar imóvel e ser o responsável por ele.",
            "x-description-en": "Can register properties and be responsible for them."
          },
          "isSupervisor": {
            "type": "boolean",
            "description": "Supervisiona parte da equipe.",
            "x-description-en": "Supervises part of the team."
          },
          "supervisorId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O supervisor desta pessoa.",
            "x-description-en": "This person's supervisor."
          },
          "receivesLeadDistribution": {
            "type": "boolean",
            "description": "Entra na distribuição de clientes.",
            "x-description-en": "Takes part in client distribution."
          },
          "firstAccessAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Primeiro acesso.",
            "x-description-en": "First access.",
            "format": "date-time"
          }
        },
        "required": [
          "accountId",
          "name",
          "email",
          "phone",
          "photoUrl",
          "creci",
          "creciVerified",
          "status",
          "canCaptureProperties",
          "isSupervisor",
          "supervisorId",
          "receivesLeadDistribution",
          "firstAccessAt"
        ]
      },
      "FeedSync": {
        "type": "object",
        "description": "A sincronização do feed do CRM. Nunca traz o link nem o token.",
        "x-description-en": "The CRM feed sync. Never includes the link or the token.",
        "properties": {
          "configured": {
            "type": "boolean",
            "description": "O link do feed do CRM está cadastrado na conta.",
            "x-description-en": "The CRM feed link is set up on the account."
          },
          "connector": {
            "type": [
              "string",
              "null"
            ],
            "description": "O CRM do link (o formato do feed).",
            "x-description-en": "The CRM behind the link (the feed format)."
          },
          "autoSync": {
            "type": "boolean",
            "description": "A sincronização de 6 em 6 horas está ligada.",
            "x-description-en": "The 6-hourly sync is on."
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "Como terminou a última sincronização (a mesma situação da tela) — `QUEUED` enquanto ela anda.",
            "x-description-en": "How the last sync ended (the same status as the dashboard) — `QUEUED` while it runs."
          },
          "message": {
            "type": [
              "string",
              "null"
            ],
            "description": "A frase da última sincronização, a mesma da tela.",
            "x-description-en": "The last sync message, the same as in the dashboard."
          },
          "lastSyncAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando a última terminou.",
            "x-description-en": "When the last one finished.",
            "format": "date-time"
          },
          "feedCount": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Imóveis no feed na última leitura.",
            "x-description-en": "Properties in the feed at the last read."
          },
          "counts": {
            "type": "object",
            "description": "O que a última sincronização fez.",
            "x-description-en": "What the last sync did.",
            "properties": {
              "created": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Criados.",
                "x-description-en": "Created."
              },
              "updated": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Atualizados.",
                "x-description-en": "Updated."
              },
              "archived": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Arquivados (saíram do feed e passaram da carência).",
                "x-description-en": "Archived (left the feed and passed the grace period)."
              },
              "skipped": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Pulados (incompletos ou fora da cota).",
                "x-description-en": "Skipped (incomplete or over quota)."
              },
              "unchanged": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Conferidos sem mudança (nada gravado).",
                "x-description-en": "Checked with no change (nothing written)."
              },
              "confirmed": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Confirmados (só a data de disponibilidade renovada).",
                "x-description-en": "Confirmed (only the availability date renewed)."
              }
            },
            "required": [
              "created",
              "updated",
              "archived",
              "skipped",
              "unchanged",
              "confirmed"
            ]
          },
          "conflicts": {
            "type": "integer",
            "description": "Imóveis com campo editado na tela que o feed quis mudar — esperam a decisão em Imóveis › Importar.",
            "x-description-en": "Properties with a field edited in the dashboard that the feed tried to change — awaiting a decision under Properties › Import."
          },
          "scheduledFor": {
            "type": [
              "string",
              "null"
            ],
            "description": "A sincronização agendada por `POST /v1/feed/sync` para o fim da janela (nulo = nenhuma).",
            "x-description-en": "The sync scheduled by `POST /v1/feed/sync` for the end of the window (null = none).",
            "format": "date-time"
          }
        },
        "required": [
          "configured",
          "connector",
          "autoSync",
          "status",
          "message",
          "lastSyncAt",
          "feedCount",
          "counts",
          "conflicts",
          "scheduledFor"
        ]
      },
      "FeedSyncResult": {
        "type": "object",
        "description": "O desfecho.",
        "x-description-en": "The outcome.",
        "properties": {
          "outcome": {
            "type": "string",
            "description": "`QUEUED` (sincroniza já) · `SCHEDULED` (agendada para o fim da janela de 10 minutos) · `ALREADY_SCHEDULED` (já havia uma agendada — nada novo).",
            "x-description-en": "`QUEUED` (syncs now) · `SCHEDULED` (scheduled for the end of the 10-minute window) · `ALREADY_SCHEDULED` (one was already scheduled — nothing new).",
            "enum": [
              "QUEUED",
              "SCHEDULED",
              "ALREADY_SCHEDULED"
            ]
          },
          "dryRun": {
            "type": "boolean",
            "description": "Foi ensaio (nada enfileirado).",
            "x-description-en": "It was a dry run (nothing queued)."
          }
        },
        "required": [
          "outcome",
          "dryRun"
        ]
      },
      "Typology": {
        "type": "object",
        "description": "Uma tipologia do empreendimento.",
        "x-description-en": "A unit type of the development.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id da tipologia.",
            "x-description-en": "Unit type id."
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome.",
            "x-description-en": "Name."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Subtipo.",
            "x-description-en": "Subtype."
          },
          "status": {
            "type": "string",
            "description": "Situação.",
            "x-description-en": "Status."
          },
          "salePrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Preço.",
            "x-description-en": "Price."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos.",
            "x-description-en": "Bedrooms."
          },
          "suites": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Suítes.",
            "x-description-en": "Suites."
          },
          "bathrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Banheiros.",
            "x-description-en": "Bathrooms."
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas.",
            "x-description-en": "Parking spots."
          },
          "area": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área privativa, em m².",
            "x-description-en": "Private area, in m²."
          },
          "privateArea": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área coberta, em m².",
            "x-description-en": "Covered area, in m²."
          },
          "coverPhoto": {
            "type": [
              "string",
              "null"
            ],
            "description": "Capa.",
            "x-description-en": "Cover photo."
          },
          "floorPlans": {
            "type": "array",
            "description": "Plantas.",
            "x-description-en": "Floor plans.",
            "items": {
              "type": "string",
              "description": "Planta.",
              "x-description-en": "Floor plan."
            }
          },
          "unitFeatures": {
            "type": "array",
            "description": "Itens da unidade.",
            "x-description-en": "Unit features.",
            "items": {
              "type": "string",
              "description": "Item.",
              "x-description-en": "Item."
            }
          },
          "unitsAvailable": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Unidades disponíveis.",
            "x-description-en": "Available units."
          },
          "unitsTotal": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Unidades no total.",
            "x-description-en": "Total units."
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "status",
          "salePrice",
          "bedrooms",
          "suites",
          "bathrooms",
          "parkingSpots",
          "area",
          "privateArea",
          "coverPhoto",
          "floorPlans",
          "unitFeatures",
          "unitsAvailable",
          "unitsTotal"
        ]
      },
      "Launch": {
        "type": "object",
        "description": "Um empreendimento do catálogo de lançamentos.",
        "x-description-en": "A development in the new-development catalog.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do empreendimento.",
            "x-description-en": "Development id."
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome.",
            "x-description-en": "Name."
          },
          "developer": {
            "type": [
              "string",
              "null"
            ],
            "description": "Construtora.",
            "x-description-en": "Developer."
          },
          "address": {
            "$ref": "#/components/schemas/AddressArea",
            "description": "Endereço até o bairro (a rua não sai no catálogo).",
            "x-description-en": "Address down to the neighborhood (the street is not in the catalog)."
          },
          "constructionStage": {
            "type": [
              "string",
              "null"
            ],
            "description": "Estágio da obra.",
            "x-description-en": "Construction stage.",
            "enum": [
              "LAUNCH",
              "OFF_PLAN",
              "NEW",
              "READY",
              null
            ]
          },
          "deliveryDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Previsão de entrega.",
            "x-description-en": "Expected delivery."
          },
          "constructionProgress": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Andamento da obra, em %.",
            "x-description-en": "Construction progress, in %."
          },
          "coverPhoto": {
            "type": [
              "string",
              "null"
            ],
            "description": "Capa.",
            "x-description-en": "Cover photo."
          },
          "amenities": {
            "type": "array",
            "description": "Itens do empreendimento.",
            "x-description-en": "Development amenities.",
            "items": {
              "type": "string",
              "description": "Item.",
              "x-description-en": "Item."
            }
          },
          "commissionPercent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Comissão para o corretor, em %.",
            "x-description-en": "Broker commission, in %."
          },
          "priceMin": {
            "type": [
              "number",
              "null"
            ],
            "description": "Menor preço entre as tipologias.",
            "x-description-en": "Lowest unit-type price."
          },
          "priceMax": {
            "type": [
              "number",
              "null"
            ],
            "description": "Maior preço.",
            "x-description-en": "Highest price."
          },
          "typologyCount": {
            "type": "integer",
            "description": "Quantas tipologias.",
            "x-description-en": "How many unit types."
          },
          "typologies": {
            "type": "array",
            "description": "As tipologias.",
            "x-description-en": "The unit types.",
            "items": {
              "$ref": "#/components/schemas/Typology",
              "description": "Tipologia.",
              "x-description-en": "Unit type."
            }
          }
        },
        "required": [
          "id",
          "title",
          "developer",
          "address",
          "constructionStage",
          "deliveryDate",
          "constructionProgress",
          "coverPhoto",
          "amenities",
          "commissionPercent",
          "priceMin",
          "priceMax",
          "typologyCount",
          "typologies"
        ]
      },
      "CaptacaoOffer": {
        "type": "object",
        "description": "Um proprietário da Captação. Os campos depois de `createdAt` só existem depois do aceite.",
        "x-description-en": "A Captação owner. The fields after `createdAt` only exist after accepting.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do proprietário na mesa.",
            "x-description-en": "The owner's id on the desk."
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "Situação.",
            "x-description-en": "Status."
          },
          "purpose": {
            "type": [
              "string",
              "null"
            ],
            "description": "Venda ou locação.",
            "x-description-en": "Sale or rent."
          },
          "propertyType": {
            "type": [
              "string",
              "null"
            ],
            "description": "Subtipo.",
            "x-description-en": "Subtype."
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cidade.",
            "x-description-en": "City."
          },
          "citySlug": {
            "type": [
              "string",
              "null"
            ],
            "description": "Identificador da cidade.",
            "x-description-en": "City identifier."
          },
          "neighborhood": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bairro.",
            "x-description-en": "Neighborhood."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Quartos.",
            "x-description-en": "Bedrooms."
          },
          "suites": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Suítes.",
            "x-description-en": "Suites."
          },
          "bathrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Banheiros.",
            "x-description-en": "Bathrooms."
          },
          "parkingSpots": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Vagas.",
            "x-description-en": "Parking spots."
          },
          "usableAreaDeclared": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área útil que o proprietário declarou.",
            "x-description-en": "Usable area declared by the owner."
          },
          "areaDeclared": {
            "type": [
              "number",
              "null"
            ],
            "description": "Área total que o proprietário declarou.",
            "x-description-en": "Total area declared by the owner."
          },
          "priceExpected": {
            "type": [
              "number",
              "null"
            ],
            "description": "Valor que o proprietário espera.",
            "x-description-en": "Price the owner expects."
          },
          "sellTimeframe": {
            "type": [
              "string",
              "null"
            ],
            "description": "Prazo para vender: `AGORA`, `TRES_MESES`, `SEIS_MESES` ou `PESQUISANDO`.",
            "x-description-en": "Time frame to sell: `AGORA` (now), `TRES_MESES` (3 months), `SEIS_MESES` (6 months) or `PESQUISANDO` (just researching)."
          },
          "occupancy": {
            "type": [
              "string",
              "null"
            ],
            "description": "Ocupação: `PROPRIO` (o dono mora), `ALUGADO` ou `VAZIO`.",
            "x-description-en": "Occupancy: `PROPRIO` (owner lives there), `ALUGADO` (rented) or `VAZIO` (empty)."
          },
          "ownerRelation": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quem cadastrou: `DONO`, `COPROPRIETARIO`, `REPRESENTANTE` ou `OUTRO` (não é o proprietário).",
            "x-description-en": "Who registered: `DONO` (owner), `COPROPRIETARIO` (co-owner), `REPRESENTANTE` (legal representative) or `OUTRO` (not the owner)."
          },
          "exclusivityOpenness": {
            "type": [
              "string",
              "null"
            ],
            "description": "Aceita exclusividade: `SIM` ou `NAO`.",
            "x-description-en": "Accepts exclusivity: `SIM` (yes) or `NAO` (no)."
          },
          "alreadyListedDeclared": {
            "type": "boolean",
            "description": "Disse que já anuncia em outro lugar.",
            "x-description-en": "Said it is already listed elsewhere."
          },
          "priceCents": {
            "type": [
              "integer",
              "null"
            ],
            "description": "O preço do contato, em centavos — o que o aceite debita.",
            "x-description-en": "The contact price, in cents — what accepting debits."
          },
          "deadline": {
            "type": [
              "string",
              "null"
            ],
            "description": "Até quando dá para aceitar (o prazo corre só das 9h às 17h, nos dias de atendimento).",
            "x-description-en": "Accept deadline (the clock runs only 9am–5pm on service days).",
            "format": "date-time"
          },
          "matchingClients": {
            "type": "object",
            "description": "Quantos clientes da conta combinam.",
            "x-description-en": "How many account clients match.",
            "properties": {
              "city": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Clientes da conta que procuram algo assim na cidade (nulo = não deu para calcular).",
                "x-description-en": "Account clients looking for something like this in the city (null = could not compute)."
              },
              "neighborhood": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Os mesmos, no bairro.",
                "x-description-en": "The same, in the neighborhood."
              }
            },
            "required": [
              "city",
              "neighborhood"
            ]
          },
          "demand": {
            "type": [
              "object",
              "null"
            ],
            "description": "A procura medida pela plataforma.",
            "x-description-en": "Demand measured by the platform.",
            "properties": {
              "available": {
                "type": "boolean",
                "description": "Há procura medida.",
                "x-description-en": "Demand was measured."
              },
              "people": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Pessoas procurando.",
                "x-description-en": "People looking."
              },
              "scope": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Abrangência.",
                "x-description-en": "Scope."
              },
              "scopeName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Nome da abrangência.",
                "x-description-en": "Scope name."
              },
              "asOf": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Data da medida.",
                "x-description-en": "Measurement date."
              },
              "label": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "O que foi medido, por extenso.",
                "x-description-en": "What was measured, spelled out."
              }
            },
            "required": [
              "available",
              "people",
              "scope",
              "scopeName",
              "asOf",
              "label"
            ]
          },
          "stockNeighborhood": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Imóveis parecidos à venda no bairro.",
            "x-description-en": "Similar properties for sale in the neighborhood."
          },
          "ownerNameMasked": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nome mascarado (antes do aceite).",
            "x-description-en": "Masked name (before accepting)."
          },
          "ownerPhoneVerifiedVia": {
            "type": [
              "string",
              "null"
            ],
            "description": "Como o telefone do proprietário foi confirmado.",
            "x-description-en": "How the owner's phone was verified."
          },
          "ownerPhoneVerifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando.",
            "x-description-en": "When.",
            "format": "date-time"
          },
          "revealed": {
            "type": "boolean",
            "description": "O contato já foi liberado para a conta (aceito). Antes disso, `owner` e `address` NÃO existem na resposta.",
            "x-description-en": "The contact was released to the account (accepted). Before that, `owner` and `address` do NOT exist in the response."
          },
          "createdAt": {
            "type": "string",
            "description": "Quando foi criado (UTC).",
            "x-description-en": "When it was created (UTC).",
            "format": "date-time"
          },
          "owner": {
            "type": "object",
            "description": "O proprietário (só depois do aceite).",
            "x-description-en": "The owner (only after accepting).",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Nome.",
                "x-description-en": "Name."
              },
              "phone": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Telefone.",
                "x-description-en": "Phone."
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "E-mail.",
                "x-description-en": "E-mail."
              }
            },
            "required": [
              "name",
              "phone",
              "email"
            ]
          },
          "address": {
            "type": "object",
            "description": "O endereço (só depois do aceite).",
            "x-description-en": "The address (only after accepting).",
            "properties": {
              "street": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Rua.",
                "x-description-en": "Street."
              },
              "number": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Número.",
                "x-description-en": "Number."
              },
              "complement": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Complemento.",
                "x-description-en": "Complement."
              },
              "neighborhood": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Bairro.",
                "x-description-en": "Neighborhood."
              },
              "city": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Cidade.",
                "x-description-en": "City."
              }
            },
            "required": [
              "street",
              "number",
              "complement",
              "neighborhood",
              "city"
            ]
          },
          "acceptedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi aceito.",
            "x-description-en": "When it was accepted.",
            "format": "date-time"
          },
          "acceptedVia": {
            "type": [
              "object",
              "null"
            ],
            "description": "Como foi aceito: pela tela ou pela API (com a chave, o IP e a versão do termo).",
            "x-description-en": "How it was accepted: in the dashboard or through the API (with the key, the IP and the terms version).",
            "properties": {},
            "additionalProperties": true
          },
          "refundUntil": {
            "type": [
              "string",
              "null"
            ],
            "description": "Até quando cabe pedir devolução.",
            "x-description-en": "Refund request deadline.",
            "format": "date-time"
          },
          "refundedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi devolvido.",
            "x-description-en": "When it was refunded.",
            "format": "date-time"
          },
          "soldAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando o imóvel foi vendido.",
            "x-description-en": "When the property was sold.",
            "format": "date-time"
          },
          "stage": {
            "type": [
              "string",
              "null"
            ],
            "description": "Etapa na mesa.",
            "x-description-en": "Stage on the desk."
          },
          "stageLabel": {
            "type": [
              "string",
              "null"
            ],
            "description": "Etapa por extenso.",
            "x-description-en": "Stage, spelled out."
          },
          "lostReason": {
            "type": [
              "string",
              "null"
            ],
            "description": "Motivo da perda.",
            "x-description-en": "Lost reason."
          },
          "note": {
            "type": [
              "string",
              "null"
            ],
            "description": "Anotação.",
            "x-description-en": "Note."
          },
          "tab": {
            "type": [
              "string",
              "null"
            ],
            "description": "Aba da mesa: `ACTIVE`, `CAPTURED` ou `ARCHIVED`.",
            "x-description-en": "Desk tab: `ACTIVE`, `CAPTURED` or `ARCHIVED`."
          }
        },
        "required": [
          "id",
          "status",
          "purpose",
          "propertyType",
          "city",
          "citySlug",
          "neighborhood",
          "bedrooms",
          "suites",
          "bathrooms",
          "parkingSpots",
          "usableAreaDeclared",
          "areaDeclared",
          "priceExpected",
          "sellTimeframe",
          "occupancy",
          "ownerRelation",
          "exclusivityOpenness",
          "alreadyListedDeclared",
          "priceCents",
          "deadline",
          "matchingClients",
          "demand",
          "stockNeighborhood",
          "ownerNameMasked",
          "ownerPhoneVerifiedVia",
          "ownerPhoneVerifiedAt",
          "revealed",
          "createdAt"
        ]
      },
      "CaptacaoSummary": {
        "type": "object",
        "description": "O resumo da mesa.",
        "x-description-en": "Desk summary.",
        "properties": {
          "pendingCount": {
            "type": "integer",
            "description": "Proprietários na vez da conta agora.",
            "x-description-en": "Owners offered to the account right now."
          },
          "balanceCents": {
            "type": "integer",
            "description": "Crédito, em centavos.",
            "x-description-en": "Credit, in cents."
          },
          "subscriptionActive": {
            "type": "boolean",
            "description": "Assinatura do módulo em dia.",
            "x-description-en": "Module subscription active."
          },
          "platformActive": {
            "type": "boolean",
            "description": "O módulo está valendo na plataforma.",
            "x-description-en": "The module is on for the platform."
          },
          "paused": {
            "type": "boolean",
            "description": "A conta pausou o recebimento.",
            "x-description-en": "The account paused receiving owners."
          },
          "pausedAuto": {
            "type": "boolean",
            "description": "Pausa automática (prazos vencidos em sequência).",
            "x-description-en": "Automatic pause (deadlines missed in a row)."
          },
          "expiredStreak": {
            "type": "integer",
            "description": "Prazos vencidos em sequência.",
            "x-description-en": "Deadlines missed in a row."
          },
          "autoPauseAfter": {
            "type": [
              "integer",
              "null"
            ],
            "description": "A pausa automática vem depois de quantos.",
            "x-description-en": "Automatic pause after how many."
          },
          "inActivation": {
            "type": "boolean",
            "description": "Em ativação (antes da 1ª recarga).",
            "x-description-en": "In activation (before the first top-up)."
          },
          "leadsToFirstCharge": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Aceites até a 1ª recarga.",
            "x-description-en": "Accepts until the first top-up."
          },
          "rechargePending": {
            "type": "boolean",
            "description": "Recarga em andamento.",
            "x-description-en": "Top-up in progress."
          },
          "operatingCities": {
            "type": "array",
            "description": "Cidades atendidas.",
            "x-description-en": "Cities served.",
            "items": {
              "type": "string",
              "description": "Cidade.",
              "x-description-en": "City."
            }
          },
          "purposes": {
            "type": "array",
            "description": "Finalidades atendidas.",
            "x-description-en": "Purposes served.",
            "items": {
              "type": "string",
              "description": "Finalidade.",
              "x-description-en": "Purpose."
            }
          },
          "serviceDays": {
            "type": "array",
            "description": "Dias de atendimento.",
            "x-description-en": "Service days.",
            "items": {
              "type": "string",
              "description": "Dia.",
              "x-description-en": "Day."
            }
          }
        },
        "required": [
          "pendingCount",
          "balanceCents",
          "subscriptionActive",
          "platformActive",
          "paused",
          "pausedAuto",
          "expiredStreak",
          "autoPauseAfter",
          "inActivation",
          "leadsToFirstCharge",
          "rechargePending",
          "operatingCities",
          "purposes",
          "serviceDays"
        ]
      },
      "CaptacaoAcceptResult": {
        "type": "object",
        "description": "O desfecho do aceite.",
        "x-description-en": "The accept outcome.",
        "properties": {
          "outcome": {
            "type": "string",
            "description": "`ACCEPTED`, `ALREADY_ACCEPTED` (sem segundo débito) ou, em ensaio, `WOULD_ACCEPT`.",
            "x-description-en": "`ACCEPTED`, `ALREADY_ACCEPTED` (no second debit) or, in a dry run, `WOULD_ACCEPT`."
          },
          "dryRun": {
            "type": "boolean",
            "description": "Foi um ensaio — nada foi debitado.",
            "x-description-en": "It was a dry run — nothing was debited."
          },
          "priceCents": {
            "type": [
              "integer",
              "null"
            ],
            "description": "O valor debitado (ou que seria), em centavos.",
            "x-description-en": "The amount debited (or that would be), in cents."
          }
        },
        "required": [
          "outcome",
          "dryRun",
          "priceCents"
        ]
      },
      "Event": {
        "type": "object",
        "description": "Um evento.",
        "x-description-en": "An event.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do evento (`evt_…`) — o mesmo `webhook-id` da entrega. Use-o para não processar duas vezes.",
            "x-description-en": "Event id (`evt_…`) — the same `webhook-id` as the delivery. Use it to avoid processing twice."
          },
          "type": {
            "type": "string",
            "description": "Tipo.",
            "x-description-en": "Type.",
            "enum": [
              "property.created",
              "property.updated",
              "property.deleted",
              "property.restored",
              "property.purged",
              "lead.created",
              "lead.updated",
              "lead.deleted",
              "lead.restored",
              "lead.purged",
              "radar.client_summary",
              "partnership.created",
              "partnership.updated",
              "captacao.offer_received",
              "captacao.offer_accepted",
              "captacao.offer_withdrawn"
            ]
          },
          "createdAt": {
            "type": "string",
            "description": "Quando foi registrado (UTC).",
            "x-description-en": "When it was recorded (UTC).",
            "format": "date-time"
          },
          "data": {
            "type": "object",
            "description": "O que mudou, enxuto: ids, o estado e `changedFields` (os NOMES dos campos que mudaram). Nunca nome, telefone, e-mail ou endereço — busque o detalhe pela leitura do recurso.",
            "x-description-en": "What changed, lean: ids, state and `changedFields` (the NAMES of the changed fields). Never name, phone, e-mail or address — fetch the detail by reading the resource.",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "id",
          "type",
          "createdAt",
          "data"
        ]
      },
      "Webhook": {
        "type": "object",
        "description": "Um endereço de webhook. O segredo nunca sai aqui.",
        "x-description-en": "A webhook endpoint. The secret never comes back here.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do endereço (`wh_…`).",
            "x-description-en": "Endpoint id (`wh_…`)."
          },
          "url": {
            "type": "string",
            "description": "O endereço (só HTTPS).",
            "x-description-en": "The URL (HTTPS only)."
          },
          "types": {
            "type": "array",
            "description": "Os tipos que ele recebe (vazio = todos os que a conta lê).",
            "x-description-en": "The types it receives (empty = all the account can read).",
            "items": {
              "type": "string",
              "description": "Tipo.",
              "x-description-en": "Type.",
              "enum": [
                "property.created",
                "property.updated",
                "property.deleted",
                "property.restored",
                "property.purged",
                "lead.created",
                "lead.updated",
                "lead.deleted",
                "lead.restored",
                "lead.purged",
                "radar.client_summary",
                "partnership.created",
                "partnership.updated",
                "captacao.offer_received",
                "captacao.offer_accepted",
                "captacao.offer_withdrawn"
              ]
            }
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Descrição.",
            "x-description-en": "Description."
          },
          "status": {
            "type": "string",
            "description": "`ACTIVE` ou `DISABLED`.",
            "x-description-en": "`ACTIVE` or `DISABLED`.",
            "enum": [
              "ACTIVE",
              "DISABLED"
            ]
          },
          "disabledAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi desligado.",
            "x-description-en": "When it was disabled.",
            "format": "date-time"
          },
          "disabledReason": {
            "type": [
              "string",
              "null"
            ],
            "description": "`GONE_410` (o seu sistema respondeu 410), `FAILURE_RATE` (metade ou mais das entregas falhou em 48 h) ou `MANUAL`.",
            "x-description-en": "`GONE_410` (your system answered 410), `FAILURE_RATE` (half or more of the deliveries failed in 48 h) or `MANUAL`."
          },
          "secretRotatedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Última troca do segredo.",
            "x-description-en": "Last secret rotation.",
            "format": "date-time"
          },
          "previousSecretValidUntil": {
            "type": [
              "string",
              "null"
            ],
            "description": "Até quando o segredo anterior ainda assina junto (24 h depois da troca).",
            "x-description-en": "Until when the previous secret still signs alongside (24 h after rotation).",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "description": "Quando foi criado (UTC).",
            "x-description-en": "When it was created (UTC).",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Última alteração (UTC).",
            "x-description-en": "Last change (UTC).",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "url",
          "types",
          "description",
          "status",
          "disabledAt",
          "disabledReason",
          "secretRotatedAt",
          "previousSecretValidUntil",
          "createdAt",
          "updatedAt"
        ]
      },
      "WebhookCreate": {
        "type": "object",
        "description": "Um endereço novo.",
        "x-description-en": "A new endpoint.",
        "properties": {
          "url": {
            "type": "string",
            "description": "O endereço, só HTTPS e público. Credencial na URL é recusada.",
            "x-description-en": "The URL, HTTPS and public only. Credentials in the URL are refused.",
            "maxLength": 2048
          },
          "types": {
            "type": "array",
            "description": "Os tipos (ausente = todos os que a conta lê).",
            "x-description-en": "The types (absent = all the account can read).",
            "items": {
              "type": "string",
              "description": "Tipo.",
              "x-description-en": "Type.",
              "enum": [
                "property.created",
                "property.updated",
                "property.deleted",
                "property.restored",
                "property.purged",
                "lead.created",
                "lead.updated",
                "lead.deleted",
                "lead.restored",
                "lead.purged",
                "radar.client_summary",
                "partnership.created",
                "partnership.updated",
                "captacao.offer_received",
                "captacao.offer_accepted",
                "captacao.offer_withdrawn"
              ]
            }
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Descrição.",
            "x-description-en": "Description.",
            "maxLength": 200
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      },
      "WebhookUpdate": {
        "type": "object",
        "description": "O que mudar no endereço.",
        "x-description-en": "What to change on the endpoint.",
        "properties": {
          "url": {
            "type": "string",
            "description": "O endereço.",
            "x-description-en": "The URL.",
            "maxLength": 2048
          },
          "types": {
            "type": "array",
            "description": "Os tipos.",
            "x-description-en": "The types.",
            "items": {
              "type": "string",
              "description": "Tipo.",
              "x-description-en": "Type.",
              "enum": [
                "property.created",
                "property.updated",
                "property.deleted",
                "property.restored",
                "property.purged",
                "lead.created",
                "lead.updated",
                "lead.deleted",
                "lead.restored",
                "lead.purged",
                "radar.client_summary",
                "partnership.created",
                "partnership.updated",
                "captacao.offer_received",
                "captacao.offer_accepted",
                "captacao.offer_withdrawn"
              ]
            }
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Descrição.",
            "x-description-en": "Description.",
            "maxLength": 200
          },
          "status": {
            "type": "string",
            "description": "`ACTIVE` religa (limpa o motivo do desligamento) e `DISABLED` desliga.",
            "x-description-en": "`ACTIVE` re-enables (clears the disable reason) and `DISABLED` disables.",
            "enum": [
              "ACTIVE",
              "DISABLED"
            ]
          }
        },
        "additionalProperties": false
      },
      "Delivery": {
        "type": "object",
        "description": "Uma entrega de evento a um endereço.",
        "x-description-en": "One event delivery to an endpoint.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id da entrega (`dlv_…`).",
            "x-description-en": "Delivery id (`dlv_…`)."
          },
          "eventId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O evento entregue.",
            "x-description-en": "The delivered event."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tipo do evento.",
            "x-description-en": "Event type."
          },
          "status": {
            "type": "string",
            "description": "`PENDING`, `RETRYING`, `DELIVERED`, `FAILED` (esgotou as tentativas) ou `SKIPPED` (o endereço estava desligado).",
            "x-description-en": "`PENDING`, `RETRYING`, `DELIVERED`, `FAILED` (out of retries) or `SKIPPED` (the endpoint was disabled)."
          },
          "attempts": {
            "type": "integer",
            "description": "Tentativas feitas.",
            "x-description-en": "Attempts made."
          },
          "lastStatusCode": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Último código HTTP do seu sistema.",
            "x-description-en": "Last HTTP status from your system."
          },
          "lastError": {
            "type": [
              "string",
              "null"
            ],
            "description": "Último erro.",
            "x-description-en": "Last error."
          },
          "lastAttemptAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Última tentativa.",
            "x-description-en": "Last attempt.",
            "format": "date-time"
          },
          "nextAttemptAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Próxima tentativa (1 min, 5 min, 30 min, 2 h, 6 h e 12 h).",
            "x-description-en": "Next attempt (1 min, 5 min, 30 min, 2 h, 6 h and 12 h).",
            "format": "date-time"
          },
          "deliveredAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi entregue.",
            "x-description-en": "When it was delivered.",
            "format": "date-time"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando a entrega foi aberta.",
            "x-description-en": "When the delivery was opened.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "eventId",
          "type",
          "status",
          "attempts",
          "lastStatusCode",
          "lastError",
          "lastAttemptAt",
          "nextAttemptAt",
          "deliveredAt",
          "createdAt"
        ]
      },
      "WebhookTestResult": {
        "type": "object",
        "description": "O resultado do evento de teste (`webhook.test`).",
        "x-description-en": "The test event result (`webhook.test`).",
        "properties": {
          "delivered": {
            "type": "boolean",
            "description": "O seu sistema respondeu 2xx.",
            "x-description-en": "Your system answered 2xx."
          },
          "statusCode": {
            "type": [
              "integer",
              "null"
            ],
            "description": "O código que ele respondeu.",
            "x-description-en": "The status it answered."
          },
          "error": {
            "type": [
              "string",
              "null"
            ],
            "description": "O motivo da falha.",
            "x-description-en": "The failure reason."
          },
          "ms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Tempo da entrega, em ms.",
            "x-description-en": "Delivery time, in ms."
          }
        },
        "required": [
          "delivered",
          "statusCode",
          "error",
          "ms"
        ]
      },
      "BatchCreated": {
        "type": "object",
        "description": "O lote recebido.",
        "x-description-en": "The received batch.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do lote (`b-…`).",
            "x-description-en": "Batch id (`b-…`)."
          },
          "type": {
            "type": "string",
            "description": "`properties` ou `leads`.",
            "x-description-en": "`properties` or `leads`.",
            "enum": [
              "properties",
              "leads"
            ]
          },
          "status": {
            "type": "string",
            "description": "`QUEUED`, ou `DONE` quando nenhum item era válido.",
            "x-description-en": "`QUEUED`, or `DONE` when no item was valid.",
            "enum": [
              "QUEUED",
              "RUNNING",
              "DONE"
            ]
          },
          "total": {
            "type": "integer",
            "description": "Itens recebidos.",
            "x-description-en": "Items received."
          },
          "accepted": {
            "type": "integer",
            "description": "Itens que seguiram para o processamento.",
            "x-description-en": "Items queued for processing."
          },
          "rejected": {
            "type": "integer",
            "description": "Itens recusados na forma (veja o resultado).",
            "x-description-en": "Items rejected on shape (see the result)."
          },
          "dryRun": {
            "type": "boolean",
            "description": "O lote inteiro é um ensaio.",
            "x-description-en": "The whole batch is a dry run."
          }
        },
        "required": [
          "id",
          "type",
          "status",
          "total",
          "accepted",
          "rejected",
          "dryRun"
        ]
      },
      "BatchItem": {
        "type": "object",
        "description": "O resultado de um item.",
        "x-description-en": "One item result.",
        "properties": {
          "index": {
            "type": "integer",
            "description": "Posição no pedido.",
            "x-description-en": "Position in the request."
          },
          "externalRef": {
            "type": [
              "string",
              "null"
            ],
            "description": "O código do item.",
            "x-description-en": "The item's code."
          },
          "outcome": {
            "type": "string",
            "description": "O desfecho do item — os mesmos do PUT pelo código, mais `PENDING` (ainda na fila) e `REJECTED`.",
            "x-description-en": "The item's outcome — the same as the PUT by code, plus `PENDING` (still queued) and `REJECTED`."
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "O id do imóvel ou cliente.",
            "x-description-en": "The property or client id."
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "O código de erro, quando recusado.",
            "x-description-en": "The error code, when refused."
          },
          "detail": {
            "type": [
              "string",
              "null"
            ],
            "description": "Detalhe.",
            "x-description-en": "Detail."
          },
          "invalidParams": {
            "type": [
              "array",
              "null"
            ],
            "description": "Os problemas de forma.",
            "x-description-en": "Shape problems.",
            "items": {
              "type": "object",
              "description": "Problema.",
              "x-description-en": "Problem.",
              "properties": {},
              "additionalProperties": true
            }
          },
          "photos": {
            "type": [
              "string",
              "null"
            ],
            "description": "A galeria (imóveis).",
            "x-description-en": "The gallery (properties)."
          }
        },
        "required": [
          "index",
          "externalRef",
          "outcome",
          "id",
          "code",
          "detail",
          "invalidParams",
          "photos"
        ]
      },
      "Batch": {
        "type": "object",
        "description": "Um lote, com o desfecho de cada item.",
        "x-description-en": "A batch, with each item outcome.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id do lote.",
            "x-description-en": "Batch id."
          },
          "type": {
            "type": "string",
            "description": "`properties` ou `leads`.",
            "x-description-en": "`properties` or `leads`.",
            "enum": [
              "properties",
              "leads"
            ]
          },
          "status": {
            "type": "string",
            "description": "`QUEUED`, `RUNNING` ou `DONE`.",
            "x-description-en": "`QUEUED`, `RUNNING` or `DONE`.",
            "enum": [
              "QUEUED",
              "RUNNING",
              "DONE"
            ]
          },
          "dryRun": {
            "type": "boolean",
            "description": "Ensaio.",
            "x-description-en": "Dry run."
          },
          "total": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Itens.",
            "x-description-en": "Items."
          },
          "processed": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Itens com desfecho.",
            "x-description-en": "Items with an outcome."
          },
          "counts": {
            "type": "object",
            "description": "Contagem por desfecho (`CREATED`, `UPDATED`, `REJECTED`…).",
            "x-description-en": "Count per outcome (`CREATED`, `UPDATED`, `REJECTED`…).",
            "additionalProperties": {
              "type": "integer",
              "description": "Quantos.",
              "x-description-en": "How many."
            }
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando foi recebido.",
            "x-description-en": "When it was received.",
            "format": "date-time"
          },
          "startedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando começou.",
            "x-description-en": "When it started.",
            "format": "date-time"
          },
          "finishedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Quando terminou.",
            "x-description-en": "When it finished.",
            "format": "date-time"
          },
          "results": {
            "type": "array",
            "description": "O desfecho de cada item, na ordem do pedido.",
            "x-description-en": "Each item outcome, in request order.",
            "items": {
              "$ref": "#/components/schemas/BatchItem",
              "description": "Item.",
              "x-description-en": "Item."
            }
          }
        },
        "required": [
          "id",
          "type",
          "status",
          "dryRun",
          "total",
          "processed",
          "counts",
          "createdAt",
          "startedAt",
          "finishedAt",
          "results"
        ]
      },
      "ConfirmItem": {
        "type": "object",
        "description": "O desfecho de um imóvel na confirmação.",
        "x-description-en": "One property outcome in the confirmation.",
        "properties": {
          "id": {
            "type": "string",
            "description": "O id pedido (quando o pedido veio por `ids`).",
            "x-description-en": "The requested id (when the request used `ids`)."
          },
          "ref": {
            "type": "string",
            "description": "O código pedido (quando o pedido veio por `refs`).",
            "x-description-en": "The requested code (when the request used `refs`)."
          },
          "propertyId": {
            "type": [
              "string",
              "null"
            ],
            "description": "O imóvel achado (nulo quando não achou).",
            "x-description-en": "The property found (null when not found)."
          },
          "outcome": {
            "type": "string",
            "description": "`CONFIRMED`, `ALREADY_CONFIRMED` (há menos de 24 h — não regrava) ou `NOT_FOUND`.",
            "x-description-en": "`CONFIRMED`, `ALREADY_CONFIRMED` (less than 24 h ago — not rewritten) or `NOT_FOUND`.",
            "enum": [
              "CONFIRMED",
              "ALREADY_CONFIRMED",
              "NOT_FOUND"
            ]
          }
        },
        "required": [
          "propertyId",
          "outcome"
        ]
      }
    }
  }
}
