Monde API

Bem-vindo a API da Monde! Essa documentação detalha os endpoints disponíveis para você integrar seu sistema conosco.

Sobre a API V3

Disponibilidade dos endpoints

Cada endpoint tem uma etiqueta que indica se você já pode utilizá-lo:

  • Beta (laranja): já disponível para uso, mas ainda em fase de testes e ajustes. Pode sofrer alterações.
  • Em desenvolvimento (cinza): ainda não está pronto para uso. Está apenas documentado, como referência do que temos planejado, e ainda pode sofrer alterações.

Autenticação

Para acessar os endpoints, é necessário enviar uma credencial válida no cabeçalho Authorization da requisição, com o esquema Bearer.

Exemplo de cabeçalho de autenticação:

Authorization: Bearer bW9uZGV8dXNlcjpwYXNzMTIz

Sobre a autenticação:

  • As credenciais serão geradas e fornecidas pela agência de viagens com a qual você está se integrando.
  • As credenciais não expiram, mas podem ser revogadas a qualquer momento pela agência de viagens.

Idempotência

Alguns endpoints desta API utilizam uma chave de idempotência (Idempotency-Key) para garantir que requisições duplicadas (por exemplo, por timeout ou tentativas automáticas) não sejam processadas mais de uma vez.

Como usar

  • A chave deve ser um UUID v4 válido (ex.: 550e8400-e29b-41d4-a716-446655440000).
  • Use a mesma chave ao repetir a mesma requisição (mesmo endpoint e mesmo corpo da requisição).
  • Use uma nova chave para cada operação diferente (corpo da requisição diferente).
  • A chave é válida por 1 dia após a primeira requisição.

Comportamento

  • Repetição (replay): se a mesma chave for reutilizada com o mesmo corpo da requisição e a requisição anterior já tiver sido processada, a API retorna a resposta em cache e inclui o cabeçalho X-Idempotent-Replay: true.
  • Requisição em processamento: se uma requisição com a mesma chave ainda estiver em processamento, a API retorna 409 Conflict.
  • Requisição recusada: se a requisição anterior terminou em recusa (por exemplo, um 422 Unprocessable Content), a chave volta a ficar disponível: reenviar a mesma requisição com a mesma chave é processado de novo.
  • Chave reutilizada com corpo diferente: se a mesma chave for reutilizada com um corpo (payload) diferente, a API retorna 422 Unprocessable Content.

Limites de requisição

Para manter o serviço estável para todos, esta API limita quantas requisições cada cliente pode fazer em um curto intervalo de tempo.

Limite

  • Até 10 requisições a cada 3 segundos, contadas por endereço IP de origem.

Quando o limite é excedido

  • A API responde com 429 Too Many Requests e uma mensagem de erro.
  • Nenhuma requisição é processada enquanto o limite estiver excedido.

Recomendação

  • Ao receber um 429, aguarde antes de tentar novamente e use um tempo de espera crescente entre as tentativas (backoff exponencial).

Paginação

As consultas de lista devolvem uma página de registros por vez. O nó pagination da resposta diz o tamanho da página, se existe uma próxima e qual cursor pedir para chegar nela.

Percorrer a consulta inteira

  1. Faça a primeira requisição sem cursor.
  2. Enquanto has_next_page for true, repita a requisição enviando cursor com o valor de next_cursor da resposta anterior.
  3. Quando has_next_page for false, next_cursor vem nulo e a varredura terminou.

Tamanho da página

  • size define quantos registros vêm por página: de 1 a 50. Sem o parâmetro, são 20.

O cursor

  • É opaco: guarde e devolva o valor exatamente como veio, sem interpretar o conteúdo.
  • Vale para a consulta que o gerou: mantenha os mesmos filtros ao avançar. Um cursor que esta API não devolveu é recusado com 400.
  • Marca uma posição na consulta, não um instante: registros criados ou alterados durante a varredura podem entrar nas páginas seguintes.

Anexos

Operações de envio de anexos associados a recursos.

Enviar anexo POST /attachments

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

  • As requisições são limitadas por IP (até 10 requisições a cada 3 segundos). Ao exceder, a API retorna 429.
  • Ao repetir o mesmo envio, reutilize o Idempotency-Key e aplique backoff exponencial.

Vendas

Uma venda é um objeto que representa a comercialização de um ou mais produtos entre uma agência de viagens e seus clientes. Para vender o produto ao cliente, a agência pode adquiri-lo diretamente de um fornecedor ou através de um representante.

  • Fornecedor: empresa proprietária direta do produto. Exemplos: seguradoras, companhias de cruzeiros marítimos, companhias aéreas, hotéis, locadoras de veículos, entre outros. No Monde, um produto deve obrigatoriamente ter um fornecedor.
  • Representante: empresa responsável por intermediar a comercialização e distribuição do produto do fornecedor junto à agência de viagens. Os exemplos mais comuns são operadoras e consolidadoras. No Monde, um produto deve ter um representante quando a agência não comprou o produto diretamente do fornecedor.
  • Algumas operadoras e consolidadoras também podem ser proprietárias diretas de produtos, como pacotes de viagem, por exemplo. Nesses casos, elas são fornecedoras do produto para a agência de viagens.

Consultar vendas GET /sales

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna uma lista paginada de vendas. Por padrão, retorna apenas vendas abertas e fechadas; para incluir vendas excluídas (canceladas), utilize o parâmetro status.

  • date_field (query):

    Campo de data usado no filtro. Valores aceitos: sale_date (data da venda), departure_date (início da viagem) e return_date (fim da viagem). Obrigatório quando date_from ou date_to é informado.

  • date_from (query):

    Filtrar vendas cujo campo escolhido em date_field seja igual ou posterior a esta data, no formato ISO 8601 (AAAA-MM-DD).

  • date_to (query):

    Filtrar vendas cujo campo escolhido em date_field seja igual ou anterior a esta data, no formato ISO 8601 (AAAA-MM-DD).

  • status (query):

    Filtrar vendas por situação. Para múltiplas situações, separe os valores por vírgula (ex.: opened,closed,canceled). Valores aceitos: opened (aberta), closed (fechada) e canceled (excluída). Quando o parâmetro não é informado, a API retorna apenas vendas abertas e fechadas; vendas excluídas só são retornadas quando solicitadas explicitamente.

  • people_id (query):

    Filtrar vendas pela pessoa participante, informando o identificador (UUID) dela. A venda é retornada quando a pessoa aparece em qualquer papel: pagante, vendedor, intermediário, solicitante, aprovador, promotor, passageiro, fornecedor, representante ou quem cadastrou a venda. Para vários identificadores, separe-os por vírgula — a venda é retornada quando qualquer uma das pessoas participa dela.

  • number (query):

    Filtrar vendas pelo número exibido no aplicativo (ex.: 1024). Um número por requisição.

  • updated_since (query):

    Filtrar vendas atualizadas neste instante ou depois dele, no formato ISO 8601. Aceita data (AAAA-MM-DD, cai no início do dia) ou data-hora (AAAA-MM-DDTHH:MM:SS). Sem fuso no valor, considera o horário de Brasília. Útil para reprocessar apenas o que mudou desde a última consulta, inclusive no mesmo dia.

Inserir venda POST /sales

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

  • A venda deve conter pelo menos um produto.
  • Produtos suportados no momento: Seguro viagem, cruzeiro, diárias de hospedagem, bilhete de trem, transporte terrestre, locação de veículo, pacote de viagem e operação.
  • Envie status: closed para já criar a venda fechada, respeitando as regras de fechamento e a permissão de fechar venda. Sem esse campo a venda nasce aberta.

Consultar venda por ID GET /sales/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna os dados de uma venda específica.

  • id (path):

    Identificador único da venda (formato UUID).

Produtos

Consulte os produtos de viagem disponíveis (seguros, cruzeiros, hotéis, passagens aéreas, operações próprias e outros) para utilizar em suas vendas.

Consultar produtos GET /products

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de produtos disponíveis no sistema, com possibilidade de filtrar por tipo de produto.

  • kind (query):

    Filtra produtos por tipo. Para múltiplos tipos, separe os valores por vírgula (ex: insurance,cruise,hotel).

Consultar produto por ID GET /products/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna os dados completos de um produto específico, incluindo seus fornecimentos com o fornecedor, os dados de comissão e os representantes.

  • id (path):

    Identificador único do produto (formato UUID).

Cabines

Consulte os tipos de cabine cadastrados no sistema para utilizar em produtos de cruzeiro.

Consultar cabines GET /cabins

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de tipos de cabine cadastrados no sistema.

Navios

Consulte os navios cadastrados no sistema para utilizar em produtos de cruzeiro.

Consultar navios GET /ships

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de navios cadastrados no sistema.

Centros de Custo

Consulte os centros de custo cadastrados no sistema para utilizar em lançamentos financeiros.

Consultar centros de custo GET /cost_centers

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de centros de custo cadastrados no sistema.

Consultar centro de custo por ID GET /cost_centers/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna um centro de custo específico pelo seu identificador.

  • id (path):

    Identificador único do centro de custo

Moedas

Consulte as moedas cadastradas no sistema para utilizar em produtos de venda e lançamentos financeiros.

Consultar moedas GET /currencies

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de moedas cadastradas no sistema.

Consultar moeda por código GET /currencies/{code}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma moeda específica pelo seu código ISO 4217.

  • code (path):

    Código da moeda no padrão ISO 4217

Categorias

Consulte as categorias financeiras cadastradas no sistema, agrupadas por tipo (receita ou despesa) e grupo.

Consultar categorias GET /categories

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de categorias financeiras cadastradas no sistema.

Consultar categoria por ID GET /categories/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma categoria financeira específica pelo seu identificador.

  • id (path):

    Identificador único da categoria

Cidades

Consulte as cidades cadastradas no sistema, com estado, país e códigos oficiais (IBGE, SIAFI e SETEC).

Consultar cidades GET /cities

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de cidades cadastradas no sistema.

  • name (query):

    Filtra por nome, sem diferenciar maiúsculas, acentos ou posição (busca por trecho).

Consultar cidade por ID GET /cities/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma cidade específica pelo seu identificador.

  • id (path):

    Identificador único da cidade

Vendedores

Consulte os vendedores cadastrados no sistema para utilizar em suas vendas.

Consultar vendedores GET /sellers

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de vendedores cadastrados no sistema (ativos e inativos).

