Contratos
Contratos, produtos, faturamento, vencimento e PDF.
21 rotas. Todas exigem a chave de API no header Authorization, salvo quando marcadas como públicas. Abrir este módulo no Swagger.
Listar contratos por período e status
POST /companie/contract/filterAdvanced
Todos os filtros vão no corpo. A busca já é limitada à empresa da chave; perfis de vendedor só enxergam os contratos em que são captadores.
filter: período aplicado sobrestatus_date(data da última mudança de status, não a de criação). Comother_period, enviedate_startedate_endcomoYYYY-MM-DD.status: um ou mais status. Lista vazia não é aceita; mande todos os status para não filtrar.type: área do contrato (o mesmo texto gravado emPUT /companie/contract/infos/:id). UseTodospara não filtrar.clientId,offerId(id da oportunidade),companieUserPromoterId,externalPartnerId,channels(canais de venda): arrays de ids.order:created_at_desc,created_at_asc,alpha_ascoualpha_desc(nome do cliente).- Paginação:
skip(registros a pular) etake(tamanho da página).
Vários campos aceitam também { value, label } ou um valor único, por compatibilidade com os selects do frontend. Integradores devem mandar números (ou strings, em status/order) e arrays simples.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
companieUserPromoterId | número[] ou número ou object[] ou object | ||
externalPartnerId | número[] ou número ou object[] ou object | ||
offerId | número[] ou número ou object[] ou object | ||
clientId | número[] ou número ou object[] ou object | ||
channels | número[] ou número ou object[] ou object | ||
order | created_at_asc · created_at_desc · alpha_asc · alpha_desc ou object | sim | |
status | Aberto · Ativo · Ag.Pagamento · Inadimplente · Cancelado · Interrompido ou Aberto · Ativo · Ag.Pagamento · Inadimplente · Cancelado · Interrompido[] ou object ou object[] | sim | |
filter | all · today · yesterday · this_week · last_week · this_month · last_month · last_30_days · … | sim | |
date_start | string ou object | ||
date_end | string ou object | ||
skip | número | sim | |
take | número | sim | |
type | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Contratos com produtos, parcelas e histórico de status. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Buscar contrato por id
GET /companie/contract/{id}
Não exige chave de API.
Rota pública, também usada pelas páginas abertas por link (aceite e troca de cartão).
- Com um token de sessão (JWT) de usuário da empresa dona, devolve o contrato completo, com produtos, parcelas, dependentes e captador.
- Sem token, com token de outra empresa ou com a chave de API, devolve só a projeção reduzida (
id,number,total, nome, CPF/CNPJ e e-mail do cliente, parcelas e produtos). Hoje a rota só reconhece JWT para liberar o contrato completo.
Para obter os dados completos pela chave, use POST /companie/contract/filterAdvanced (filtro clientId) ou GET /companie/contract/autocomplete/find. Os produtos também saem em GET /companie/contract/product/:id.
Id inexistente devolve 200 com corpo null.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Contrato completo (JWT da empresa dona) ou projeção reduzida (demais casos). |
400 | Parâmetros inválidos. (ValidationError) |
Criar contrato
POST /companie/contract
Cria o contrato com status Aberto, só com os dados do cliente. O usuário da chave fica como criador e captador. O número sequencial é gerado pela empresa.
- Informe
client_id(cliente já cadastrado na empresa) ouoffer_id(proposta). Comoffer_id, o cliente é localizado ou criado a partir da pessoa da proposta, o endereço é copiado e os produtos da proposta entram no contrato. Uma proposta só gera um contrato. client_document(CPF ou CNPJ, só dígitos) é obrigatório na prática: define se o responsável financeiro é pessoa Física ou Jurídica.- Os dados enviados também atualizam o cadastro do cliente.
Sequência para montar um contrato completo:
POST /companie/contract(esta rota): guarde oid.PUT /companie/contract/address/:id: endereço do cliente.PUT /companie/contract/payment/:id: responsável financeiro, desconto, multa e juros.POST /companie/contract/product: um produto ou serviço por chamada.- Opcional:
PUT /companie/contract/infos/:id(vigência, área, representante legal) ePUT /companie/contract/promoter/:id(captador). POST /companie/contract/invoicepara faturar.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
offer_id | número ou null | ||
client_id | número ou null | ||
client_name | string | sim | |
client_name_fantasy | string | ||
client_birth | data ou null | ||
client_document | string | ||
client_email | string | ||
client_whatsapp | string | ||
client_rg | string | ||
client_gender | string | ||
client_civil_status | string | ||
crm_number | string ou null | ||
crm_state | string ou null |
Respostas
| Status | Descrição |
|---|---|
200 | Contrato criado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_client_not_exist, error_offer_not_exist ou error_exist_offer_contract (a proposta já tem contrato). (GenericError) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar os dados do cliente no contrato
PUT /companie/contract/personal/{id}
Atualiza os dados pessoais no contrato e replica no cadastro do cliente (client_id) e na pessoa (contato) ligada a ele. Todos os campos são gravados: campos omitidos não são apagados, mas envie o conjunto completo para evitar divergência.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
client_id | número | sim | |
client_name | string | sim | |
client_name_fantasy | string | ||
client_birth | data ou null | ||
client_document | string | ||
client_email | string | ||
client_whatsapp | string | ||
client_rg | string | ||
client_gender | string | ||
client_civil_status | string | ||
crm_number | string ou null | ||
crm_state | string ou null |
Respostas
| Status | Descrição |
|---|---|
200 | Dados pessoais atualizados. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist ou error_client_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar vigência, área e informações adicionais
PUT /companie/contract/infos/{id}
date_startedate_end: vigência (YYYY-MM-DD). Início depois do fim devolveerror_date_start_bigger.type: área do contrato (texto livre, o mesmo usado no filtrotypeda listagem).client_agent_*: representante legal do cliente.client_agent_cpfcom 11 dígitos.gain,travel_alowance,fine,local_service,non_local_service,km_comarca,km_out: valores livres disponíveis como variáveis no modelo de contrato.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
client_agent_legal | string | ||
client_agent_celular | string | ||
client_agent_whatsapp | string | ||
client_agent_fixo | string | ||
client_agent_cpf | string | ||
client_agent_email | string | ||
date_start | data ou null | ||
date_end | data ou null | ||
type | string | ||
readjustment_index | string | ||
gain | número ou null | ||
travel_alowance | número ou null | ||
fine | número ou null | ||
local_service | número ou null | ||
non_local_service | número ou null | ||
km_comarca | número ou null | ||
km_out | número ou null | ||
obs | string |
Respostas
| Status | Descrição |
|---|---|
200 | Contrato atualizado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist ou error_date_start_bigger (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar o endereço do cliente no contrato
PUT /companie/contract/address/{id}
CEP com 8 dígitos e UF com 2 letras. O endereço também é gravado no cadastro do cliente e na pessoa (contato) ligada a ele.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
client_address_zipcode | string | sim | |
client_address | string | sim | |
client_address_number | string | sim | |
client_address_complement | string | ||
client_address_province | string | sim | |
client_address_city | string | sim | |
client_address_state | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Endereço atualizado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar o responsável financeiro e as regras de cobrança
PUT /companie/contract/payment/{id}
Define quem paga e as regras usadas ao faturar.
is_financial_responsible_client:truequando o próprio cliente paga. Mesmo assim, envie os camposresp_financial_*com os dados dele.resp_financial_document: CPF (11) ou CNPJ (14 dígitos).resp_financial_emailé obrigatório para faturar.discount_typeefine_type:fixed(valor) oupercent.fine_galaxpayé a multa por atraso;interest, os juros.- Em contrato já faturado com conta Cel Cash, o cadastro do pagador também é atualizado no gateway (em segundo plano).
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
is_financial_responsible_client | boolean | sim | |
resp_financial_type | Física · Jurídica | sim | |
resp_financial_name | string | sim | |
resp_financial_document | string | sim | |
resp_financial_email | string | ||
resp_financial_phone | string | ||
resp_financial_whatsapp | string | ||
resp_financial_address | string | sim | |
resp_financial_number | string | sim | |
resp_financial_complement | string | ||
resp_financial_province | string | sim | |
resp_financial_city | string | sim | |
resp_financial_state | string | sim | |
resp_financial_zipcode | string | sim | |
discount_type | fixed · percent · `` | ||
discount_value | número ou null | ||
fine_type | fixed · percent · `` | ||
fine_galaxpay | número ou null | ||
interest | número ou null | ||
instructions | string |
Respostas
| Status | Descrição |
|---|---|
200 | Contrato atualizado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Definir o captador do contrato
PUT /companie/contract/promoter/{id}
Informe um dos dois: companie_user_id_promoter (usuário da empresa) ou external_partner_id (parceiro externo ativo). O outro fica nulo.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
companie_user_id_promoter | número ou null | ||
external_partner_id | número ou null |
Respostas
| Status | Descrição |
|---|---|
200 | Contrato atualizado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_captor_required, error_only_one_captor_allowed, error_contract_not_exist, error_user_not_exist ou error_external_partner_not_exist (GenericError) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar os produtos de um contrato
GET /companie/contract/product/{id}
id é o id do contrato. Os itens vêm na ordem de inclusão, com o produto do catálogo em product.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Produtos do contrato. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_products_not_exist: o contrato não existe. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar produto do contrato
PUT /companie/contract/product/{id}
id é o id do item (contract_products.id). O total do contrato é recalculado.
interval_typesó vale commethod: recurrence(ex.:MONTHLY); nos outros métodos ficaDISABLED.- Se mudar
form_of_paymentoumethod, as parcelas em aberto do contrato são atualizadas para a nova forma.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
product_value | número | sim | |
qtd | número | sim | |
value | número | sim | |
form_of_payment | creditcard · boleto · pix · dinheiro · ted | sim | |
method | in_sight · installments · recurrence | sim | |
qtd_installments | número ou null | ||
total | número | sim | |
interval_type | string ou null |
Respostas
| Status | Descrição |
|---|---|
200 | Item atualizado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_product_not_exist: o item não existe. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Remover produto do contrato
DELETE /companie/contract/product/{id}
id é o id do item (contract_products.id). O total do contrato é recalculado.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Item removido. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_products_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Adicionar produto ao contrato
POST /companie/contract/product
Um item por chamada. O total enviado é somado ao total do contrato.
product_ideproduct_name: produto ou serviço do catálogo da empresa.product_value: preço de tabela;value: preço unitário negociado;total:value × qtd(não é recalculado pelo servidor).method:in_sight(à vista),installments(parcelado, informeqtd_installments) ourecurrence(recorrência mensal).form_of_payment:creditcard,boleto,pix,dinheiroouted. Comdinheiro, o faturamento gera parcelas sem integração bancária.
A resposta é o contrato atualizado, não o item criado. Para obter o id do item, liste os produtos do contrato.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
contract_id | número | sim | |
product_id | número | sim | |
product_name | string | sim | |
product_value | número | sim | |
qtd | número | sim | |
value | número | sim | |
form_of_payment | creditcard · boleto · pix · dinheiro · ted | sim | |
method | in_sight · installments · recurrence | sim | |
qtd_installments | número ou null | ||
total | número | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Contrato com o novo total. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist ou error_product_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Alterar o status do contrato (cancelar)
PUT /companie/contract/status/{id}
Grava o novo status e registra no histórico. Não há validação de transição: o status é gravado como enviado.
Com Cancelado:
- Se o contrato tem parcelas no gateway (Cel Cash ou Asaas), a assinatura e as cobranças em aberto são canceladas lá antes.
- A proposta de origem, se houver, passa para
Perdida.
Os demais status não chamam o gateway. Normalmente Ag.Pagamento e Ativo são definidos pelo faturamento e pela confirmação de pagamento; evite alterá-los à mão. O campo financialIds é aceito mas ignorado.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
status | Aberto · Ag.Pagamento · Ativo · Inadimplente · Cancelado · Interrompido | sim | |
financialIds | número[] |
Respostas
| Status | Descrição |
|---|---|
200 | Contrato atualizado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist, error_params_galax_and_asaas_id_not_exist (há parcelas no gateway mas a empresa não tem mais a conta integrada) ou a mensagem de erro do gateway ao cancelar. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Faturar contrato
POST /companie/contract/invoice
Gera as cobranças dos produtos do contrato e muda o status para Ag.Pagamento. Quando o primeiro pagamento é confirmado, o contrato passa para Ativo.
first_pay_day_date: vencimento da primeira parcela (YYYY-MM-DD). As demais vencem nos meses seguintes.- Pré-requisitos: status
Aberto, ao menos um produto,resp_financial_emaileresp_financial_documentpreenchidos (PUT /companie/contract/payment/:id) e plano de contas ativo de serviço e/ou de produto na empresa. - Empresa com conta Asaas: cria assinatura/cobranças no Asaas. Com Cel Cash: cria na Cel Cash. Sem gateway, ou com algum produto em
dinheiro: cria os lançamentos financeiros sem integração bancária. - Pode disparar a mensagem automática de WhatsApp de contrato faturado, se configurada.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
contract_id | número | sim | |
first_pay_day_date | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Retorno da criação das cobranças (varia conforme o gateway). |
400 | Mensagem de erro do gateway ao criar as cobranças (ex.: dados do pagador inválidos). (ErrorCode) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist, error_contract_status_diff_opened, error_not_empty_email_contract, error_not_empty_resp_financial_document, error_not_exist_params_pla_account_product, error_not_exist_params_pla_account_service ou error_asaas_token_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Gerar nova cobrança integrada (renegociação)
POST /companie/contract/charge
Cria cobranças avulsas no gateway para um contrato já faturado, normalmente para renegociar parcelas em atraso.
- Só funciona se o contrato já tem parcelas no gateway da empresa (Cel Cash ou Asaas).
fin_ids_cancel: ids dos lançamentos (financial.id) que a nova cobrança substitui; eles são cancelados. Envie[]para não cancelar nada.plan_account_id: plano de contas ativo do lançamento.method:in_sightouinstallments;installment: número de parcelas;value: valor de cada cobrança;first_pay_day_date:YYYY-MM-DD.obsentra na descrição comoNegociação - <obs>.
Se o contrato não tiver parcelas em nenhum gateway, a resposta é 200 com o texto error_params_is_galaxpay_equal_false e nada é criado.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
contract_id | número | sim | |
plan_account_id | número | sim | |
form_of_payment | creditcard · boleto · pix | sim | |
method | in_sight · installments | sim | |
installment | número | sim | |
value | número | sim | |
first_pay_day_date | string | sim | |
obs | string | ||
fin_ids_cancel | número[] | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Cobranças criadas (formato do gateway), ou o texto error_params_is_galaxpay_equal_false. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist, error_not_exist_plan_account, error_financials_not_exist, error_asaas_token_not_exist, erros de split ou a mensagem do gateway. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Alterar o vencimento da assinatura
PUT /companie/contract/subscription/{id}
Muda o dia de vencimento das parcelas em aberto no gateway e no LeadSim.
payday: nova data de vencimento (YYYY-MM-DD). Cel Cash usa o dia da data nas parcelas seguintes; Asaas recalcula as parcelas não pagas a partir dela, mês a mês.cycle(só Asaas): novo ciclo da assinatura (ex.:MONTHLY).
Atenção: se o contrato não tem parcelas no gateway da empresa (contrato não faturado ou faturado sem integração), nada é alterado e a resposta é 200 com corpo vazio.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
payday | string | ||
cycle | string |
Respostas
| Status | Descrição |
|---|---|
200 | Retorno do gateway, ou corpo vazio quando não há assinatura integrada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
500 | error_no_subscription_found, error_no_subscription_asaas_found ou erro do gateway, em message. (GenericError) |
Alterar o vencimento da assinatura (alias)
PUT /companie/contract/paydaySubscription/{id}
Esta rota será removida. Prefira a alternativa indicada na descrição.
Mesmo comportamento de PUT /companie/contract/subscription/:id. Prefira aquela rota.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
payday | string | ||
cycle | string |
Respostas
| Status | Descrição |
|---|---|
200 | Retorno do gateway, ou corpo vazio quando não há assinatura integrada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
500 | Erro do gateway, em message. (GenericError) |
Gerar o PDF do contrato
GET /companie/contract/pdf/{id}
Não exige chave de API.
Rota pública: não exige chave.
- Sem
contract_custom_id: enquanto o contrato estáAberto, usa o modelo padrão da empresa e congela o texto gerado no contrato; depois do faturamento, devolve o texto congelado. - Com
contract_custom_id: gera com esse modelo, sem alterar o texto congelado.
A resposta é o binário do PDF, mas sem cabeçalho Content-Type: trate o corpo como application/pdf. Se o modelo não existir, a resposta é 200 com o JSON "error_contract_custom_not_exist"; confira o início do corpo (%PDF) antes de salvar.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim | |
contract_custom_id | query | número | Modelo de contrato (GET /companie/contract-custom/list). Sem ele, usa o modelo padrão da empresa enquanto o contrato está Aberto e, depois, o texto já congelado no contrato. |
Respostas
| Status | Descrição |
|---|---|
200 | PDF do contrato. (application/pdf) |
400 | Parâmetros inválidos. (ValidationError) |
409 | error_contract_not_exist (ErrorCode) |
Enviar o contrato por e-mail ao cliente
GET /companie/contract/sendMail/{contractId}
GET com efeito colateral: gera o PDF e envia para client_email do contrato, com o PDF em anexo. Cada chamada envia um novo e-mail e registra o evento de envio.
contract_custom_id(query): modelo usado no PDF, com as mesmas regras deGET /companie/contract/pdf/:id.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
contractId | URL | string | sim | |
contract_custom_id | query | número | Modelo de contrato (GET /companie/contract-custom/list). Sem ele, usa o modelo padrão da empresa enquanto o contrato está Aberto e, depois, o texto já congelado no contrato. |
Respostas
| Status | Descrição |
|---|---|
200 | E-mail enviado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_contract_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar os modelos de contrato
GET /companie/contract-custom/list
Modelos de contrato da empresa, do mais novo para o mais antigo. Use o id como contract_custom_id no PDF e no envio por e-mail. is_default marca o modelo usado quando nenhum é informado.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
q | query | string | Busca por título ou id do modelo. |
Respostas
| Status | Descrição |
|---|---|
200 | Modelos de contrato. |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Buscar contratos por texto
GET /companie/contract/autocomplete/find
Busca nos contratos da empresa por número, nome ou nome fantasia do cliente, WhatsApp, e-mail, CPF/CNPJ (com ou sem pontuação) ou status. Ordena do mais antigo para o mais novo.
qé obrigatório na prática: sem ele, nada é encontrado.status=truelimita a contratosAtivo. Sem ele,contractStatus(repetível:?contractStatus=Ativo&contractStatus=Inadimplente) filtra por status.- Perfis de vendedor só enxergam os contratos em que são captadores.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
q | query | string | sim | Texto buscado. |
skip | query | número | sim | Registros a pular. |
take | query | número | sim | Tamanho da página. |
status | query | true | Só contratos Ativo. | |
contractStatus | query | Aberto · Ag.Pagamento · Ativo · Inadimplente · Cancelado · Interrompido[] | Status aceitos (ignorado com status=true). |
Respostas
| Status | Descrição |
|---|---|
200 | Contratos encontrados. |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |