Pular para o conteúdo principal

Referência das rotas de negócio

Este catálogo reúne as rotas de negócio dos módulos de cadastro, carteiras, cobrança, comunicação, mandatos, negociação, documentos, financeiro e portal. Ele complementa os guias e o schema OpenAPI da versão do ambiente.

Como interpretar​

Nas tabelas de equipe, acrescente /api/v1 ao caminho. A sessão humana ou chave de organização deve satisfazer a permissão indicada, o estado de acesso e os escopos do produto. ou significa que ao menos uma das permissões listadas é exigida. Pessoa indica uma verificação explícita de identidade humana além da permissão; chave de API não executa essa operação.

Na seção Audience, acrescente /api/audience/v1. O usuário precisa de sessão Audience, relationship ativo e autorização específica do portal do credor. Uma membership de equipe ou chave de API não substitui esses requisitos.

O parâmetro com nome terminado em _id não define sozinho o formato. Nas rotas de empresas e membros de uma carteira (/portfolios/{portfolio_id}/companies e /members), a carteira vai pelo código de quatro caracteres ou pelo UUID, e company_id e membership_id (no corpo e no caminho do DELETE) também aceitam um ou outro. Muitos recursos usam o code público de quatro caracteres no caminho e UUID nas associações JSON. Cotações, exceções e outros recursos específicos podem receber UUID. Confirme o schema antes de construir URLs.

Os status e efeitos dependem da regra do comando: exclusão pode ser lógica, uma solicitação pode aguardar aprovação e um recebimento assíncrono pode aguardar processamento. A existência de uma rota não garante que a capacidade ou o conector estejam habilitados.

Devedores e contas​

MétodoCaminhoFinalidadeAutorização mínima
GET/debtorsListar devedorescobres.debtors.read
POST/debtors/lookupConsultar cadastro por CNPJcobres.debtors.create ou cobres.debtors.update ou cobres.debtor_accounts.create
POST/debtorsCadastrar devedorcobres.debtors.create
GET/debtors/{debtor_id}Consultar devedorcobres.debtors.read
PATCH/debtors/{debtor_id}Editar devedorcobres.debtors.update
DELETE/debtors/{debtor_id}Remover devedorcobres.debtors.delete
GET/debtor-accountsListar contas por credorcobres.debtor_accounts.read
POST/debtor-accountsCriar ou assegurar conta de devedorcobres.debtor_accounts.create
GET/debtor-accounts/{account_id}Consultar contacobres.debtor_accounts.read
DELETE/debtor-accounts/{account_id}Remover contacobres.debtor_accounts.delete
GET/debtors/{debtor_id}/addressesListar endereços adicionais do devedor (até 20 por devedor)cobres.debtors.read
POST/debtors/{debtor_id}/addressesCadastrar endereçocobres.debtors.create ou cobres.debtors.update
GET/debtors/{debtor_id}/addresses/{address_id}Consultar endereçocobres.debtors.read
PATCH/debtors/{debtor_id}/addresses/{address_id}Editar endereçocobres.debtors.update
DELETE/debtors/{debtor_id}/addresses/{address_id}Remover endereçocobres.debtors.delete
GET/debtors/{debtor_id}/referencesListar referências do devedor (até 50 por devedor)cobres.debtors.read
POST/debtors/{debtor_id}/referencesCadastrar referênciacobres.debtors.create ou cobres.debtors.update
GET/debtors/{debtor_id}/references/{reference_id}Consultar referênciacobres.debtors.read
PATCH/debtors/{debtor_id}/references/{reference_id}Editar referênciacobres.debtors.update
DELETE/debtors/{debtor_id}/references/{reference_id}Remover referênciacobres.debtors.delete
GET/debtors/{debtor_id}/channel-attributesListar atributos dos telefones e e-mails conhecidoscobres.debtors.read
PUT/debtors/{debtor_id}/channel-attributesGravar atributos dos telefones e e-mails (tipo, ramal, ativo, contato)cobres.debtors.create ou cobres.debtors.update

Origem do cadastro. POST /debtors, PATCH /debtors/{debtor_id}, POST /companies e PATCH /companies/{company_id} aceitam source_system (1 a 64 caracteres) e source_record_id (1 a 80): de onde o registro veio num sistema externo e a chave que ele tinha lá. Os dois vão juntos ou nenhum (422 se vier só um), são aparados, o sistema é guardado e comparado em minúsculas, e a origem é única por organização entre os registros vivos (a mesma origem em outra organização é outro registro). Uma vez definida, a origem não muda nem se limpa: qualquer chamada que cite uma das chaves num registro que já tem origem responde 409 debtor_source_locked ou company_source_locked, e nada mais daquela chamada é gravado. Repetir uma origem de um registro vivo da organização é 409 debtor_source_conflict ou company_source_conflict (o documento ou o CNPJ repetido continua sendo 409 conflict). Para acrescentar a origem a um registro que não tem, use PATCH só com as duas chaves: nada além delas muda. As respostas de GET, POST e PATCH e as linhas de GET /debtors e GET /companies devolvem os dois campos (null sem origem); GET /creditors/{company_id} devolve os da empresa do credor, e POST /creditors também os aceita. O filter das listagens de devedores, empresas, dívidas e acordos aceita source_system e source_record_id (eq, neq, contains, in, is_null; GET /collection/debts aceita só source_record_id) e o q acha pelo source_record_id; em GET /debtors o q tira máscaras como faz com documento e telefone (., -, /, parênteses e espaços), então uma chave com pontuação se acha pelo filter. POST /debtor-accounts também aceita a origem dentro de debtor quando a chamada cria o devedor (mesmos erros); um devedor que já existe é devolvido intacto e a origem enviada é ignorada (use PATCH /debtors/{debtor_id}). Dados extras do sistema de origem vão em metadata, o mapa plano de textos (até 50 entradas, chave de 1 a 64 caracteres, valor de até 500; um PATCH com metadata troca o mapa inteiro).

Dívidas e pesquisa​

MétodoCaminhoFinalidadeAutorização mínima
GET/debtsListar dívidascobres.debts.read
POST/debtsCadastrar dívidacobres.debts.create
GET/debts/{debt_id}Consultar dívidacobres.debts.read
PATCH/debts/{debt_id}Editar dívidacobres.debts.update
DELETE/debts/{debt_id}Remover dívidacobres.debts.delete
GET/search/debtsPesquisar dívidas por código, documento, nome, referência externa ou número da dívida no sistema de origem (source_record_id; matched diz o que casou)cobres.debts.read
GET/debts/{debt_id}/balanceSaldo da dívida em uma data (?on=AAAA-MM-DD; hoje em UTC por padrão): principal e encargos acumuladoscobres.debts.read
GET/debts/{debt_id}/historyTrilha de alterações da dívida, da mais recente para a mais antiga (limit de 1 a 200, padrão 50; before pagina)cobres.debts.read
PUT/debts/{debt_id}/legalClassificar a situação judicial e a restrição de cobrança (expected_revision, reason, judicial_status, collection_restriction, legal_details)cobres.debts.update
POST/debts/{debt_id}/legal-reviewDecidir a revisão jurídica (decision: approved ou blocked; expected_revision, reason)cobres.debts.legal_review
GET/debts/{debt_id}/workflow-demandsListar os quadros (demandas) abertos para a dívida e suas atividadescobres.collection.read