Consultar vendedor por ID GET /sellers/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna um vendedor específico pelo seu identificador.

  • id (path):

    Identificador único do vendedor

Formas de Pagamento

Consulte as formas de pagamento cadastradas no sistema para utilizar em lançamentos financeiros.

Consultar formas de pagamento GET /payment_methods

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de formas de pagamento cadastradas no sistema. Formas de uso interno do sistema não são retornadas.

Consultar forma de pagamento por ID GET /payment_methods/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma forma de pagamento específica pelo seu identificador.

  • id (path):

    Identificador único da forma de pagamento

Contas e Cartões

Consulte as contas e cartões cadastrados no sistema, com os dados bancários e de cartão de crédito e as empresas em que cada conta está disponível.

Consultar contas e cartões GET /accounts

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de contas e cartões disponíveis nas empresas em que a credencial tem permissão. Contas ativas e inativas são retornadas.

Consultar conta ou cartão por ID GET /accounts/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma conta ou cartão específico pelo seu identificador, desde que disponível em uma empresa em que a credencial tem permissão.

  • id (path):

    Identificador único da conta

Regras da Nota Fiscal

Consulte as regras de emissão de nota fiscal cadastradas no sistema, com os campos da venda que compõem cada emissão.

Consultar regras da nota fiscal GET /nf_rules

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de regras da nota fiscal cadastradas no sistema. Produto, fornecedor e pagante nulos indicam que a regra vale para todos.

Consultar regra da nota fiscal por ID GET /nf_rules/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma regra da nota fiscal específica pelo seu identificador.

  • id (path):

    Identificador único da regra da nota fiscal

Tarefas

Consulte, crie, altere e exclua tarefas, com responsável, pessoa vinculada, categoria e vencimento, e comente no histórico delas.

Consultar tarefas GET /tasks

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de tarefas das empresas em que a credencial tem permissão (tarefas sem empresa são visíveis em todas). Tarefas excluídas não são retornadas.

Criar tarefa POST /tasks

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Cria uma tarefa na empresa informada em company_identifier, com responsável, categoria e vencimento. Aceita, em history, os comentários com que a tarefa nasce. O responsável é avisado por e-mail, e a tarefa nasce pendente.

Consultar tarefa por ID GET /tasks/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna os dados de uma tarefa específica, incluindo o histórico e os campos personalizados.

  • id (path):

    Identificador único da tarefa (formato UUID).

Alterar tarefa PATCH /tasks/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Altera uma tarefa já cadastrada. Informe apenas os campos que devem mudar: o campo omitido, ou enviado como nulo ou como texto vazio, permanece como está, então um campo não é esvaziado por esta operação. O title é exceção: a tarefa precisa ter título, e enviá-lo como texto vazio é recusado. Para concluir a tarefa envie completed como true, e para reabri-la, como false. O company_identifier leva a tarefa para outra empresa e exige a permissão de criar/editar tarefas também nela; a tarefa não fica sem empresa por esta operação. Os campos personalizados não substituem: cada um enviado é gravado por cima do atual, e os demais permanecem. Comentários são enviados em Comentar na tarefa. Exige a permissão de criar/editar tarefas. Tarefa excluída não pode ser alterada: a resposta é 409. Quem participa da tarefa é avisado por e-mail da alteração, como na alteração feita no Monde. A resposta traz a tarefa alterada no mesmo formato da consulta por ID quando a credencial também tem a permissão "Ler todas as tarefas" na empresa da tarefa; sem ela, a alteração é gravada do mesmo jeito e a resposta traz apenas o id da tarefa.

  • id (path):

    Identificador único da tarefa (formato UUID).

Excluir tarefa DELETE /tasks/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Exclui a tarefa. A tarefa excluída deixa de aparecer em Consultar tarefas, mas continua disponível na consulta por ID, com deleted igual a true, e não pode mais ser alterada nem receber comentário. Tarefa concluída não pode ser excluída: reabra-a antes, enviando completed como false em Alterar tarefa. Exige a permissão de excluir tarefas na empresa da tarefa. Quem participa da tarefa é avisado por e-mail da exclusão, como na exclusão feita no Monde. Não exige Idempotency-Key: repetir a requisição depois de excluída responde 409.

  • id (path):

    Identificador único da tarefa (formato UUID).

Comentar na tarefa POST /tasks/{task_id}/history

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Acrescenta um comentário ao histórico da tarefa e devolve a tarefa com o histórico atualizado — ou apenas o id da tarefa, quando a credencial não tem a permissão "Ler todas as tarefas" na empresa da tarefa. Quem participa da tarefa é avisado do comentário por e-mail, como no comentário feito no Monde. Exige a permissão de criar/editar tarefas. Tarefa excluída não recebe comentário: a resposta é 409. O histórico é só acréscimo: comentário registrado não se altera nem se exclui, e as linhas de alteração que o Monde gera não são enviadas por aqui.

  • task_id (path):

    Identificador único da tarefa (formato UUID).

Categorias de Tarefas

Consulte as categorias de tarefas cadastradas no sistema.

Consultar categorias de tarefas GET /task_categories

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna a lista de categorias de tarefas cadastradas no sistema.

Consultar categoria de tarefa por ID GET /task_categories/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna os dados de uma categoria de tarefa específica.

  • id (path):

    Identificador único da categoria de tarefa.

Viagens

Consulte as viagens cadastradas no sistema, com cliente, vendedor, situação e o período calculado a partir das vendas vinculadas.

Consultar viagens GET /travels

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de viagens das empresas em que a credencial tem permissão. As datas e a situação são calculadas a partir dos produtos ativos das vendas vinculadas não canceladas. Aceita filtro por data pelo início ou fim da viagem com os parâmetros date_field, date_from e date_to.

  • date_field (query):

    Campo de data usado no filtro. Valores aceitos: start_date (início da viagem) e end_date (fim da viagem), ambos calculados a partir das vendas vinculadas. Obrigatório quando date_from ou date_to é informado.

  • date_from (query):

    Filtrar viagens cujo campo escolhido em date_field seja igual ou posterior a esta data, no formato ISO 8601 (AAAA-MM-DD).

  • date_to (query):

    Filtrar viagens cujo campo escolhido em date_field seja igual ou anterior a esta data, no formato ISO 8601 (AAAA-MM-DD).

Consultar viagem por ID GET /travels/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma viagem específica com seus campos escalares e as referências às vendas e aos passageiros vinculados. Os valores por passageiro pertencem a cada venda, obtidos pelo endpoint da venda.

  • id (path):

    Identificador único da viagem a ser obtida

Orçamentos

Consulte os orçamentos cadastrados no sistema, com validade, situação e o link público de visualização.

Consultar orçamentos GET /quotes

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de orçamentos das empresas em que a credencial tem permissão.

Consultar orçamento por ID GET /quotes/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna um orçamento específico pelo seu identificador.

  • id (path):

    Identificador único do orçamento

Regras de Faturamento

Consulte as regras de faturamento cadastradas no sistema, com a pessoa dona da regra, o período de fechamento e as condições de vencimento.

Consultar regras de faturamento GET /invoice_rules

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de regras de faturamento cadastradas no sistema. Cada regra pertence a uma pessoa (ou a todas, quando nula) de um dos tipos cliente, fornecedor ou representante.

Consultar regra de faturamento por ID GET /invoice_rules/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma regra de faturamento específica pelo seu identificador.

  • id (path):

    Identificador único da regra de faturamento

Integrações

Consulte as integrações com fornecedores cadastradas no sistema. As credenciais das integrações nunca são retornadas.

Consultar integrações GET /integrations

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de integrações das empresas em que a credencial tem permissão (integrações sem empresa valem para todas). Os dados de acesso da integração (usuários, senhas e tokens) nunca são retornados.

Consultar integração por ID GET /integrations/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna uma integração específica pelo seu identificador.

  • id (path):

    Identificador único da integração

Pessoas

Consulte as pessoas cadastradas no sistema, com dados de contato, documentos e informações adicionais.

Consultar pessoas GET /people

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de pessoas cadastradas. É uma consulta enxuta: traz apenas os escalares próprios e as referências ({id, name}) das entidades fortes (naturalidade, vendedor, promotor, quem cadastrou e a cidade do endereço). As entidades fracas (contatos, marcadores, campos personalizados, anexos, cartões e retenção da Lei Kandir) só aparecem na consulta por ID (GET /people/{id}).

  • name (query):

    Filtra por nome, sem diferenciar maiúsculas, acentos ou posição (busca por trecho).

  • cpf_cnpj (query):

    Filtra por CPF ou CNPJ (casa contra qualquer um dos dois). Informe só os dígitos, sem pontos, barras, traços ou espaços.

  • passport_number (query):

    Filtra por número do passaporte, sem diferenciar maiúsculas ou acentos (busca por trecho).

  • phone (query):

    Filtra por qualquer um dos telefones (fixo, comercial ou celular). Informe só os dígitos; casa contra qualquer trecho do número gravado, independente da máscara.

  • kind (query):

    Filtra pelo tipo da pessoa: individual (pessoa física) ou company (pessoa jurídica).

  • code (query):

    Filtra pelo código sequencial da pessoa (valor exato).

  • email (query):

    Filtra por e-mail, sem diferenciar maiúsculas ou acentos (busca por trecho).

Inserir pessoa POST /people

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Insere uma pessoa física ou jurídica. Cada requisição cria um cadastro novo: o external_id, quando informado, precisa estar livre, e o CPF/CNPJ não pode pertencer a nenhuma pessoa já cadastrada. A resposta traz a pessoa criada no mesmo formato da consulta por ID.

Consultar pessoa por ID GET /people/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna os dados completos de uma pessoa pelo seu identificador, incluindo os blocos agrupados (dados adicionais, últimos contatos, retenções e companhia aérea) e as entidades fracas (contatos, marcadores, campos personalizados, anexos, cartões de crédito (sempre mascarados), e retenção da Lei Kandir).

  • id (path):

    Identificador único (UUID) da pessoa.