PATCH /debts/{debt_id} e DELETE /debts/{debt_id} exigem reason (3 a 500 caracteres), gravado na trilha da dívida. A dívida carrega o início da dívida (debt_started_on, opcional; PATCH com null limpa) e o prazo da cobrança (limit_on e window_status: none, open, expiring a até 90 dias do limite, expired). GET /debts e GET /collection/debts aceitam ?window_status= (um ou mais valores, repetidos ou por vírgula) e o filter aceita debt_started_on e due_date (datas YYYY-MM-DD; operadores eq, neq, gt, gte, lt, lte, in, is_null; outro formato é 400 listing_invalid). O q das duas listagens e a busca rápida também acham pelo source_record_id, e GET /collection/debts devolve source_record_id. O saldo de GET /debts/{debt_id}/balance traz accrual_source (none, mandate, portfolio, debt), accrual_stop_on e accrual_frozen.

Carteiras e atribuições​

MétodoCaminhoFinalidadeAutorização mínima
GET/portfoliosListar carteirascobres.portfolios.read
POST/portfoliosCriar carteiracobres.portfolios.manage
GET/portfolios/{portfolio_id}Consultar carteiracobres.portfolios.read
PATCH/portfolios/{portfolio_id}Editar carteiracobres.portfolios.manage
DELETE/portfolios/{portfolio_id}Remover carteiracobres.portfolios.manage
GET/portfolios/{portfolio_id}/companiesListar credores da carteiracobres.portfolios.read
POST/portfolios/{portfolio_id}/companiesAdicionar credor à carteiracobres.portfolios.manage
DELETE/portfolios/{portfolio_id}/companies/{company_id}Retirar credor da carteiracobres.portfolios.manage
GET/portfolios/{portfolio_id}/membersListar membros da carteiracobres.portfolios.read
POST/portfolios/{portfolio_id}/membersAdicionar membro à carteiracobres.portfolios.manage
DELETE/portfolios/{portfolio_id}/members/{membership_id}Retirar membro da carteiracobres.portfolios.manage
GET/portfolios/{portfolio_id}/accountsListar contas da carteiracobres.portfolios.read
POST/portfolios/{portfolio_id}/accountsColocar conta na carteiracobres.assignments.manage
DELETE/portfolios/{portfolio_id}/accounts/{account_id}Retirar conta da carteiracobres.assignments.manage
POST/portfolios/{portfolio_id}/accounts/{account_id}/moveMover conta para outra carteiracobres.assignments.manage
GET/portfolios/{portfolio_id}/assignmentsListar atribuiçõescobres.assignments.read
POST/portfolios/{portfolio_id}/assignmentsAtribuir conta a membrocobres.assignments.manage
POST/portfolios/{portfolio_id}/accounts/{account_id}/unassignEncerrar atribuição da contacobres.assignments.manage
GET/portfolios/{portfolio_id}/responsibilitiesListar responsabilidades por credorcobres.assignments.read
POST/portfolios/{portfolio_id}/responsibilitiesAtribuir responsabilidade por credorcobres.assignments.manage
DELETE/portfolios/{portfolio_id}/responsibilities/{responsibility_id}Encerrar responsabilidade por credorcobres.assignments.manage

Cotações, negociação e acordos​

MétodoCaminhoFinalidadeAutorização mínima
POST/debts/{debt_id}/quotesCriar cotaçãocobres.quotes.create
GET/quotes/{quote_id}Consultar cotaçãocobres.quotes.create
POST/quotes/{quote_id}/exceptionSolicitar exceção: abre o cartão Aprovar proposta, decidido pelas transições da demanda (/requests/demands/{código}/transitions)cobres.offers.request
GET/offer-approval-requests/{demand_id}Consultar a proposta de um cartão Aprovar proposta (código da demanda)cobres.collection.read
GET/debts/{debt_id}/negotiation-scenariosConsultar cenários de negociaçãocobres.quotes.create
POST/debts/{debt_id}/offers/evaluateAvaliar condições da ofertacobres.quotes.create
GET/debts/{debt_id}/negotiation-limitsConsultar limites da negociaçãocobres.quotes.create
POST/quotes/{quote_id}/agreementGerar acordo pela cotaçãocobres.agreements.create
POST/debts/{debt_id}/agreementsAbrir acordo da dívidacobres.agreements.create
GET/debts/{debt_id}/negotiation-stateConsultar estado da negociaçãocobres.quotes.create
GET/agreementsListar acordoscobres.agreements.read
GET/agreements/breach-queueConsultar fila de quebracobres.agreements.break
GET/agreements/{agreement_id}Consultar acordocobres.agreements.read
GET/debts/{debt_id}/agreementConsultar acordo aberto da dívidacobres.agreements.read
POST/debts/{debt_id}/lawsuitEncaminhar a dívida para ajuizamento (abre o cartão "Ajuizar dívida")cobres.lawsuits.request
GET/debts/{debt_id}/lawsuitConsultar o ajuizamento da dívidacobres.debts.read
GET/lawsuit-requests/{demand_id}Consultar a dívida de um cartão "Ajuizar dívida"cobres.debts.read
GET/breach-review-requests/{demand_id}Consultar o acordo de um cartão "Revisar quebra de acordo" (a quebra é decidida nas transições do cartão)cobres.agreements.read
POST/debts/{debt_id}/agreements/importImportar um acordo negociado fora do COBRES (repetir o mesmo source_record_id na mesma dívida não altera nada: 201 se criou, 200 se já existia)cobres.agreements.import
POST/agreements/{agreement_id}/steps/take-overO COBRES assume uma etapa que um sistema externo ainda cobrava (kind, sequence, reason)cobres.agreements.import

Conectores, conexões e aprovações financeiras​