Alterar pessoa PATCH /people/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Altera uma pessoa já cadastrada. Informe apenas os campos que devem mudar: o campo omitido, ou enviado como nulo ou como texto vazio, permanece como está — um campo de texto não é esvaziado por esta operação. O name é exceção: a pessoa precisa ter nome, então enviá-lo como texto vazio é recusado. O tipo da pessoa não muda: person_kind, quando informado, precisa ser o mesmo que a pessoa já é. O external_id passa a identificar a pessoa, desde que não esteja identificando outra; o CPF/CNPJ e o código de companhia aérea não podem pertencer a outra pessoa. As listas labels e contacts funcionam por substituição: a lista enviada passa a ser a da pessoa, a lista vazia retira todos os itens e o campo omitido mantém os atuais. Os campos personalizados não substituem: cada um enviado é gravado por cima do atual, e os demais permanecem. A resposta traz a pessoa alterada no mesmo formato da consulta por ID quando a credencial também tem a permissão "Ler todas as pessoas"; sem ela, a alteração é gravada do mesmo jeito e a resposta traz apenas o id da pessoa.

  • id (path):

    Identificador único (UUID) da pessoa.

Excluir pessoa DELETE /people/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Exclui a pessoa em definitivo. Só pode ser excluída a pessoa que não tem registros vinculados — vendas (como cliente, passageiro, intermediário ou fornecedor), lançamentos financeiros, notas fiscais, orçamentos, tarefas, comissões, cartões, contas, anexos (inclusive os já removidos), entre outros — e que não é usuário do sistema nem empresa do sistema. Nesses casos a resposta é 409 e nada é alterado. Junto com a pessoa são removidos os seus contatos, marcadores e external_id, e os vínculos em que ela aparece como contato de outra pessoa; ela também deixa as regras de faturamento e os centros de custo em que estava, deixa de ser o vendedor ou o promotor de outras pessoas e deixa de estar informada nas integrações em que aparecia. A exclusão fica registrada no histórico da pessoa. Não exige Idempotency-Key: repetir a requisição depois de excluída responde 404.

  • id (path):

    Identificador único (UUID) da pessoa.

Marcadores

Consulte os marcadores cadastrados no sistema para classificar pessoas.

Consultar marcadores GET /labels

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna a lista de marcadores cadastrados no sistema.

Consultar marcador por ID GET /labels/{id}

⚠️ Esse endpoint ainda não está disponível — está documentado apenas como referência do que temos planejado.

Retorna um marcador específico pelo seu identificador.

  • id (path):

    Identificador único do marcador

Contas a Pagar e Receber

Consulte as contas a pagar e a receber (lançamentos financeiros) das empresas em que a credencial tem permissão. O mesmo recurso cobre os dois casos: contas a receber (transaction_kind = credit) e contas a pagar (transaction_kind = debit). Traz identificação, valores, situação, categorias, rateios, movimentações de liquidação, itens, comissões, anexos e campos personalizados.

Consultar contas a pagar e receber GET /bills

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a lista de contas a pagar e a receber das empresas em que a credencial tem permissão. Por padrão, retorna só as contas em aberto e vencidas (não liquidadas e não canceladas); para incluir liquidadas ou canceladas, use o parâmetro status. Use os filtros para restringir por data (date_field com date_from/date_to), natureza (transaction_kind), tipo (kind) e situação (status). Cada lançamento vem resumido; o detalhe completo vem em GET /bills/{id}.

  • date_field (query):

    Campo de data usado no filtro. Valores aceitos: issue_date (emissão), due_date (vencimento) e settlement_date (liquidação). Obrigatório quando date_from ou date_to é informado. Para filtrar por settlement_date, inclua settled no parâmetro status, já que o padrão (open, overdue) não traz contas liquidadas.

  • date_from (query):

    Filtrar contas cujo campo escolhido em date_field seja igual ou posterior a esta data, no formato ISO 8601 (AAAA-MM-DD).

  • date_to (query):

    Filtrar contas cujo campo escolhido em date_field seja igual ou anterior a esta data, no formato ISO 8601 (AAAA-MM-DD).

  • transaction_kind (query):

    Filtra pela natureza do lançamento: credit (contas a receber) ou debit (contas a pagar). Quando ausente, retorna ambas.

  • kind (query):

    Origem do lançamento.

    • normal: lançamento avulso.
    • sale_payment: pagamento de venda.
    • sale_standalone: avulso de venda.
    • vendor_standalone: avulso de fornecedor.
    • vendor_invoice: fatura de fornecedor.
    • customer_invoice: fatura de cliente.
    • credit_card_invoice: fatura de cartão de crédito.
    • commission: comissão.

  • status (query):

    Filtra pela situação. Aceita um ou mais valores separados por vírgula:

    • open: não liquidada, não cancelada, com vencimento hoje ou no futuro, ou sem vencimento.
    • overdue: não liquidada, não cancelada, vencimento anterior a hoje.
    • settled: liquidada e não cancelada.
    • canceled: cancelada, independente de ter sido liquidada.
    Quando ausente, a API retorna só as contas open e overdue; liquidadas e canceladas só voltam quando pedidas explicitamente.

  • number (query):

    Filtra pelo número do lançamento exibido no aplicativo (um por requisição). Lançamentos parcelados têm sufixo de parcela (ex.: 362-1), então informe o número exatamente como aparece.

Consultar conta a pagar ou receber por ID GET /bills/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna o detalhe completo de uma conta a pagar ou receber: boleto, categorias, rateio entre empresas, rateio de centro de custo, movimentações de liquidação, itens, cobranças da fatura de cartão, comissões, anexos e campos personalizados.

  • id (path):

    Identificador único da conta a pagar ou receber.

Movimentações

Consulte as movimentações das contas e caixas: data, valor, sentido, dados de cheque e de cartão, e as referências para a conta, a forma de pagamento e o lançamento liquidado.

Consultar movimentações GET /account_movements

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna as movimentações das contas das empresas em que a credencial tem permissão. Cada movimentação vem resumida, só com os dados do próprio movimento; as referências para conta, forma de pagamento, conta a pagar ou receber liquidada, fatura de cartão e conta do outro lado da transferência vêm em GET /account_movements/{id}.

  • account_id (query):

    Filtra as movimentações de uma conta específica.

  • payment_method_id (query):

    Filtra as movimentações de uma forma de pagamento específica.

  • transaction_kind (query):

    ' Filtra pelo sentido do movimento.

    • credit: entrada de dinheiro na conta.
    • debit: saída de dinheiro da conta.
    '

Consultar movimentação por ID GET /account_movements/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna o detalhe completo de uma movimentação pelo identificador, com as referências para conta, forma de pagamento, conta a pagar ou receber liquidada, fatura de cartão e conta do outro lado da transferência. É o endpoint que resolve as referências a movimentações devolvidas por outros recursos, como as liquidações de uma conta a pagar ou a receber.

  • id (path):

    Identificador da movimentação.

Reembolsos

Consulte os reembolsos das vendas: lado do reembolso, valor, datas e as referências para a venda, o produto da venda, a pessoa, a empresa e a conta a pagar ou a receber.

Consultar reembolsos GET /refunds

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna os reembolsos das empresas em que a credencial tem permissão.

  • refund_type (query):

    ' Filtra pelo lado do reembolso.

    • customer: reembolso do cliente.
    • vendor: reembolso do fornecedor ou do representante.
    '

Consultar reembolso por ID GET /refunds/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna um reembolso pelo identificador. É o endpoint que resolve as referências a reembolsos devolvidas por outros recursos.

  • id (path):

    Identificador do reembolso.

Extrato CVC

Consulte os recibos e movimentos do extrato CVC: valores, comissões, saldos, datas e as referências para a empresa, o contratante, o vendedor, o intermediário, a venda, o produto da venda, a nota fiscal e quem cadastrou.

Consultar extrato CVC GET /cvc_statements

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna os recibos das empresas em que a credencial tem permissão. Recibo excluído não é retornado.

Consultar extrato CVC por ID GET /cvc_statements/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna um recibo pelo identificador, incluindo o recibo já excluído, que vem com o campo deleted verdadeiro. É o endpoint que resolve as referências a recibos do extrato CVC devolvidas por outros recursos.

  • id (path):

    Identificador do recibo do extrato CVC.

Notas Fiscais

Consulte as notas fiscais de serviço: numeração, situação, datas, valores, retenções e tributos, os dados do tomador gravados na nota (com a referência para a cidade dele), os dados da NFS-e e, na consulta por ID, os itens e as referências para pessoa, empresa, produto da venda e venda.

Consultar notas fiscais GET /nfs

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna as notas fiscais das empresas em que a credencial tem permissão. Notas canceladas também são retornadas: o cancelamento aparece na situação. A consulta traz apenas os campos da própria nota; para os itens e as referências, use a consulta por ID.

  • status (query):

    ' Filtra pela situação da nota fiscal.

    • unissued: não emitida.
    • issued: emitida.
    • processing: nota transmitida, aguardando o retorno.
    • processing_cancellation: cancelamento transmitido, aguardando o retorno.
    • awaiting_processing: nota ainda não transmitida, na fila de emissão.
    • canceled: cancelada.
    • awaiting_issue: aguardando emissão.
    • awaiting_cancellation: aguardando cancelamento.
    '

  • period_start (query):

    Filtra as notas fiscais emitidas a partir desta data, no formato ISO 8601 (YYYY-MM-DD).

  • period_end (query):

    Filtra as notas fiscais emitidas até esta data, no formato ISO 8601 (YYYY-MM-DD).

Consultar nota fiscal por ID GET /nfs/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna uma nota fiscal pelo identificador, com os itens e as referências para as entidades relacionadas. É o endpoint que resolve as referências a notas fiscais devolvidas por outros recursos.

  • id (path):

    Identificador da nota fiscal.

Logs

Consulte o histórico de alterações do sistema: a ação registrada, a origem, a descrição da alteração, o momento em que ela foi gravada e, na consulta por ID, as referências para o autor e para o registro auditado.

Consultar logs GET /logs

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna o histórico de alterações do sistema, com filtros por autor, registro auditado, ação e origem. A consulta traz apenas os campos da própria linha; para o autor e o registro auditado, use a consulta por ID. O histórico não é recortado por empresa: a credencial que tem a permissão lê todas as linhas.

  • person_id (query):

    Filtra pelo identificador do autor da alteração.

  • resource_id (query):

    Filtra pelo identificador do registro auditado.

  • kind (query):

    ' Filtra pela ação registrada.

    • insertion: cadastro do registro.
    • edition: alteração do registro.
    • deletion: exclusão do registro.
    • custom: ação personalizada da tela que gerou o registro.
    • export: exportação de dados.
    '

  • origin (query):

    Filtra pela origem da alteração, com o valor exato gravado no log. Um valor por chamada.

Consultar logs por ID GET /logs/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna uma linha do histórico pelo identificador, com as referências para o autor da alteração e para o registro auditado.

  • id (path):

    Identificador da linha do histórico.