MétodoCaminhoFinalidadeAutorização mínima
GET/finance/connectorsListar conectores disponíveiscobres.finance.read ou cobres.finance.connections.manage
GET/finance/connectionsListar conexõescobres.finance.read ou cobres.finance.connections.manage
POST/finance/connectionsInstalar conexãoPessoa; cobres.finance.connections.manage
GET/finance/connections/{connection_id}Consultar conexãocobres.finance.read ou cobres.finance.connections.manage
PATCH/finance/connections/{connection_id}Editar conexãoPessoa; cobres.finance.connections.manage
POST/finance/connections/{connection_id}/testTestar conexãoPessoa; cobres.finance.connections.manage
POST/finance/connections/{connection_id}/activateAtivar conexãoPessoa; cobres.finance.connections.manage
POST/finance/connections/{connection_id}/pausePausar conexãoPessoa; cobres.finance.connections.manage
POST/finance/connections/{connection_id}/defaultDefinir conexão padrãoPessoa; cobres.finance.connections.manage
DELETE/finance/connections/{connection_id}Remover conexãoPessoa; cobres.finance.connections.manage
POST/finance/connections/{connection_id}/credentialsAlterar credenciais do conectorPessoa; cobres.finance.connections.manage
POST/finance/webhooks/{connection_id}Receber mensagem do provedorContrato de autenticação do conector
GET/finance/approvalsListar solicitações de aprovaçãocobres.finance.read ou cobres.finance.approve ou cobres.finance.manual_payments.request ou cobres.finance.connections.manage
GET/finance/approvals/pending-countContar aprovações pendentescobres.finance.read ou cobres.finance.approve
POST/finance/approvals/{approval_id}/approveAprovar solicitaçãoPessoa; cobres.finance.approve
POST/finance/approvals/{approval_id}/rejectRejeitar solicitaçãoPessoa; cobres.finance.approve
POST/finance/approvals/{approval_id}/cancelCancelar solicitaçãoPessoa; cobres.finance.read ou cobres.finance.approve ou cobres.finance.manual_payments.request ou cobres.finance.connections.manage

Cobranças e recebimentos​

Uma cobrança criada enquanto a conexão do meio de pagamento do credor está pausada ou em_teste espera: nasce aguardando_emissao com a conexão pretendida e failure_code = awaiting_connection (um motivo, não uma falha), com uma única emissão já aberta (número e referência fixos), e sai sozinha quando a conexão volta a ativa. Sem nenhum meio de pagamento do credor, a cobrança nasce falhou com no_connection; a varredura periódica reemite essas cobranças quando a conexão passa a ser determinável e as marca no_connection_review (reemitir escolhendo a conexão) quando há mais de um meio e nenhum padrão. Quando o acordo é pago por inteiro, a operação de cobrança da dívida é encerrada com o motivo paid e as tarefas abertas são canceladas.

MétodoCaminhoFinalidadeAutorização mínima
GET/finance/settingsConsultar configuração financeiracobres.finance.read ou cobres.finance.connections.manage
PUT/finance/settingsSalvar configuração financeiraPessoa; cobres.finance.connections.manage
GET/finance/chargesListar cobrançascobres.finance.read
GET/finance/charges/{charge_id}Consultar cobrançacobres.finance.read ou cobres.finance.charges.issue
GET/finance/charges/{charge_id}/pdfObter documento da cobrançacobres.finance.read ou cobres.collection.read ou cobres.agreements.read
GET/finance/charges/{charge_id}/receiptObter o recibo do pagamento (PDF) de uma cobrança paga, entrada ou parcela; não paga: 409 finance_charge_not_paidcobres.finance.read ou cobres.collection.read ou cobres.agreements.read
GET/agreements/{agreement_id}/finance/catch-up-quoteCotar o boleto das parcelas atrasadas: em aberto de cada etapa, dias de atraso, multa e juros calculados (steps=installment:2,installment:3, due_on)Pessoa ou chave; cobres.finance.charges.manage ou cobres.finance.charges.issue
POST/agreements/{agreement_id}/finance/catch-upGerar um boleto com o valor de várias etapas em aberto (steps, due_on, late_fees_cents à escolha, inclusive 0, charge_after_due); os boletos atuais dessas etapas são substituídosPessoa; cobres.finance.charges.manage ou cobres.finance.charges.issue
POST/finance/chargesCriar cobrançaPessoa; cobres.finance.charges.manage ou cobres.finance.charges.issue
POST/finance/charges/{charge_id}/reissueReemitir cobrançaPessoa; cobres.finance.charges.manage ou cobres.finance.charges.issue
POST/finance/charges/{charge_id}/cancelCancelar cobrançaPessoa; cobres.finance.charges.manage
POST/finance/charges/{charge_id}/resendReenviar cobrançaPessoa; cobres.finance.charges.manage, cobres.finance.charges.issue ou cobres.collection_messages.send
POST/finance/charges/{charge_id}/refreshConsultar agora, no provedor, se o boleto foi pago (202; queued é falso quando já há uma consulta na fila)Pessoa; cobres.finance.charges.manage, cobres.finance.charges.issue ou cobres.collection_messages.send
POST/finance/charges/{charge_id}/simulate-paymentSimular pagamento conforme ambientePessoa; cobres.finance.charges.manage
GET/finance/receiptsListar recebimentoscobres.finance.read
POST/finance/receipts/manualSolicitar recebimento manualPessoa; cobres.finance.manual_payments.request
POST/finance/receipts/{receipt_id}/reversalSolicitar estornoPessoa; cobres.finance.manual_payments.request
GET/agreements/{agreement_id}/financeConsultar financeiro do acordocobres.finance.read ou cobres.agreements.read ou cobres.collection.read

Lotes, fechamento e repasses​

O worker monta o lote do mês seguinte como rascunho a partir do batch_day (padrão 20), só para organizações com a emissão automática ligada; uma pessoa envia e outra aprova, como em um lote montado à mão (quem tenta montar o mesmo mês recebe 409 finance_batch_exists).

MétodoCaminhoFinalidadeAutorização mínima
GET/finance/batchesListar lotescobres.finance.read ou cobres.finance.charges.manage
GET/finance/batches/{batch_id}Consultar lotecobres.finance.read ou cobres.finance.charges.manage
POST/finance/batchesMontar lotePessoa; cobres.finance.charges.manage
POST/finance/batches/{batch_id}/submitSubmeter lotePessoa; cobres.finance.charges.manage
POST/finance/batches/{batch_id}/cancelCancelar lotePessoa; cobres.finance.charges.manage
POST/finance/charges/{charge_id}/drop-from-batchRetirar cobrança do lotePessoa; cobres.finance.charges.manage
GET/finance/settlementsListar fechamentos e repassescobres.finance.read ou cobres.finance.settlements.prepare
GET/finance/settlements/{settlement_id}Consultar fechamentocobres.finance.read ou cobres.finance.settlements.prepare
GET/finance/settlements/{settlement_id}/proofConsultar comprovante do repassecobres.finance.read ou cobres.finance.settlements.prepare
POST/finance/settlements/openAbrir fechamentosPessoa; cobres.finance.settlements.prepare
POST/finance/settlements/{settlement_id}/submitSubmeter fechamentoPessoa; cobres.finance.settlements.prepare
POST/finance/settlements/{settlement_id}/reopenReabrir fechamentoPessoa; cobres.finance.settlements.prepare
POST/finance/settlements/{settlement_id}/payoutSolicitar registro do repassePessoa; cobres.finance.settlements.prepare
POST/finance/adjustmentsSolicitar ajuste financeiroPessoa; cobres.finance.settlements.prepare
POST/finance/receipts/{receipt_id}/credit-useSolicitar utilização de créditoPessoa; cobres.finance.manual_payments.request
GET/finance/connections-healthConsultar saúde das conexõescobres.finance.read ou cobres.finance.connections.manage