Campos Personalizados

Consulte as definições dos campos personalizados do sistema por recurso (vendas, viagens, pessoas, contas a pagar/receber e tarefas): o identificador, o nome, o tipo, se é obrigatório e as opções cadastradas.

Consultar campos personalizados GET /custom_fields

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna as definições dos campos personalizados, opcionalmente filtradas pelo recurso. Cada linha traz o identificador, o recurso, o nome, o tipo, se é obrigatório, se está ativo e, nos campos do tipo lista, as opções cadastradas. As definições não são recortadas por empresa: a credencial que tem a permissão lê todas.

  • resource (query):

    ' Filtra pelo recurso (origem) do campo personalizado. Um valor por chamada; ausente lista todos os recursos.

    • sales: campos de vendas.
    • travels: campos de viagens.
    • people: campos de pessoas.
    • bills: campos de contas a pagar e receber.
    • tasks: campos de tarefas.
    '

Consultar campo personalizado por ID GET /custom_fields/{id}

⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.

Retorna a definição de um único campo personalizado pelo seu identificador. Use para resolver o nome, o tipo e as opções de um campo a partir do id retornado nas demais consultas da API.

  • id (path):

    Identificador do campo personalizado a consultar.

Changelog

A API v3 está em fase beta: já disponível para uso, mas ainda em fase de testes e ajustes — campos e endpoints podem sofrer alterações. Acompanhe esta seção para as mudanças.

2026-09-28

Conexão automática

  • A seção Conexão automática passou a trazer os exemplos completos de requisição e resposta da homologação, da troca do code pelo token e da revogação, o que chega na redirect_uri quando a agência aprova ou recusa (com o state), e os erros de cada etapa.
  • A revogação pelo parceiro, em POST /oauth/revoke, passou a estar documentada: ela exclui a conexão com a agência na hora.

Pessoas, Vendas, Tarefas e Cidades

  • Em Inserir pessoa, Alterar pessoa, Inserir venda, Criar tarefa, Alterar tarefa e Comentar na tarefa, o campo enviado num formato diferente do documentado passa a responder 422, com o nome do campo, e nada é gravado. Antes o campo era ignorado e a resposta era de sucesso, sem aquele dado. Vale para a lista ou o objeto enviado como texto, número ou booleano (como "labels": "..."), para o item de lista que não é objeto (como "labels": ["<id>"] no lugar de "labels": [{ "id": "<id>" }]) e para o valor simples enviado como lista ou objeto. O campo nulo ou com texto vazio continua valendo como não enviado.

  • Em Consultar pessoas e Consultar cidades, o filtro enviado como lista ou valor aninhado (como ?name[]=Ana) passa a responder 400, com o nome do parâmetro. Antes o filtro era ignorado e a consulta devolvia a lista sem ele.

2026-09-25

Cidades

  • Consultar cidades passou a aceitar o filtro name, que busca pelo nome da cidade por trecho, sem diferenciar maiúsculas, acentos nem a posição do trecho no nome (ex.: ?name=sao paulo). O filtro combina com a paginação e a ordenação por nome.

Tarefas

  • Alterar tarefa passou a estar disponível: altera title, description, due, category_id, assignee_id, person_id e custom_fields de uma tarefa já cadastrada. Informe apenas o que deve mudar — o campo omitido, ou enviado como nulo ou como texto vazio, permanece como está. A exceção é o title: a tarefa precisa ter título, e enviá-lo como texto vazio é recusado. Os campos personalizados enviados são gravados por cima dos atuais, e os demais permanecem.

  • completed conclui a tarefa (true) ou a reabre (false), e company_identifier leva a tarefa para outra empresa, o que exige a permissão Criar e editar em Tarefas também na empresa de destino.

  • A alteração exige a permissão Criar e editar em Tarefas e o cabeçalho Idempotency-Key. Quem participa da tarefa é avisado por e-mail, como na alteração feita no Monde.

  • Excluir tarefa passou a estar disponível: exclui a tarefa, que deixa de aparecer em Consultar tarefas e continua disponível na consulta por ID, com deleted igual a true. Tarefa concluída ou já excluída responde 409, e nada é alterado. Responde 204 sem corpo e não exige Idempotency-Key. Exige a permissão Excluir em Tarefas, que passou a ser oferecida na credencial da API, concedida na empresa da tarefa com licença de API que grave. Quem participa da tarefa é avisado por e-mail.

  • Tarefa excluída não pode ser alterada nem receber comentário: Alterar tarefa e Comentar na tarefa respondem 409.

  • Alterar tarefa e Comentar na tarefa respondem apenas com o id da tarefa quando a credencial não tem a permissão Ler todas as tarefas na empresa da tarefa. A gravação acontece do mesmo jeito, com o mesmo status. Quem tem a permissão de ler continua recebendo a tarefa completa, no mesmo formato da consulta por ID.

Pessoas

  • Alterar pessoa passa a responder apenas com o id da pessoa quando a credencial não tem a permissão "Ler todas as pessoas". A alteração é gravada do mesmo jeito, com o mesmo status 200. Quem tem a permissão de ler continua recebendo a pessoa completa, no mesmo formato da consulta por ID.

2026-09-24

Tarefas

  • Criar tarefa passou a estar disponível: informe company_identifier, title, due, category_id e assignee_id, e opcionalmente description, person_id e custom_fields. O responsável precisa ser um usuário ativo do Monde e é avisado por e-mail. A tarefa nasce pendente. Aceita Idempotency-Key para reenvio seguro.

  • A tarefa pode nascer com os primeiros comentários: envie history, uma lista de { "text": "..." }, no mesmo corpo da criação.

  • Comentar na tarefa acrescenta um comentário ao histórico de uma tarefa existente e devolve a tarefa com o histórico atualizado. Quem participa da tarefa é avisado por e-mail. O histórico é só acréscimo: não há como alterar nem excluir um comentário já registrado.

  • As duas escritas exigem a permissão Criar e editar em Tarefas, que passou a ser oferecida na credencial.

  • Na consulta de tarefas, due e completed_at passaram a sair sem o fuso horário, no mesmo formato de created_at e dos demais campos de data e hora da API: 2026-04-01T09:00:00 no lugar de 2026-04-01T09:00:00-03:00. O horário é o mesmo.

Pessoas

  • Na consulta de pessoas, last_contacts.last_task_update_at passou a sair sem o fuso horário, no mesmo formato das demais datas de last_contacts e dos outros campos de data e hora da API: 2026-07-01T15:12:00 no lugar de 2026-07-01T15:12:00-03:00. O horário é o mesmo.

Conexão automática

  • A seção Credenciamento de fornecedores passou a se chamar Conexão automática e vale para qualquer parceiro, não só para quem cria vendas.
  • As permissões do parceiro passam a ser definidas na homologação, e a agência vê essa lista no consentimento antes de autorizar. O parceiro homologado antes disso continua com a criação de vendas.
  • Criar vendas pela integração não exige licença de API. Permissões fora de Vendas exigem licença de API na empresa escolhida.
  • O parceiro com a criação de vendas não lê vendas: a venda criada volta completa na resposta do POST /sales. Anexos só entram na venda que o próprio parceiro criou.

2026-09-22

Pessoas

  • Excluir pessoa passou a estar disponível: exclui em definitivo a pessoa que não tem registros vinculados (vendas, lançamentos financeiros, notas fiscais, orçamentos, tarefas, anexos, entre outros) e que não é usuário nem empresa do sistema. Nesses casos a resposta é 409, com o motivo, e nada é alterado. Responde 204 sem corpo e não exige Idempotency-Key. Exige a permissão "Excluir" em Pessoas, que passou a ser oferecida na credencial da API, concedida numa empresa com licença de API que grave.

Logs

  • A descrição de todo log gravado por uma requisição da API passa a começar com a ação e o rótulo da credencial que a fez: Inserido via API pela credencial "...", Editado via API pela credencial "..." ou Excluído via API pela credencial "...". As linhas seguintes, com os campos alterados, não mudaram. Vale para tudo o que a requisição grava: o registro, os vínculos gravados junto com ele (como os marcadores e os contatos da pessoa) e os lançamentos que a venda gera no financeiro, inclusive os da fatura do fornecedor. Em Consultar logs o person desses logs continua nulo, porque a credencial não é uma pessoa.
  • O log separado com a descrição Registro cadastrado via API, que a API gravava junto de cada cadastro, deixou de existir: quem cadastrou passou a ser a primeira linha do log do próprio registro. Em Consultar logs o cadastro feito pela API passa a trazer um log a menos.

2026-09-21

Pessoas

  • Alterar pessoa passou a estar disponível: altera uma pessoa já cadastrada com os mesmos campos de Inserir pessoa. Informe apenas o que deve mudar — o campo omitido, ou enviado como nulo ou como texto vazio, permanece como está, e um campo de texto não é esvaziado por esta operação. O tipo da pessoa não muda, o external_id passa a identificá-la desde que não esteja identificando outra, e o CPF/CNPJ e o código de companhia aérea não podem pertencer a outra pessoa. Marcadores e contatos funcionam por substituição: a lista enviada passa a ser a da pessoa, a lista vazia retira todos os itens e o campo omitido mantém os atuais. Os campos personalizados não substituem: cada um enviado é gravado por cima do atual e os demais permanecem. Exige a permissão "Inserir e editar" em Pessoas e o cabeçalho Idempotency-Key.

Vendas

  • Os totais da venda passaram a considerar o desconto da taxa RAV e a segunda taxa do passageiro (other_fees, tip). Antes, o desconto informado no passageiro era gravado mas não abatia total nenhum, e a segunda taxa não entrava no total de taxas. Com isso o valor do produto, o total de descontos, as receitas, o faturamento e o saldo da venda passam a bater com o que o Monde calcula na tela.
  • rav_fee_discount só é aceito quando rav_fee for maior que zero. Enviar o desconto sem a taxa passa a responder 422, como o Monde já recusa na tela.

Anexos

  • Enviar anexo recusado com 422 passa a liberar a Idempotency-Key: reenviar o mesmo anexo com a mesma chave volta a ser processado, em vez de responder 409 indefinidamente.

2026-09-18

Licença e permissão

  • As respostas 403 passaram a apontar a causa certa em toda a API. A licença de API é cobrada na empresa em que a credencial trabalha — a empresa do registro consultado, ou a empresa em que a permissão foi concedida —, e não em qualquer empresa da base. Quem tem a permissão numa empresa sem licença de API passa a receber "Você não possui licença de API", no lugar de "Você não tem permissão para executar essa ação". A falta de licença é sempre relatada antes da falta de permissão.

Anexos

  • Enviar anexo passou a aceitar person em resource_type: informe o resource_id da pessoa de destino e o anexo entra no cadastro dela, aparecendo na consulta da pessoa por ID e no download. Exige, em Pessoas, a permissão Adicionar anexos, que passou a ser oferecida na credencial da API, concedida numa empresa com licença de API que grave. O restante do envio não muda: um arquivo por requisição, as mesmas extensões, o mesmo limite de 12 MB e o mesmo Idempotency-Key.

  • Enviar anexo deixou de exigir a permissão de consultar o recurso de destino: anexar numa venda pede apenas a permissão de anexo em vendas. A resposta muda junto: a venda em que a credencial não pode anexar passa a responder 403, no lugar do 422 "Recurso não encontrado" que saía quando faltava a permissão de consultar vendas. O 422 fica para o resource_id que não existe.

  • O limite de 10 requisições a cada 3 segundos do envio de anexo passa a contar toda tentativa, inclusive a que é recusada por autenticação, por permissão, por licença, por arquivo grande ou por requisição malformada. Uma sequência de tentativas recusadas agora chega ao 429.

Pessoas

  • Inserir pessoa passou a estar disponível: insere pessoa física ou jurídica com endereço, naturalidade, documentos e filiação, inscrição municipal, identificação fiscal, observações, cobrança de taxa de boleto, retenção de impostos, dados de companhia aérea, vendedor, promotor, marcadores, contatos e campos personalizados. O external_id é opcional e, quando informado, precisa estar livre; o CPF/CNPJ não pode pertencer a nenhuma pessoa já cadastrada. Exige a permissão "Inserir e editar" em Pessoas e o cabeçalho Idempotency-Key.

  • Em Consultar pessoa por ID, cada item de custom_fields passou a trazer o id da definição e deixou de trazer o name, como já acontecia na venda e no lançamento financeiro. O nome, o tipo e as opções vêm de Consultar campo personalizado por ID.

Vendas

  • Os campos installments (cartão de crédito e boleto) e installment_period (boleto) saíram dos pagamentos destinados à agência em Criar venda. Eles não parcelavam nada: a venda sempre nasceu com um lançamento só, no vencimento informado. Seguem sendo aceitos no corpo da requisição e ignorados, então quem já os envia continua criando vendas do mesmo jeito.

  • Para parcelar um pagamento à agência, envie um pagamento por parcela no array payments, todos com a mesma forma de pagamento, conta bancária e pagante, cada um com o seu due_date e a sua parte do valor em products[].payment_amount. Cada pagamento vira um lançamento financeiro.

  • Em vendor.credit_card o installments não mudou: segue sendo informado na criação e devolvido na consulta da venda.

  • Os nós de pessoa da criação de venda (payer, intermediary, approver, requester, supplier, representative, o person de cada passageiro e o payer de cada pagamento) passaram a aceitar os mesmos campos do cadastro de pessoas: business_phone, website, city_inscription, tax_identification_number, observations, charge_billet_fee, birthplace, additional_data, tax_withholding e airline. Cada campo é aceito no tipo de pessoa a que pertence, e o payload que já era enviado não muda. O charge_billet_fee descreve o cadastro inteiro e só vale quando a venda cria a pessoa: quando o external_id ou o documento já identifica alguém, ele é ignorado. Vendedor, promotor, marcadores, contatos e campos personalizados da pessoa são aceitos apenas em Inserir pessoa.

2026-09-15

Vendas

  • O campo que traz o documento do produto passou a se chamar document nos produtos em que o Monde escreve "Documento" na tela de cadastro: locação de veículo e pacote de viagem (antes booking_number), seguro viagem (antes voucher_code), bilhete de trem, transporte terrestre e excursão (antes locator). Em pacote CVC o mesmo campo passou a se chamar receipt_number, o "Recibo Nº" da tela.

  • Os produtos cujo rótulo na tela já era outro não mudaram: bilhete aéreo segue com locator ("Localizador"), hospedagem segue com booking_number ("Reserva"), cruzeiro segue com booking_number ("Booking"), e outros e operação própria já usavam document.

  • Na criação de vendas, o documento do passageiro passou a ser informado em document, no lugar de ticket_number, nos produtos em que o Monde tem esse campo: seguro viagem, transporte terrestre, bilhete de trem, pacote de viagem e operação própria. O ticket_number continua sendo o número do bilhete do passageiro do aéreo, na leitura e na criação, e o ticket_number de cada assento em ground_transportations[].segments[].seats[] não mudou.

  • O document do produto passou a aceitar 40 caracteres em todos os produtos, o mesmo tamanho que o Monde grava. Em transporte terrestre e bilhete de trem o limite era de 20.

  • Os nomes antigos seguem aceitos na criação de vendas e seguem saindo na leitura, mas saíram da documentação, que passa a descrever só o nome novo. Eles serão removidos em uma etapa seguinte, com tempo para as integrações existentes se ajustarem.

2026-09-14

Vendas

  • Em Criar venda, o campo travel_agent passou a se chamar seller, o mesmo nome que a consulta da venda já usa e o mesmo termo do Monde.

  • Na consulta de vendas, o passageiro de Outros, Excursão e Operação Própria passou a trazer o document, que já é preenchido no Monde mas não era devolvido. Nesses mesmos três produtos, o other_fees saiu da resposta, porque eles não têm uma segunda taxa por passageiro. Em Operação Própria também saíram rav_fee, rav_fee_discount e agency_fee, que o produto não cobra do passageiro. Locação de Veículo não mudou.

2026-09-11

Produtos

  • O kind dos produtos passou a trazer excursion (excursão) e cvc_package (pacote CVC). Os pacotes CVC vinham sem tipo na resposta.

  • O filtro ?kind= passou a aceitar cvc_package e excursion, e é descrito como lista de valores: vários tipos separados por vírgula, como em ?kind=insurance,cruise. A chamada não muda.

  • Em Consultar produto por ID, o campo restitutes_lei_kandir de cada fornecimento passou a se chamar restitutes_kandir_law. O valor não muda.

  • Os produtos de sistema passaram a aparecer nos exemplos com system: true, e a descrição do campo foi corrigida: produto de sistema não pode ser excluído, mas pode ser editado.

Vendas

  • Criar venda: o cargo da comissão no array commissions passou a ser informado pelo campo kind (seller, intermediary ou person), em vez de job_title_id (UUID). seller e intermediary gravam o cargo de sistema correspondente; person grava sem cargo. O external_id do destinatário continua obrigatório.

  • Na criação de vendas, o campo ticket_number do passageiro passou a ser aceito em operação própria, bilhete de trem e pacote de viagem, gravando o documento do passageiro — a mesma coluna que a consulta desses produtos devolve em document.

  • O filtro ?status= passou a ser descrito como lista de valores: vários status separados por vírgula, como em ?status=opened,closed. A chamada não muda.

Contas a pagar e receber

  • O filtro ?status= passou a ser descrito como lista de valores: vários status separados por vírgula, como em ?status=open,overdue. A chamada não muda.

2026-09-10

Anexos

  • Enviar anexo passou a estar disponível: envie um arquivo por requisição em multipart/form-data, informando resource_type (por ora sale) e o resource_id da venda de destino, além de file e um description opcional. Valida a extensão (pdf, imagens, arquivos office, txt, csv), o tamanho máximo de 12 MB e o conteúdo real do arquivo. O anexo passa a aparecer na consulta da venda e no download. Aceita Idempotency-Key para reenvio seguro.

2026-09-09

Vendas

  • O campo payer de cada pagamento passou a aceitar um objeto de pessoa completo, o mesmo do pagante da venda, e cria a pessoa quando ela ainda não existe. Antes, só referenciava por external_id alguém já cadastrado. Repetir o external_id do pagante da venda resolve para a mesma pessoa. Quando omitido, o pagamento segue herdando o pagante da venda.

2026-09-08

Autenticação

  • A autenticação passou a usar o esquema Bearer no cabeçalho Authorization. A credencial é a mesma e não precisa ser reemitida, então as integrações em produção seguem funcionando. Use Bearer daqui em diante.

Vendas

  • Em Criar venda, o external_id dos produtos passou a se chamar local_id, e o mesmo vale para cada item de payments[].*.products[]. O local_id é uma chave de correlação válida apenas dentro da requisição: precisa ser único entre os produtos daquela venda, não é armazenado e pode ser reutilizado em vendas seguintes. Ele aceita apenas texto.

  • Na leitura de Listar vendas e Obter venda por ID, os produtos deixaram de trazer o external_id. O identificador do produto na leitura é o id.

2026-09-03

Todas as consultas

  • As consultas de lista passaram a paginar por cursor. A resposta traz next_cursor no nó pagination, e para pedir a próxima página basta devolvê-lo no parâmetro cursor, enquanto has_next_page for verdadeiro. Veja a seção de Paginação. O parâmetro page continua funcionando como antes para quem já integrou, mas não é mais a forma divulgada: pelo page o custo de cada página cresce com a profundidade da varredura, e pelo cursor não cresce. Quem pagina por cursor não recebe mais page no nó pagination.

2026-09-02

Credenciamento de fornecedores

  • O fornecedor passou a receber as credenciais numa página própria no Monde (o e-mail traz só o link para ela); o client_secret é exibido uma única vez e não é mais enviado por e-mail. A página também traz o snippet do botão "Conectar com o Monde".
  • O credenciamento ganhou um passo de homologação: confirme suas credenciais em POST /oauth/homologation (HTTP Basic com client_id e client_secret). Enquanto pendente, a autorização não funciona; ao responder 200, passa a ativo. Veja a seção Credenciamento de fornecedores.

2026-09-01

Vendas

  • Criar venda passou a aceitar o campo payer em cada pagamento (cartão de crédito, boleto e depósito na agência; cartão, crédito e outros no fornecedor), referenciando por external_id a pessoa que efetivamente paga aquele pagamento — tipicamente o responsável financeiro informado na venda. Na agência, a Conta a Receber gerada usa esse pagante como Pessoa; no fornecedor, o pagante vai no lançamento da Conta a Pagar. Quando omitido, o pagamento herda o pagante da venda. Um external_id que não corresponde a nenhuma pessoa cadastrada devolve 422.