Condições financeiras do credor​

MétodoCaminhoFinalidadeAutorização mínima
GET/creditors/{company_id}/financeConsultar condições do credorcobres.finance.read ou cobres.creditors.finance.manage ou cobres.creditors.read
PUT/creditors/{company_id}/finance/ruleSalvar regra financeira do credorPessoa; cobres.creditors.finance.manage
PUT/creditors/{company_id}/finance/payout-accountSolicitar alteração de conta de repassePessoa; cobres.creditors.finance.manage
POST/creditors/{company_id}/finance/payment-methodsAdicionar meio de pagamentoPessoa; cobres.creditors.finance.manage
PATCH/creditors/{company_id}/finance/payment-methods/{method_id}Editar meio de pagamentoPessoa; cobres.creditors.finance.manage
DELETE/creditors/{company_id}/finance/payment-methods/{method_id}Remover meio de pagamentoPessoa; cobres.creditors.finance.manage

Administração do portal​

MétodoCaminhoFinalidadeAutorização mínima
GET/creditors/{company_id}/portal-usersListar acessos externos do credorcobres.creditors.read
POST/creditors/{company_id}/portal-usersCadastrar acesso externocobres.creditors.update
PATCH/creditor-portal-users/{user_id}Editar acesso externocobres.creditors.update
DELETE/creditor-portal-users/{user_id}Remover acesso externocobres.creditors.update
POST/creditor-portal-users/{user_id}/inviteEnviar convite ao portalcobres.creditors.update
GET/portal-submissionsListar envios do portalcobres.portal_submissions.review
GET/portal-submissions/pending-countContar envios pendentescobres.portal_submissions.review
POST/portal-submissions/{submission_id}/decisionDecidir revisão do enviocobres.portal_submissions.review

Portal do credor no plano Audience​

MétodoCaminhoFinalidadeAutorização mínima
GET/orgs/{org_id}/credor/meConsultar acesso atual do credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/notificationsListar notificações do portalAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/notifications/unread-countContar notificações não lidasAudience + vínculo autorizado do credor
POST/orgs/{org_id}/credor/notifications/readMarcar notificações como lidasAudience + vínculo autorizado do credor
POST/orgs/{org_id}/credor/notifications/read-allMarcar todas como lidasAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/debtsListar dívidas visíveis ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/debts/{debt_id}Consultar dívida visível ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/agreementsListar acordos visíveis ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/agreements/{agreement_id}Consultar acordo visível ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/debtorsListar devedores visíveis ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/debtors/{debtor_id}Consultar devedor visível ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/dashboardConsultar indicadores do portalAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/submissionsListar próprios enviosAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/submissions/{submission_id}Consultar envioAudience + vínculo autorizado do credor
POST/orgs/{org_id}/credor/submissionsEnviar cadastro para revisãoAudience + vínculo autorizado do credor
PUT/orgs/{org_id}/credor/submissions/{submission_id}Editar envio permitidoAudience + vínculo autorizado do credor
POST/orgs/{org_id}/credor/submissions/{submission_id}/cancelCancelar envio permitidoAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/settlementsListar repasses visíveis ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/settlements/{settlement_id}Consultar repasse visível ao credorAudience + vínculo autorizado do credor
GET/orgs/{org_id}/credor/settlements/{settlement_id}/proofConsultar comprovante visível ao credorAudience + vínculo autorizado do credor

Operação de cobrança e tarefas​

MétodoCaminhoFinalidadeAutorização mínima
GET/collection/debtsListar fila de cobrançacobres.collection.read
GET/collection/summaryConsultar resumo da operaçãocobres.collection.read
GET/debts/{debt_id}/collectionConsultar posição operacional da dívidacobres.collection.read
GET/debts/{debt_id}/collection/journalConsultar histórico de movimentaçõescobres.collection.read
PUT/debts/{debt_id}/placementDefinir carteira da dívidacobres.assignments.manage
PUT/debts/{debt_id}/assignmentAtribuir responsável pela dívidacobres.assignments.manage
POST/debtors/{debtor_id}/contact-channelsAdicionar canal de contato localizado (kind: phone, whatsapp ou email; e-mail só no contato do devedor, não no fiador)cobres.collection_actions.write
POST/debtors/{debtor_id}/found-contactsCadastrar pessoa de contato localizadacobres.collection_actions.write
GET/debtors/{debtor_id}/reachConsultar alcance e qualidade dos contatos (cada canal traz restorable e os bloqueios de WhatsApp vivos em blocks)cobres.collection.read
POST/debtors/{debtor_id}/reach/restoreDesfazer "inutilizável": volta à qualidade anterior (channel_id, ou guarantor_id + kind)cobres.collection_actions.write
POST/whatsapp-blocks/{block_id}/undoDesfazer um bloqueio de WhatsAppcobres.collection_actions.write
GET/me/attendance-settingsConfigurações de atendimento da pessoa (modo do assistente, abrir junto, faixa compacta) e seus WhatsAppscobres.collection.read
PUT/me/attendance-settingsSalvar agent_mode (confirm/auto), assistant_open, band_compactcobres.collection.read
POST/me/whatsapp-numbersIncluir WhatsApp de cobrança (number, label); o primeiro fica em usoPessoa; cobres.operator_settings.manage
POST/me/whatsapp-numbers/{number_id}/primaryPôr o número em usoPessoa; cobres.operator_settings.manage
DELETE/me/whatsapp-numbers/{number_id}Tirar o número (o em uso passa ao mais antigo)Pessoa; cobres.operator_settings.manage
GET/debts/{debt_id}/timelineConsultar linha do tempo da dívida (cada ação traz event_type_id, effects e metadata; event_type_id filtra; metadata não filtra)cobres.collection.read
POST/debts/{debt_id}/actionsRegistrar ação manual de cobrança; com event_type_id (então type é opcional) o tipo de evento decide o tipo de ação, controla o resultado, pode exigir a descrição e aplica seus efeitos; metadata é o mapa plano (igual credor, devedor e dívida), gravado uma vez; whatsapp_block: {operator_number_id} marca que a pessoa bloqueou aquele WhatsApp do operador, sem inutilizar o número dela; devolve {id, event_type_id, effects, metadata}cobres.collection_actions.write
POST/collection/actions/{action_id}/correctionsRegistrar correção de açãocobres.collection_actions.write
POST/collection/actions/{action_id}/pinFixar o registro no topo da dívida, para todos (até 10 por dívida; pin_limit)cobres.collection_actions.write
DELETE/collection/actions/{action_id}/pinDesafixar o registrocobres.collection_actions.write
GET/collection/tasksListar tarefas de cobrança (cada tarefa é uma demanda: code, type_name, stage_label, phase, quick_complete)cobres.collection.read
POST/debts/{debt_id}/tasksCriar tarefa da dívidacobres.collection_tasks.manage
POST/collection/tasks/{task_id}/completeConcluir tarefa (transition_key escolhe o desfecho em quadros com mais de um; next_task cria a próxima)cobres.collection_tasks.manage
POST/collection/tasks/{task_id}/rescheduleReagendar tarefacobres.collection_tasks.manage
POST/collection/tasks/{task_id}/cancelCancelar tarefacobres.collection_tasks.manage
POST/debts/{debt_id}/transferTransferir dívida conforme escopocobres.assignments.transfer
POST/debts/{debt_id}/collection/suspendSuspender cobrançacobres.collection.suspend
POST/debts/{debt_id}/collection/resumeRetomar cobrançacobres.collection.resume
POST/debts/{debt_id}/collection/closeEncerrar operação da dívidacobres.collection.close
POST/debts/{debt_id}/collection/reopenReabrir operação da dívidacobres.collection.reopen
GET/debts/{debt_id}/overviewConsultar visão consolidada da dívida (tasks[] com código, quadro, etapa e quick_complete; debt.qualification, debt.tags, debtor.tags, debtor.groups e pinned_events, cada um com event_type_key, event_type_name, group e effects)cobres.collection.read
GET/debts/{debt_id}/feedConsultar feed da dívida (ações, tarefas e e-mails trazem origin: a origem do registro; a ação traz event_type e effects; tipos ocultos da tela de trabalho só com include_hidden=true)cobres.collection.read