2026-08-31

Vendas

  • Criar venda passou a aceitar o requester (solicitante), para registrar quem pediu a venda junto da criação. É pessoa física, campo opcional, resolvido por external_id (find-or-create), como os demais papéis.

2026-08-28

Vendas

  • Criar venda passou a aceitar o array commissions, para gravar comissões manuais (vendedor, intermediário ou outra função) junto da venda. O destinatário é referenciado por external_id, o mesmo informado no vendedor/intermediário; o cargo vai em job_title_id. Só é aceito quando status é closed; comissão de cargo intermediário exige que a venda tenha intermediário.

2026-08-27

Vendas

  • Criar venda passou a devolver 422 quando o CPF/CNPJ de uma pessoa da venda (pagador, fornecedor, passageiro) já pertence a outra pessoa da base, com o erro no campo cpf_cnpj. Antes, o conflito de documento estourava erro interno (500).

2026-08-26

Credenciamento de fornecedores

  • Fornecedores homologados pelo Monde passaram a criar vendas na API v3 em nome da agência via OAuth 2.0 (Authorization Code + PKCE), sem a agência compartilhar senha de credencial. Veja o passo a passo (autorização na URL raiz, troca do code pelo token e uso do Bearer na URL fixa da v3) na seção Credenciamento de fornecedores. A agência revoga o acesso a qualquer momento e a revogação invalida o token na hora.

2026-08-24

Vendas

  • Criar venda passou a herdar os serviços inclusos cadastrados no produto. Quando o campo included_services do produto da venda não é enviado, o texto do cadastro do produto é gravado; quando é enviado, o texto informado é acrescentado ao do cadastro. Antes, o campo do produto da venda ficava com apenas o que a requisição enviava.

2026-08-21

Vendas

  • Consultar vendas passou a filtrar por number (um por requisição): informe o número exibido no aplicativo e a consulta devolve a venda correspondente sem precisar traduzir número em UUID antes. Número não inteiro devolve 400.
  • Consultar vendas passou a filtrar por updated_since (data ou data-hora ISO 8601, ex.: 2026-08-01 ou 2026-08-01T14:30:00; sem fuso, considera Brasília): devolve as vendas atualizadas nesse instante ou depois, para reprocessar só o que mudou desde a última consulta, inclusive no mesmo dia. Um valor inválido devolve 400.

Viagens

  • Consultar viagens passou a filtrar por data com date_field + date_from/date_to: escolha a data em date_field (start_date ou end_date, o início e o fim da viagem calculados a partir das vendas vinculadas) e informe o intervalo fechado inclusivo em date_from/date_to (ISO YYYY-MM-DD, ambos opcionais). date_field é obrigatório quando há alguma data; data em formato inválido, intervalo invertido (date_from maior que date_to) ou date_field fora da lista devolvem 400. Viagem sem vendas vinculadas não tem datas calculadas e nunca aparece em um intervalo de datas.

Contas a pagar e receber

  • Consultar contas a pagar e receber passou a filtrar por number (um por requisição): informe o número do lançamento exibido no aplicativo. Lançamentos parcelados têm sufixo de parcela (ex.: 362-1), então informe o número exatamente como aparece.
  • Consultar contas a pagar e receber passou a filtrar por data com date_field + date_from/date_to: escolha a data em date_field (issue_date = emissão, due_date = vencimento, settlement_date = liquidação) e informe o intervalo fechado inclusivo em date_from/date_to (ISO YYYY-MM-DD, ambos opcionais). date_field é obrigatório quando há alguma data; data em formato inválido, intervalo invertido (date_from maior que date_to) ou date_field fora da lista devolvem 400. Filtrar por settlement_date traz só contas liquidadas (as não liquidadas não têm data de liquidação e ficam de fora do intervalo); como o status padrão (open, overdue) exclui liquidadas, inclua settled no parâmetro status ao usar settlement_date.

2026-08-20

Vendas

  • Criar venda passou a aceitar o campo status. O padrão continua opened; envie closed para já criar a venda fechada. O fechamento respeita todas as regras existentes (sem saldo pendente, e na base consolidadora o intermediário é obrigatório) e exige a permissão de fechar venda na credencial. Se a venda não puder ser fechada, a criação inteira é recusada com 422 e nada é gravado.

2026-08-17

Vendas

  • Consultar vendas passou a filtrar por data com date_field + date_from/date_to: escolha a data em date_field (sale_date, departure_date ou return_date) e informe o intervalo fechado inclusivo em date_from/date_to (ISO YYYY-MM-DD, ambos opcionais). Substitui period_start/period_end, que foram removidos. date_field é obrigatório quando há alguma data; data em formato inválido, intervalo invertido (date_from maior que date_to) ou date_field fora da lista devolvem 400.

  • Na resposta da venda, period_start e period_end viraram departure_date e return_date — mesmos valores (início e fim da viagem, calculados pela menor e maior data dos produtos).

2026-08-14

Vendas

  • Consultar venda por ID passou a trazer o array excursions.
  • Na criação de vendas, o campo de taxa do passageiro (fees) passou a ser aceito em todos os produtos com passageiros — seguro viagem, cruzeiro, hospedagem, transporte terrestre, aluguel de carro, trem, pacote de viagem e operação própria —, alinhado ao que a leitura já usa. rav_fee, rav_fee_discount e agency_fee passaram a ser aceitos nos mesmos produtos, exceto operação própria, cujo passageiro só tem valor e taxa; other_fees (hospedagem, aluguel de carro, pacote de viagem) e tip (cruzeiro) também passaram a ser aceitos. Nos produtos que tinham nome próprio para a taxa principal — service_fee (hospedagem e transporte terrestre) e booking_fee (trem) —, os nomes antigos continuam aceitos por enquanto, mas saem da documentação em favor de fees.
  • Corrigido totals.balance: vendas criadas pela Criar venda vinham sempre com saldo 0 na leitura, mesmo tendo saldo em aberto real. Passa a refletir o saldo correto tanto na consulta em lista quanto na consulta por ID.

Pessoas

  • Consultar pessoa por ID ganhou o nó kandir_law: a retenção de imposto por produto (valor, taxa de embarque, taxa DU/RAV e taxa de serviço, cada uma com o detalhamento por imposto — IR, CSLL, PIS e COFINS — e o total, nos regimes nacional e internacional), com a referência ao produto. Só existe para pessoa jurídica; vem null para pessoa física.
  • city_inscription e tax_identification_number voltaram para o nível raiz da pessoa. Estavam dentro de additional_data, que só existe para pessoa física, mas os dois são dados de pessoa jurídica.

Regras de faturamento

  • Em closing.period_kind, o valor separate virou standalone. "Avulso" é o fechamento que deixa cada venda em uma fatura própria, e standalone é como a API já nomeia esse mesmo conceito no kind do lançamento financeiro.

Contas a pagar e receber, e notas fiscais

Nomenclatura

  • Os schemas de Produtos e de Tarefas passaram a seguir a convenção do restante da API: o schema da consulta em lista ganhou o sufixo _summary, e o nome sem sufixo passou a ser o da consulta por ID.

Nomenclatura

2026-08-13

Ajuste do padrão de leitura em vários endpoints, na mesma direção da entrada de 2026-08-11: a consulta em lista traz os campos do próprio registro, e as associações — referências e dados de outras entidades — ficam na consulta por ID.

Pessoas

  • Consultar pessoas passou a trazer todos os campos da própria pessoa, que antes só existiam na consulta por ID: rg_ie, passport_number, passport_expiration_date, foreigner, foreign_identity_document, business_phone, website, cvc_code, observations, charge_billet_fee, registered_at e os nós additional_data, last_contacts, tax_withholding e airline.
  • Entraram gender e birthdate, nas duas leituras.
  • Consultar pessoa por ID ficou com o que é associação: birthplace, seller, promoter, registered_by, contacts, labels, custom_fields, attachments e credit_cards.
  • Os contatos e os cartões de crédito não trazem id: são dados que só existem dentro da pessoa.
  • Nos cartões de crédito, masked_number virou last_digits e passou a trazer só os quatro últimos dígitos, sem a máscara.

Contas a pagar e receber

  • Consultar contas a pagar e receber passou a trazer billet, check e card, que antes só existiam na consulta por ID. São dados do próprio lançamento.
  • Em credit_card_items, o id — que era o identificador da movimentação, não da linha — deu lugar à referência movement, resolvida em Consultar movimentação por ID.

Notas fiscais

Cidades, categorias, contas e cartões

Logs

  • kind passou a declarar os valores possíveis: insertion, edition, deletion, custom e export. Não há outros.
  • A descrição de person passou a indicar Consultar pessoa por ID, o endpoint que resolve a referência.

Vendas, produtos, tarefas e regras de nota fiscal

  • Consultar venda por ID passou a trazer a referência travel, resolvida em Consultar viagem por ID. O vínculo existia só no sentido inverso.
  • Produtos passou a trazer active, e Tarefas, deleted.
  • Nas regras de nota fiscal, dentro de payer_rule, supplier_rule e representative_rule, o recipient passou a vir antes de revenues e discounts.

2026-08-12

  • Consultar vendas ganhou o filtro people_id: retorna as vendas em que a pessoa informada participa em qualquer papel (pagante, vendedor, intermediário, solicitante, aprovador, promotor, passageiro, fornecedor, representante ou quem cadastrou a venda). Aceita vários identificadores separados por vírgula — a venda entra quando qualquer uma das pessoas participa.
  • Novos endpoints de leitura das definições de campos personalizados: Consultar campos personalizados e Consultar campo personalizado por ID. A consulta lista os campos personalizados por recurso (sales, travels, people, bills e tasks), com o identificador, o nome, o tipo, se é obrigatório, se está ativo e as opções cadastradas dos campos do tipo lista, e aceita o filtro resource; a consulta por ID resolve a definição de um campo a partir do id. As definições não são recortadas por empresa. O identificador de cada campo é numérico (não é um UUID como no resto da API).

  • O nó pagination deixou de trazer total e total_pages, e passou a trazer has_next_page. Para percorrer uma consulta inteira, peça a próxima página enquanto has_next_page for verdadeiro. O pedido não muda: page e size funcionam como antes. Contar o total exigia percorrer todos os registros que atendiam ao filtro a cada requisição, o que em bases grandes custava mais do que buscar a própria página.

2026-08-11

Toda leitura passou a ter duas formas: uma consulta em lista, enxuta, para extrair volume, e uma consulta por ID, com o registro completo. As associações não vêm mais embutidas: vêm como referência, só com o identificador. A descrição de cada referência indica o endpoint que a resolve, e referências e coleções aparecem apenas na consulta por ID. As mudanças estão agrupadas por endpoint.

As consultas por ID novas estão documentadas antes de existirem: cada uma leva a etiqueta Em desenvolvimento até o código entrar. As consultas em lista que já existiam seguem em Beta, disponíveis para uso.

Vendas

  • Consultar vendas devolve só os campos escalares da venda e os totais. Os produtos, os pagamentos, as comissões, os anexos, os campos personalizados e o nó financial saíram da lista e continuam em Consultar venda por ID, que é também onde ficam as referências: pagante, vendedor, empresa, intermediário, solicitante, aprovador, promotor, operação e quem cadastrou.
  • sale_id virou id. travel_agent virou seller, e a referência aponta para Consultar vendedor por ID — o id é o mesmo de antes, porque o vendedor compartilha o identificador da pessoa; para os dados de pessoa, use o mesmo id em Consultar pessoa por ID.
  • Saíram três campos: company_identifier, que era o CNPJ copiado da empresa e dá lugar à referência company (na criação continua obrigatório), totals.payments e o role das comissões.
  • Nas comissões, value, retained_value e leftover viraram amount, retained_amount e balance; nos totais, final_value virou final_amount; nos repasses ao fornecedor, value virou amount.
  • Os pagamentos mudaram de forma. payments deixou de ser lista e virou um objeto com agency e vendor. Em agency, bills e refunds são listas de referência, resolvidas em Consultar conta a pagar ou receber por ID e em Consultar reembolso por ID; credit, retained_by_intermediary e legacy vêm embutidos, porque não geram lançamento financeiro. Em vendor, há uma lista por forma: credit_card, check, credit e others.
  • Com isso saíram os nós por forma do lado da agência (cash, check, credit_card, debit_card, bank_slip, bank_deposit, others, custom e invoice). Todos eles geram um lançamento, e é o lançamento que traz a forma de pagamento, a conta, a liquidação, o boleto e os produtos cobertos. Um lançamento liquidado em várias formas aparece uma vez, e cada liquidação vem em movements, no próprio lançamento.
  • Cada item de products traz agora amount e a referência sale_product, no lugar de external_id e payment_amount. Todo pagamento embutido ganhou payer, que pode ser diferente do pagante da venda.
  • No nó financial, vendor virou vendor_bills e bills virou standalone_bills — as duas agora listas de referência aos lançamentos. Os itens e valores vêm do próprio lançamento.
  • O campo operation da venda é a referência à operação própria do cabeçalho, e o detalhe do produto de operação própria fica na coleção operations, junto dos demais produtos. Na entrada de 2026-08-07 esse campo passou a trazer o produto inteiro quando havia linha; agora ele é sempre referência.
  • Cada produto da venda passou a trazer o próprio id, o que torna resolvível a referência sale_product do lançamento, da nota fiscal, do reembolso e do extrato CVC. Nos tipos others, operation e cvc_package, saíram product_name e product_with_passengers e entrou a referência product; nos outros oito tipos existe um único produto de sistema por tipo, e o nome do array já identifica qual é.
  • currency é um código ISO (texto) na criação e na consulta; o objeto currency completo ficou exclusivo de Moedas. Nos produtos da venda, currency e exchange_rate são campos de criação: na consulta devolvem sempre BRL e 1, e os valores vêm convertidos para Real.
  • Em custom_fields, cada campo passou a trazer o id da definição e deixou de trazer o name. O nome, o tipo e as opções vêm da consulta de definições de campos personalizados.
  • A resposta de Inserir venda passou a ser a mesma da consulta por ID. O corpo da requisição não muda.
  • Criar venda passou a aceitar o campo opcional description nos pagamentos de agência (cartão de crédito, boleto e depósito). Quando informado, o texto é gravado no lançamento financeiro; quando omitido, continua sendo usado "Pagamento venda". Máximo de 60 caracteres.

Contas a pagar e receber

  • Consultar conta a pagar ou receber por ID ganhou os blocos check e card, com os dados de cheque e de cartão informados no cadastro. Antes eles só apareciam na venda, e ficavam inacessíveis enquanto o pagamento não fosse liquidado.
  • No kind, sale_separate e vendor_separate viraram sale_standalone e vendor_standalone. O filtro kind aceita os novos valores.
  • Em custom_fields, cada campo passou a trazer o id da definição e deixou de trazer o name, como na venda.

Pessoas

  • Novo Consultar pessoa por ID, com os contatos, os marcadores, os campos personalizados, os anexos e os cartões de crédito. Consultar pessoas ficou enxuta.
  • A cidade do endereço, a naturalidade, o vendedor, o promotor e quem cadastrou vêm como referência.
  • external_id passou a constar na consulta: a resposta já trazia o identificador que você atribuiu à pessoa, mas ele não estava documentado. Vem nulo quando a credencial que consulta não tem identificador externo para aquela pessoa.
  • Listar pessoas passou a aceitar filtros por name, cpf_cnpj, passport_number, phone, kind (individual ou company), code e email. Todos são opcionais e combináveis (E lógico entre eles): name, passport_number e email casam por trecho, ignorando maiúsculas e acentos; cpf_cnpj e phone aceitam só os dígitos (a máscara é ignorada) e code é valor exato. Sem nenhum filtro, o comportamento é o mesmo de antes.

Produtos

  • Novo Consultar produto por ID, com os fornecimentos em supplies: cada um traz o fornecedor, os dados de comissão e os representantes.
  • Nos fornecimentos, commission_value virou commission_amount, e commission_type passou a aceitar amount em vez de value.

Tarefas

Viagens

  • Novo Consultar viagem por ID, com as referências às vendas e aos passageiros vinculados. Os valores por passageiro pertencem a cada venda e saem pelo endpoint da venda.
  • client virou customer, e seller passou a apontar para o endpoint de vendedores.

Extrato CVC

Orçamentos

Anexos

  • attachment_id virou id.

Demais cadastros

Cadastros novos na leitura

2026-08-10

  • Criar venda passou a aceitar campos personalizados no campo custom_fields (array de {id, value}). O id é o mesmo retornado por Consultar campos personalizados; o value deve corresponder ao tipo do campo (número inteiro para numérico, número para monetário, data ISO 8601, texto para os demais). ⚠️ Campos ativos e obrigatórios do módulo de vendas passam a ser exigidos: o create devolve 422 se um deles não vier com valor.

  • Na leitura de vendas e de lançamentos financeiros, cada item de custom_fields passou a ser {id, value}: traz o id do campo (a referência) e o value, e deixou de trazer o name. O nome, o tipo e o restante da definição são obtidos em Consultar campo personalizado por ID ou em Consultar campos personalizados, para o consumidor sempre ler a referência e não um dado projetado que pode desatualizar.

2026-08-07

  • Criar venda passou a aceitar o produto de operação própria no campo operation (objeto único; no máximo um por venda). O produto é informado por product_id e, conforme a configuração dele, os valores vão por passengers ou por quantity × unit_price (com unit_fee e a taxa de serviço oculta agency_fee, um valor único da linha); o fornecedor é a própria empresa da venda.

  • Na leitura (Listar vendas e Obter venda por ID), o campo operation passou a trazer o detalhe completo do produto de operação própria; antes trazia só id e name.

  • Novos endpoints de leitura do histórico de alterações: Consultar logs e Consultar logs por ID. A consulta traz a ação registrada, a origem, a descrição da alteração e o momento em que ela foi gravada, com filtros por autor, registro auditado, ação e origem; a consulta por ID acrescenta as referências para o autor e para o registro auditado. O histórico não é recortado por empresa.

2026-08-04

  • Os itens de Obter conta a pagar ou receber por ID mudaram: customer_items e vendor_items foram substituídos por um único items, que traz todos os itens do lançamento, inclusive os de pagamento de venda, que antes não saíam em array nenhum. O item passou a trazer só as próprias colunas (description, cost_center, checked, amount) mais as referências sale, sale_product e cvc_statement; os dados do produto da venda saíram, e a fonte deles é Obter venda por ID.

  • Cada linha de credit_card_items passou a trazer id e a referência bill, e perdeu description e person. O id é o da movimentação, então dá para consultá-la em Obter movimentação por ID.

  • Cada linha de commissions ganhou a referência person, e o campo leftover passou a se chamar balance.

  • O lançamento perdeu sale_number, balance, status, overdue_days e settled_late, e ganhou canceled, checked, invoice_closed, system_generated e recurrence_group_id. A visualização por ID ganhou as referências sale e invoice_rule. No filtro status, o valor paid passou a settled.

2026-07-31

  • Novos endpoints de leitura do extrato CVC: Consultar extrato CVC e Consultar extrato CVC por ID. A consulta traz o número do recibo, as datas de movimentação, venda, cancelamento, embarque e retorno, o nome do produto, o nome do pacote, os totais, as comissões, o depósito, os saldos e as marcas de importado, editado, conferido e excluído; a visualização por ID acrescenta o tipo do movimento e as referências para empresa, contratante, vendedor, intermediário, venda, produto da venda, nota fiscal e quem cadastrou. Recibo excluído fica fora da consulta, mas continua acessível por ID. Escopo por empresa.

  • Novos endpoints de leitura de notas fiscais: Consultar notas fiscais e Consultar notas fiscais por ID. A consulta traz numeração, situação, natureza da operação, datas, valores, os dados do tomador gravados na nota com a referência para a cidade dele, as retenções e tributos e os dados da NFS-e, com filtros de situação e de período de emissão; a visualização por ID acrescenta os itens da nota e as referências para pessoa, empresa, produto da venda, venda e quem cadastrou ou cancelou. Escopo por empresa.

  • Novos endpoints de leitura de reembolsos: Consultar reembolsos e Consultar reembolsos por ID. Trazem o lado do reembolso (cliente ou fornecedor), o valor, a descrição, a emissão e o vencimento, e a visualização acrescenta as referências para venda, produto da venda, pessoa, empresa e conta a pagar ou a receber, com escopo por empresa.

2026-07-29

  • Novos endpoints de leitura de movimentações: Consultar movimentações e Consultar movimentação por ID. A consulta traz data, valor, sentido (crédito ou débito), observação e os dados de cheque e de cartão; a consulta por ID acrescenta as referências para conta, forma de pagamento, conta a pagar/receber, fatura de cartão e conta do outro lado da transferência. Escopo por empresa.