E-mails e assistência de escrita​

Uma mensagem que o provedor provadamente não aceitou (conexão recusada, resposta temporária 4xx do SMTP, 429 do provedor HTTP) volta para a fila e é tentada de novo com atraso crescente (60 s, dobrando, até 30 min), no máximo 6 tentativas, depois fica failed; recusa definitiva (5xx do SMTP, 4xx do provedor HTTP) falha na hora; silêncio ou perda da conexão depois de o envio começar (no provedor HTTP, também 5xx e 408) deixa a mensagem unknown, e ela nunca é reenviada às cegas.

MétodoCaminhoFinalidadeAutorização mínima
GET/collection/email-templatesListar modelos de e-mailcobres.collection_templates.read ou cobres.collection_templates.manage
POST/collection/email-templatesCriar modelo de e-mail (visibility: personal, shared ou official; official exige cobres.collection_templates.manage)cobres.collection_templates.read ou cobres.collection_templates.manage
PATCH/collection/email-templates/{template_id}Revisar modelo de e-mail (o autor revisa o próprio; a gestão revisa os oficiais e compartilhados)cobres.collection_templates.read ou cobres.collection_templates.manage
POST/debts/{debt_id}/email-draftsCriar rascunho vinculado à dívidacobres.collection_messages.send
PATCH/collection/email-drafts/{message_id}Editar rascunhocobres.collection_messages.send
POST/collection/email-drafts/{message_id}/sendSolicitar envio do rascunhocobres.collection_messages.send
POST/collection/email-messages/{message_id}/readMarcar mensagem como lidacobres.collection_messages.read
POST/collection/email-messages/{message_id}/handledMarcar mensagem como tratadacobres.collection_messages.read
POST/collection/inbox/{message_id}/associateAssociar mensagem recebidacobres.collection_inbox.triage
GET/collection/inboxConsultar caixa de entrada da cobrançacobres.collection_messages.read
POST/integrations/collection-email/mailersendReceber mensagem do provedor de e-mailToken do callback do provedor; sem sessão de equipe
POST/collection/writing-assistanceSolicitar assistência de escritacobres.collection_ai.use
POST/collection/plan-phraseLer a descrição de uma proposta de acordo (não grava)cobres.quotes.create

Empresas, grupos e marcadores​

Empresas são os cadastros que dão origem aos credores. As rotas de /tags servem a vários tipos de alvo; para empresas, use target_kind: "company" (no filter da listagem, no corpo de criação e em /tag-assignments) e as permissões identity.companies.* abaixo. Os marcadores de dívidas e devedores têm rotas próprias em /collection/tags.