2026-07-28

  • Novos endpoints de leitura de contas a pagar e receber: Consultar contas a pagar e receber e Consultar conta a pagar ou receber por ID. Trazem identificação, valores, situação, boleto, recorrência, categorias, rateios, movimentações de liquidação, itens de fatura (cliente, fornecedor ou cartão), comissões, anexos e campos personalizados, com escopo por empresa.

2026-07-17

  • Os endpoints Consultar vendas e Consultar venda por ID passaram a incluir os anexos da venda no campo attachments: cada anexo traz id, description, extension, content_type e download_url, com o conteúdo acessível por um link de download temporário.

2026-07-16

2026-07-15

  • Os endpoints Consultar vendas e Consultar venda por ID passaram a incluir as comissões da venda no campo commissions: o rateio por pessoa e função (vendedor, intermediário e outros), com valor da comissão, valor retido e saldo.

2026-07-14

  • Os endpoints Consultar vendas e Consultar venda por ID passaram a incluir os dados financeiros da venda no campo financial: observações financeiras, os repasses aos fornecedores e os lançamentos de contas a pagar e a receber vinculados à venda.

2026-07-10

Conexão automática

Além do Basic Auth, um parceiro homologado pelo Monde pode acessar a API v3 em nome de uma agência de viagens, via OAuth 2.0 (Authorization Code + PKCE), sem que a agência compartilhe a senha de uma credencial. O que o parceiro pode fazer é definido na homologação, e a agência vê e aprova essa lista ao autorizar.

Todos os endpoints desta seção ficam em https://web.monde.com.br.

Credenciais de homologação

  • Para pedir a homologação, fale com o comercial ou com o suporte do Monde. Informe o nome do parceiro, o e-mail que recebe as credenciais e a redirect_uri.
  • A redirect_uri é uma só por parceiro e precisa usar https. Ela precisa ser idêntica, caractere por caractere, na autorização e na troca do token (uma barra no fim já é diferença). Endereços http, inclusive localhost e 127.0.0.1, não são aceitos.
  • Na homologação, o Monde envia por e-mail um link para a sua página de conexão automática. O link vale 1 hora; se vencer, peça o reenvio. O client_id e o client_secret aparecem nessa página; o secret é exibido uma única vez, então guarde-o na hora. Se precisar vê-lo de novo, solicite a regeneração ao Monde.
  • Guarde o client_secret só no seu backend. Ele nunca vai para o navegador nem para o app do usuário.

1. Ativar a conexão automática (homologação)

Antes de usar, confirme que suas credenciais funcionam batendo na rota de homologação com client_id e client_secret (HTTP Basic). Enquanto a homologação está pendente, a autorização não funciona.
curl -X POST https://web.monde.com.br/oauth/homologation -u "SEU_CLIENT_ID:SEU_CLIENT_SECRET"
  • 200 com {"status":"active"}: a conexão passa a ativa. Chamar de novo devolve a mesma resposta.
  • 401 com corpo vazio: client_id ou client_secret errado, ou parceiro desativado pelo Monde.

2. Autorização

A cada tentativa de conexão, gere no backend um state e um code_verifier novos e guarde os dois na sessão do usuário. O code_verifier é um texto aleatório de 43 a 128 caracteres; o code_challenge é BASE64URL(SHA256(code_verifier)), sem o = no fim. PKCE é obrigatório e só aceita S256: ele é o que impede outro sistema de trocar um code interceptado.
code_verifier=$(openssl rand -base64 64 | tr -d '=+/\n' | cut -c1-64) code_challenge=$(printf '%s' "$code_verifier" | openssl dgst -sha256 -binary | openssl base64 | tr '+/' '-_' | tr -d '=\n')
Redirecione o usuário da agência para a URL de autorização, com os valores codificados para URL:
GET https://web.monde.com.br/oauth/authorize?response_type=code&amp;client_id=SEU_CLIENT_ID&amp;redirect_uri=SUA_REDIRECT_URI&amp;state=STATE&amp;code_challenge=CODE_CHALLENGE&amp;code_challenge_method=S256
  • Não envie scope: o que o parceiro pode fazer vem da homologação.
  • Se o client_id não é de um parceiro ativo e homologado, se a redirect_uri não é a cadastrada, ou se falta o code_challenge ou o code_challenge_method não é S256, o Monde responde 400 numa página própria e não volta para a redirect_uri.
A agência faz login, escolhe a empresa e consente. Só um administrador da agência pode autorizar.

3. Retorno na redirect_uri

Quando a agência aprova, o navegador volta para a redirect_uri com o code e o mesmo state que você enviou:
SUA_REDIRECT_URI?code=agencia%7CujES3JCJylJRoM3j_kGeavaD2hFqz2oqw1Lazq_u0rs&state=STATE
Quando a agência recusa:
SUA_REDIRECT_URI?error=access_denied&error_description=O+dono+do+recurso+ou+o+servidor+de+autoriza%C3%A7%C3%A3o+negou+a+requisi%C3%A7%C3%A3o.&state=STATE
  • Compare o state com o da sessão. Se for diferente ou faltar, descarte a resposta.
  • O code é opaco. Use o valor decodificado da URL do jeito que veio, sem cortar nem trocar caracteres. Ele vale 10 minutos e só pode ser trocado uma vez.
  • Nada volta para a redirect_uri quando quem entrou não é administrador da agência, nem quando a empresa não tem a licença de API que as permissões do parceiro exigem. Nesses casos o usuário vê a explicação numa página do Monde.

Botão "Conectar com o Monde"

Coloque na sua plataforma um botão no padrão de "Entrar com o Google", com o texto "Conectar com o Monde". O href aponta para a URL de autorização que você monta no seu backend a cada acesso, com um code_challenge PKCE novo (passo 2 acima), nunca um link estático. O símbolo do Monde é hospedado por nós: https://web.monde.com.br/logo-monde-conectar.svg (colorido, para fundo claro) e https://web.monde.com.br/logo-monde-conectar-branco.svg (branco, para fundo azul). Três variações:

1. Negativo (fundo azul)

Conectar com o Monde
<a href="URL_DE_AUTORIZACAO" style="display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 20px 0 14px;background:#2c7be5;color:#fff;border:1px solid #2c7be5;border-radius:6px;font:600 14px 'Open Sans',Arial,sans-serif;text-decoration:none"><img src="https://web.monde.com.br/logo-monde-conectar-branco.svg" alt="Monde" style="height:22px"> Conectar com o Monde</a>

2. Colorido (fundo branco)

Conectar com o Monde
<a href="URL_DE_AUTORIZACAO" style="display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 20px 0 14px;background:#fff;color:#344050;border:1px solid #d8e2ef;border-radius:6px;font:600 14px 'Open Sans',Arial,sans-serif;text-decoration:none"><img src="https://web.monde.com.br/logo-monde-conectar.svg" alt="Monde" style="height:22px"> Conectar com o Monde</a>

3. Só texto

Conectar com o Monde
<a href="URL_DE_AUTORIZACAO" style="display:inline-flex;align-items:center;height:40px;padding:0 20px;background:#2c7be5;color:#fff;border:1px solid #2c7be5;border-radius:6px;font:600 14px 'Open Sans',Arial,sans-serif;text-decoration:none">Conectar com o Monde</a>

4. Troca do code pelo token

Faça a troca no backend, nunca no navegador. O corpo vai em application/x-www-form-urlencoded; o mesmo corpo em JSON (application/json) também é aceito.
curl -X POST https://web.monde.com.br/oauth/token -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "grant_type=authorization_code" --data-urlencode "code=CODE" --data-urlencode "redirect_uri=SUA_REDIRECT_URI" --data-urlencode "client_id=SEU_CLIENT_ID" --data-urlencode "client_secret=SEU_CLIENT_SECRET" --data-urlencode "code_verifier=CODE_VERIFIER"
Resposta 200:
{ "access_token": "YWdlbmNpYXw2ZjFj...", "token_type": "Bearer", "scope": "full_access", "created_at": 1790602784 }
O access_token não expira e não vem refresh_token. Guarde-o no backend, um por agência conectada, e trate-o como senha.
  • 400 com {"error":"invalid_grant","error_description":"..."}: code vencido ou já trocado, code_verifier que não corresponde ao code_challenge, ou redirect_uri diferente da usada na autorização. Recomece pela autorização.
  • 400 com {"error":"invalid_request","error_description":"..."}: o code_verifier não foi enviado.
  • 401 com {"error":"invalid_client","error_description":"..."}: client_id ou client_secret errado.
  • 404 com corpo vazio: o code chegou alterado.

5. Uso na API v3

A URL da API v3 não muda: chame https://web.monde.com.br/api/v3 com o token no cabeçalho Authorization (o token já carrega a agência).
Authorization: Bearer SEU_ACCESS_TOKEN
Para confirmar que a conexão funciona sem criar dado, chame GET /api/v3/sales com o token:
curl https://web.monde.com.br/api/v3/sales -H "Authorization: Bearer SEU_ACCESS_TOKEN" -H "Content-Type: application/json"
  • 403 com {"errors":["Você não tem permissão para executar essa ação."]}: o token é válido e a integração está pronta. O parceiro cria vendas, mas não as lê.
  • 401 com {"errors":["Credenciais de acesso não são válidas."]}: o token é inválido ou a conexão foi excluída. Recomece pela autorização.
  • O parceiro só acessa a empresa que a agência escolheu, com as permissões que ela aprovou.
  • Criar vendas pela integração não exige licença de API. Permissões fora de Vendas exigem licença de API na empresa escolhida.
  • A venda criada volta completa na resposta do POST /sales.
  • A agência pode excluir a conexão a qualquer momento; o acesso cai na hora e a API passa a responder 401.

6. Desconectar (revogação)

Quando o usuário desconectar na sua plataforma, ou se o token vazar, revogue o token no backend:
curl -X POST https://web.monde.com.br/oauth/revoke --data-urlencode "token=SEU_ACCESS_TOKEN" --data-urlencode "client_id=SEU_CLIENT_ID" --data-urlencode "client_secret=SEU_CLIENT_SECRET"
A resposta é 200 com {}. A conexão com a agência é excluída na hora e o token para de funcionar. Para conectar de novo, recomece pela autorização.
  • 403 com {"error":"unauthorized_client",...}: client_id ou client_secret errado, ou o token não pertence a este client_id. Nada é revogado.