MétodoCaminhoFinalidadeAutorização mínima
GET/companiesListar empresasidentity.companies.read
POST/companies/lookupConsultar dados cadastrais por CNPJidentity.companies.create ou identity.companies.update
POST/companiesCadastrar empresaidentity.companies.create
GET/companies/{company_id}Consultar empresaidentity.companies.read
PATCH/companies/{company_id}Editar empresaidentity.companies.update
DELETE/companies/{company_id}Remover empresaidentity.companies.delete
GET/companies/{company_id}/contactsListar contatos da empresaidentity.companies.read
POST/companies/{company_id}/contactsCadastrar contatoidentity.companies.create ou identity.companies.update
GET/companies/{company_id}/contacts/{contact_id}Consultar contatoidentity.companies.read
PATCH/companies/{company_id}/contacts/{contact_id}Editar contatoidentity.companies.update
DELETE/companies/{company_id}/contacts/{contact_id}Remover contatoidentity.companies.delete
GET/company-groupsListar grupos de empresasidentity.companies.read
POST/company-groupsCriar grupo de empresasidentity.companies.create ou identity.companies.update
GET/company-groups/{group_id}Consultar grupoidentity.companies.read
PATCH/company-groups/{group_id}Editar grupoidentity.companies.update
DELETE/company-groups/{group_id}Remover grupoidentity.companies.delete
GET/company-groups/{group_id}/companiesListar empresas do grupoidentity.companies.read
GET/tagsListar marcadores de um tipo de alvo (filter com target_kind)identity.companies.read (alvo company)
POST/tagsCriar marcador (target_kind, name de até 40 caracteres, color #rrggbb)identity.companies.create ou identity.companies.update (alvo company)
PATCH/tags/{tag_id}Renomear ou trocar a coridentity.companies.update (alvo company)
DELETE/tags/{tag_id}Excluir marcadoridentity.companies.delete (alvo company)
PUT/tag-assignmentsSubstituir os marcadores de um alvo (target_kind, target_id, tag_ids)identity.companies.update (alvo company)

Credores, mandatos e políticas​

MétodoCaminhoFinalidadeAutorização mínima
POST/creditorsCadastrar credor e mandato inicialcobres.creditors.create
POST/creditors/from-companyCriar credor a partir da empresacobres.creditors.create
GET/creditors/{company_id}Consultar credorcobres.creditors.read
GET/mandates/{mandate_id}Consultar mandatocobres.mandates.read
GET/mandates/{mandate_id}/commercialConsultar política comercialcobres.commercial_policies.read
PUT/mandates/{mandate_id}/commercialEditar rascunho comercialcobres.commercial_policies.update
POST/mandates/{mandate_id}/commercial/publicationsPublicar política comercialcobres.commercial_policies.publish
POST/mandates/{mandate_id}/commercial/publications/{publication_id}/cancelCancelar publicação comercialcobres.commercial_policies.cancel
POST/mandates/{mandate_id}/commercial/publications/{publication_id}/endEncerrar vigência comercialcobres.commercial_policies.end
GET/mandates/{mandate_id}/negotiationConsultar política de negociaçãocobres.negotiation_policies.read
PUT/mandates/{mandate_id}/negotiationEditar rascunho de negociaçãocobres.negotiation_policies.update
POST/mandates/{mandate_id}/negotiation/publicationsPublicar política de negociaçãocobres.negotiation_policies.publish
POST/mandates/{mandate_id}/negotiation/publications/{publication_id}/cancelCancelar publicação de negociaçãocobres.negotiation_policies.cancel
POST/mandates/{mandate_id}/negotiation/publications/{publication_id}/endEncerrar vigência de negociaçãocobres.negotiation_policies.end
POST/mandates/{mandate_id}/activateAtivar mandatocobres.mandates.activate
POST/mandates/{mandate_id}/closeEncerrar mandatocobres.mandates.close
GET/mandates/{mandate_id}/accrualConsultar a política de acúmulo (última versão e publicações)cobres.accrual_policies.read
PUT/mandates/{mandate_id}/accrualEditar rascunho de acúmulocobres.accrual_policies.update
POST/mandates/{mandate_id}/accrual/publicationsPublicar política de acúmulocobres.accrual_policies.publish
POST/mandates/{mandate_id}/accrual/publications/{publication_id}/cancelCancelar publicação de acúmulocobres.accrual_policies.cancel
POST/mandates/{mandate_id}/accrual/publications/{publication_id}/endEncerrar vigência de acúmulocobres.accrual_policies.end
PUT/mandates/{mandate_id}/approval-routeDefinir rota de aprovação do mandatocobres.approval_routes.update
PUT/portfolios/{portfolio_id}/approval-routeDefinir rota de aprovação da carteiracobres.approval_routes.update
GET / DELETE/mandates/{mandate_id}/approval-routeConsultar ou remover a mesa do credorcobres.approval_routes.update
GET / PUT/mandates/{mandate_id}/legal-deskConsultar ou definir o jurídico do credorcobres.approval_routes.update
GET / PUT/portfolios/{portfolio_id}/legal-deskConsultar ou definir o jurídico da carteiracobres.approval_routes.update
GET / DELETE/portfolios/{portfolio_id}/approval-routeConsultar ou remover a mesa da carteiracobres.approval_routes.update
GET/guardrailsConsultar limites geraiscobres.guardrails.update
PUT/guardrailsEditar rascunho dos limites geraiscobres.guardrails.update
POST/guardrails/publicationsPublicar limites geraiscobres.guardrails.publish
POST/guardrails/publications/{publication_id}/cancelCancelar publicação dos limitescobres.guardrails.cancel
POST/guardrails/publications/{publication_id}/endEncerrar vigência dos limitescobres.guardrails.end
GET/policy-templateConsultar modelo de políticacobres.policy_templates.read
PUT/policy-templateSalvar modelo de políticacobres.policy_templates.update
GET/portfolios/{portfolio_id}/negotiation-overrideConsultar exceção de negociação da carteiracobres.portfolio_overrides.read
PUT/portfolios/{portfolio_id}/negotiation-overrideEditar exceção de negociação da carteiracobres.portfolio_overrides.update
POST/portfolios/{portfolio_id}/negotiation-override/publicationsPublicar exceção da carteiracobres.portfolio_overrides.publish
POST/portfolios/{portfolio_id}/negotiation-override/publications/{publication_id}/cancelCancelar publicação da exceçãocobres.portfolio_overrides.cancel
POST/portfolios/{portfolio_id}/negotiation-override/publications/{publication_id}/endEncerrar vigência da exceçãocobres.portfolio_overrides.end
GET/debts/{debt_id}/negotiation-envelopeConsultar envelope de negociação da dívidacobres.negotiation_policies.read
GET/debts/{debt_id}/overridesListar as configurações próprias da dívidacobres.debt_overrides.read
GET/debts/{debt_id}/overrides/negotiationConsultar a negociação da dívida (valor efetivo, origem de cada campo e o herdado)cobres.debt_overrides.read
PUT/debts/{debt_id}/overrides/negotiationDefinir a negociação própria da dívidacobres.debt_overrides.manage
DELETE/debts/{debt_id}/overrides/negotiationVoltar a herdar a negociação do credor e da carteiracobres.debt_overrides.manage
GET/debts/{debt_id}/overrides/commercialConsultar a comissão e o repasse da dívidacobres.debt_overrides.read
PUT/debts/{debt_id}/overrides/commercialDefinir a comissão e o repasse próprios da dívidacobres.debt_overrides.manage
DELETE/debts/{debt_id}/overrides/commercialVoltar à comissão do contrato do credorcobres.debt_overrides.manage
GET/debts/{debt_id}/overrides/accrualConsultar as faixas de acúmulo da dívidacobres.debt_overrides.read
PUT/debts/{debt_id}/overrides/accrualDefinir as faixas de acúmulo próprias da dívidacobres.debt_overrides.manage
DELETE/debts/{debt_id}/overrides/accrualVoltar às faixas de acúmulo do credorcobres.debt_overrides.manage

Níveis de política e prazo da cobrança​

A comissão, a negociação e o acúmulo de uma dívida resolvem em quatro níveis: limite geral (guardrail), mandato do credor, carteira e dívida (a dívida vence a carteira, a carteira vence o mandato, o limite geral corta por último). Cada campo diz de onde vem (mandate, portfolio, debt, guardrail). Na negociação, a carteira (a exceção da mesa) substitui o mandato tanto para afrouxar quanto para apertar. Prazo de quebra (breach_after_days, 0 = nunca) e taxa do parcelamento (agreement_monthly_rate_bps) seguem a mesma ordem (mandate, portfolio, debt).

MétodoCaminhoFinalidadeAutorização mínima
GET/portfolios/{portfolio_id}/overridesOs três tipos da carteira: kind, overridden, revisioncobres.portfolio_overrides.read
GET/portfolios/{portfolio_id}/overrides/commercialComissão e repasse da carteira ({kind, revision, overridden, override, updated_at, open_debts})cobres.portfolio_overrides.read
PUT/portfolios/{portfolio_id}/overrides/commercialDefinir a comissão da carteira: {base_rate_bps, components[6], expected_revision?}cobres.portfolio_overrides.manage
DELETE/portfolios/{portfolio_id}/overrides/commercialVoltar ao contrato do credor (?expected_revision=)cobres.portfolio_overrides.manage
GET/portfolios/{portfolio_id}/overrides/negotiationNegociação da carteira ({kind, revision, overridden, override, updated_at, open_debts}; override por campo {mode: inherit} ou {mode: explicit, value}; revision 0 sem override)cobres.portfolio_overrides.read
PUT/portfolios/{portfolio_id}/overrides/negotiationDefinir a negociação da carteira: max_installments, min_installment_cents, min_down_payment_bps, max_grace_days, offer_ttl_days, breach_after_days, agreement_monthly_rate_bps, installment_delay_window, max_discount_bps.{principal,penalty,correction,mora_interest,agreement_interest,fees} e expected_revision?; o que falta herda do mandato, exceto a janela já configurada, que é preservada se omitidacobres.portfolio_overrides.manage
DELETE/portfolios/{portfolio_id}/overrides/negotiationVoltar ao que o mandato do credor diz (?expected_revision=)cobres.portfolio_overrides.manage
GET/portfolios/{portfolio_id}/overrides/accrualAcúmulo da carteiracobres.portfolio_overrides.read
PUT/portfolios/{portfolio_id}/overrides/accrualDefinir faixas e parada da carteira: {bands?, stop_after_years_from_start?: {mode, value}, expected_revision?}cobres.portfolio_overrides.manage
DELETE/portfolios/{portfolio_id}/overrides/accrualVoltar ao acúmulo do credorcobres.portfolio_overrides.manage
GET/debts/{debt_id}/policyPolítica efetiva da dívida com a origem de cada campo e effective_accrual (none, from_mandate, from_portfolio, from_debt); o bloco commercial só com cobres.debt_overrides.readcobres.debts.read
GET/collection/settingsConfiguração da cobrança (collection_window_years, revision)cobres.collection.read
PUT/collection/settingsAlterar o prazo da cobrança em anos (1 a 30; padrão 5): {collection_window_years, expected_revision?}cobres.collection_settings.manage
GET/collection/policy-gaps/summarySelo de "dívidas sem regra": dívidas e saldo sem acúmulo, negociação ou comissão definidoscobres.policy_gaps.read

PUT e DELETE de carteira respondem 200 com o corpo do GET mais changed; no GET /portfolios/{id}/overrides, overridden é verdadeiro só enquanto há uma publicação em vigor com ao menos um campo explicit (apagar ou salvar tudo inherit o desliga); as rotas /portfolios/{portfolio_id}/negotiation-override (salvar e publicar versão) operam sobre a mesma exceção; expected_revision diferente da atual é 409 version_conflict. O acúmulo aceita stop_after_years_from_start (1 a 30, ou {mode: "explicit", value: null} para "nunca para"): o saldo congela em debt_started_on mais esses anos. Erros: 422 debt_started_on_invalid, collection_window_invalid.

A janela de atraso para parcelamento é um campo independente do teto de parcelas, resolvido por dívida, carteira e credor, nessa ordem. Na carteira ou dívida, envie installment_delay_window: {"mode":"explicit","value":{"from_day":2,"to_day":999}} para substituir a janela herdada, {"mode":"explicit","value":null} para permitir parcelamento independentemente do atraso, ou {"mode":"inherit"} para voltar a herdar. Os dias são inclusivos e usam o vencimento registrado da dívida. A omissão preserva uma janela já definida por aquele nível para compatibilidade com clientes antigos; DELETE continua removendo todas as exceções do nível. A janela não substitui a conferência da composição e do vencimento original de dívidas migradas.

Tipos de evento, qualificações, marcadores e grupos​

Cada organização tem o seu catálogo de tipos de evento (uma organização nova recebe 32 de semente, em português, na primeira leitura do catálogo), de qualificações da dívida (10 de semente), de marcadores coloridos em dívidas e devedores e de grupos de devedores. Um tipo de evento aponta para um dos quatro tipos de ação manual (phone_attempt, whatsapp_external, inbound_contact, administrative_note) e declara o que o registro faz: descrição obrigatória, lista de resultados (se existe, o resultado do registro é um deles), qualificação a pôr, aviso ao responsável e um efeito (suspend_collection, com effect_days, ou ask_review). As bandeiras allows_attachment, visible_to_outsourced e replicates_on_inclusion e a próxima ação sugerida (suggested_task_*) são guardadas e devolvidas, sem efeito sobre o registro de ações. Toda alteração de catálogo leva expected_revision (obrigatório no PATCH; 409 catalog_version_conflict); o PATCH manda só o que muda. Exclusão devolve 204 e só vale para o que ninguém usou e não é do sistema; o resto se desativa (active: false). Os catálogos respondem {items: [...]}. Os endereços dos catálogos são uuids; dívida e devedor seguem pelo código público.

MétodoCaminhoFinalidadeAutorização mínima
GET/collection/event-typesListar os tipos de evento (active=true|false filtra)cobres.event_types.read
POST/collection/event-typesCriar um tipo (key, name e action_type obrigatórios)cobres.event_types.manage
GET/collection/event-types/{event_type_id}Consultar um tipocobres.event_types.read
PATCH/collection/event-types/{event_type_id}Alterar um tipo (expected_revision)cobres.event_types.manage
DELETE/collection/event-types/{event_type_id}Excluir um tipo que nenhum registro usou (409 event_type_in_use; do sistema, 409 event_type_system)cobres.event_types.manage
GET/collection/qualificationsListar as qualificações (active filtra)cobres.qualifications.read ou cobres.debts.qualify
POST/collection/qualificationsCriar uma qualificação (key, name)cobres.qualifications.manage
GET/collection/qualifications/{qualification_id}Consultar uma qualificaçãocobres.qualifications.read
PATCH/collection/qualifications/{qualification_id}Alterar uma qualificação (expected_revision)cobres.qualifications.manage
DELETE/collection/qualifications/{qualification_id}Excluir uma qualificação que ninguém usou (409 qualification_in_use, qualification_system)cobres.qualifications.manage
GET/debts/{debt_id}/qualificationQualificação atual da dívida e histórico (quem, quando, fonte, ação)cobres.qualifications.read ou cobres.debts.qualify
PUT/debts/{debt_id}/qualificationPôr (qualification_id) ou limpar (null) a qualificação, com note opcionalcobres.debts.qualify
GET/collection/tagsListar os marcadores (com active, debts_count e debtors_count; active=true|false filtra)cobres.tags.read
POST/collection/tagsCriar um marcador (name de até 40 caracteres, color #rrggbb; até 200 por organização)cobres.tags.manage
PATCH/collection/tags/{tag_id}Renomear, trocar a cor ou desativar com active: false (expected_revision); um marcador inativo não se põe em registro novo (422 tag_inactive) e fica onde já estácobres.tags.manage
DELETE/collection/tags/{tag_id}Excluir o marcador e tirá-lo de tudocobres.tags.manage
GET/debts/{debt_id}/tagsMarcadores da dívidacobres.tags.read
PUT/debts/{debt_id}/tagsSubstituir os marcadores da dívida por tag_ids (até 20)cobres.tags.apply
GET/debtors/{debtor_id}/tagsMarcadores do devedorcobres.tags.read
PUT/debtors/{debtor_id}/tagsSubstituir os marcadores do devedor por tag_ids (até 20)cobres.tags.apply
GET/collection/debtor-groupsListar os grupos de devedores (com active e debtors_count; active=true|false filtra)cobres.tags.read
POST/collection/debtor-groupsCriar um grupo (name de até 60 caracteres, note; até 100 por organização)cobres.tags.manage
PATCH/collection/debtor-groups/{group_id}Alterar um grupo ou desativá-lo com active: false (expected_revision); grupo inativo não recebe devedor novo (422 group_inactive)cobres.tags.manage
DELETE/collection/debtor-groups/{group_id}Excluir o grupo (os devedores ficam)cobres.tags.manage
GET/debtors/{debtor_id}/groupsGrupos do devedorcobres.tags.read
PUT/debtors/{debtor_id}/groupsSubstituir os grupos do devedor por group_ids (até 20)cobres.tags.apply

As listagens GET /debts, GET /collection/debts e GET /debtors aceitam os parâmetros tag, group e qualification (um ou mais uuids do catálogo, repetindo o parâmetro ou separando por vírgula, até 20; dentro de um parâmetro valem como OU e entre parâmetros como E; combinam com filter, q e o cursor; em dívidas group é o grupo do devedor da dívida, e em devedores qualification vale quando uma dívida do devedor a tem). Cada linha de dívida traz qualification ({id, key, name, color, set_at} ou null) e tags; cada linha de devedor, tags e groups. GET /debts/{debt_id} traz qualification e tags, e GET /debtors/{debtor_id}, tags e groups. Erros: 409 catalog_version_conflict, event_type_key_taken, event_type_name_taken, event_type_in_use, event_type_system, qualification_key_taken, qualification_name_taken, qualification_in_use, qualification_system, tag_name_taken, group_name_taken; 422 event_type_inactive, event_type_mismatch, event_description_required, event_outcome_invalid, event_effect_invalid, event_types_limit, qualification_inactive, qualifications_limit, tags_limit, tags_applied_limit, groups_limit, tag_inactive, group_inactive. Num PATCH de catálogo, null só limpa qualification_id, default_result, suggested_task_type, suggested_task_text, suggested_task_days e effect_days do tipo de evento (em qualquer outro campo null é "não enviado"); "" limpa description, note e suggested_task_text; a próxima ação sugerida (suggested_task_type e suggested_task_text) vale junta ou nenhuma, e default_result não existe num tipo administrative_note (400 validation_error).

Documentos, contatos e garantidores​

MétodoCaminhoFinalidadeAutorização mínima
GET/documentsListar documentos visíveiscobres.documents.read
POST/documentsAssociar arquivo ao assunto de negóciocobres.documents.create
GET/documents/{document_id}Consultar metadados do documentocobres.documents.read
GET/documents/{document_id}/urlObter URL assinada do documentocobres.documents.read
PATCH/documents/{document_id}Editar documentocobres.documents.update
DELETE/documents/{document_id}Remover documentocobres.documents.delete
GET/debtors/{debtor_id}/contactsListar pessoas de contato do devedorcobres.debtors.read
POST/debtors/{debtor_id}/contactsCadastrar pessoa de contatocobres.debtors.create ou cobres.debtors.update
GET/debtors/{debtor_id}/contacts/{contact_id}Consultar pessoa de contatocobres.debtors.read
PATCH/debtors/{debtor_id}/contacts/{contact_id}Editar pessoa de contatocobres.debtors.update
DELETE/debtors/{debtor_id}/contacts/{contact_id}Remover pessoa de contatocobres.debtors.delete
GET/debtors/{debtor_id}/guarantorsListar garantidorescobres.debtors.read
POST/debtors/{debtor_id}/guarantorsCadastrar garantidorcobres.debtors.create ou cobres.debtors.update
GET/debtors/{debtor_id}/guarantors/{guarantor_id}Consultar garantidorcobres.debtors.read
PATCH/debtors/{debtor_id}/guarantors/{guarantor_id}Editar garantidorcobres.debtors.update
DELETE/debtors/{debtor_id}/guarantors/{guarantor_id}Remover garantidorcobres.debtors.delete

Aprovação do credor e evidências​

MétodoCaminhoFinalidadeAutorização mínima
GET/creditors/{company_id}/approval-settingsConsultar aprovação exigida pelo credorcobres.creditors.read
PUT/creditors/{company_id}/approval-settingsDefinir aprovação exigida pelo credorcobres.creditors.update
POST/quotes/{quote_id}/creditor-approvalSolicitar aprovação da cotaçãocobres.offers.request
POST/creditor-approvals/{approval_id}/cancelCancelar solicitação de aprovaçãocobres.offers.request
POST/debts/{debt_id}/approval-evidenceIniciar upload de evidênciacobres.offers.record_creditor_approval
POST/quotes/{quote_id}/creditor-approval/recordRegistrar decisão com evidênciacobres.offers.record_creditor_approval
GET/creditor-approvals/{approval_id}/evidence/{file_id}/urlObter URL da evidência autorizadacobres.collection.read
POST/debts/{debt_id}/offers/authorization-textPreparar texto de autorização da ofertacobres.quotes.create

Essas duas portas não usam sessão de equipe. O token do link é a credencial para a proposta e deve ser tratado como dado sensível. A primeira decisão encerra os links elegíveis daquela solicitação; o consumidor deve tratar links inválidos ou encerrados conforme a resposta.

MétodoCaminhoFinalidadeAutorização mínima
GET/public/offer-approvals/{token}Consultar proposta pelo linkToken específico do link; sem login
POST/public/offer-approvals/{token}/decisionRegistrar decisão pelo linkToken específico do link; sem login

Complementos​

Veja o guia da API de cobrança para a sequência dos fluxos. Mandatos e aprovações de credor têm regras de domínio próprias; utilize seus contratos antes de alterar limites ou autorizações. Documentos de negócio complementam o fluxo de arquivos, com regras de assunto e escopo adicionais.

Webhooks do provedor financeiro entram pelo contrato do conector. Webhooks de saída são configurados em outra família de rotas. O cadastro de uma integração não autoriza a chamada indiscriminada de portas públicas ou callbacks de outro fluxo.

A implementação de referência está nos routers de api/app/modules/ e no registro api/app/product/manifest.py. Para detalhes de payload e validação, use o OpenAPI de desenvolvimento da versão correspondente. Leia autenticação, paginação, idempotência e erros antes de implementar um cliente.