Bem-vindo a API da Monde! Essa documentação detalha os endpoints disponíveis para você integrar seu sistema conosco.
https://web.monde.com.br/api/v3. string, integer, float, boolean, etc. .) como separador decimal, apenas nas últimas duas casas. Exemplo: 99999.99. required. Cada endpoint tem uma etiqueta que indica se você já pode utilizá-lo:
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
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.
550e8400-e29b-41d4-a716-446655440000).X-Idempotent-Replay: true.409 Conflict.422 Unprocessable Content), a chave volta a ficar disponível: reenviar a mesma requisição com a mesma chave é processado de novo.422 Unprocessable Content.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.
429 Too Many Requests e uma mensagem de erro.429, aguarde antes de tentar novamente e use um tempo de espera crescente entre as tentativas (backoff exponencial). 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.
cursor.has_next_page for true, repita a requisição enviando cursor com o valor de next_cursor da resposta anterior.has_next_page for false, next_cursor vem nulo e a varredura terminou.size define quantos registros vêm por página: de 1 a 50. Sem o parâmetro, são 20.400.⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.
429.
Idempotency-Key e aplique backoff exponencial.
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "multipart/form-data" Example: multipart/form-data Tipo de conteúdo da requisição. Deve ser multipart/form-data. |
| Idempotency-Key required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][... Example: 550e8400-e29b-41d4-a716-446655440000 Chave de idempotência (UUID v4) gerada pelo cliente. Veja a seção de Idempotência para mais detalhes. |
| resource_type required | string Enum: "sale" "person" Recurso que irá receber o anexo: "sale" para uma venda, "person" para uma pessoa. |
| resource_id required | string <uuid> ID do recurso que irá receber o anexo. |
| file required | string <binary> Arquivo binário a ser anexado.
|
| description | string <= 255 characters Descrição do anexo. Sem ela, vale o nome do arquivo sem a extensão. Os caracteres que o Windows não aceita em nome de arquivo (\ / : * ? " < > |) são trocados por hífen (-). |
{ "resource_type": "sale", "resource_id": "c52a1c51-80e2-4a28-925e-2102a7b5d4e1", "file": "@voucher.pdf", "description": "voucher" }
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "description": "string",
- "extension": "string",
- "content_type": "string",
}⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.
Redireciona (302) para um link temporário do arquivo, que expira em poucos minutos. Um novo acesso gera um novo link. O conteúdo é compactado em gzip e vem sem o cabeçalho Content-Encoding: descompacte antes de usar.
O download exige a permissão de leitura do registro dono do anexo, concedida na empresa dele quando ele tem uma:
| id required | string <uuid> Example: b8c9d0e1-f2a3-4455-c6d7-e8f9a0b1c2d3 Identificador do anexo. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
{- "errors": [
- "Credenciais de acesso não são válidas."
]
}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.
⚠️ 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 | string Enum: "sale_date" "departure_date" "return_date" Example: date_field=sale_date 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 | string <date> Example: date_from=2024-01-01 Filtrar vendas cujo campo escolhido em date_field seja igual ou posterior a esta data, no formato ISO 8601 (AAAA-MM-DD). |
| date_to | string <date> Example: date_to=2024-12-31 Filtrar vendas cujo campo escolhido em date_field seja igual ou anterior a esta data, no formato ISO 8601 (AAAA-MM-DD). |
| status | Array of strings Items Enum: "opened" "closed" "canceled" Examples:
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 | Array of strings <uuid> [ items <uuid > ] Examples:
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 | integer Example: number=1024 Filtrar vendas pelo número exibido no aplicativo (ex.: 1024). Um número por requisição. |
| updated_since | string <date-time> Example: updated_since=2026-08-01T14:30:00 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. |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
{- "data": [
- {
- "id": "9f8e7d6c-5b4a-3210-9876-5432109876ab",
- "sale_number": 987,
- "sale_date": "2026-10-08",
- "status": "closed",
- "observations": "Venda finalizada.",
- "printed_receipt": true,
- "created_at": "2026-10-08T10:30:00",
- "totals": {
- "products": 19188.57,
- "fees": 598.84,
- "discount": 225,
- "revenue": 1500,
- "balance": 0,
- "final_amount": 19870.43
}
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.
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.
payer precisa ter, depois da requisição, os campos que o Monde exige para salvar a venda: sempre nome e endereço com rua, número, bairro e cidade; CEP para brasileiro; data de nascimento, celular e CPF (brasileiro) ou passaporte (estrangeiro) para pessoa física; razão social, telefone, e CNPJ e IE (brasileira) ou documento fiscal estrangeiro (tax_identification_number) para pessoa jurídica. Vale o cadastro como fica depois da requisição, inclusive o que ela cria ou completa. Faltando algum, a resposta é 422 com um erro por campo, e nada é gravado.
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
| Idempotency-Key required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][... Example: 550e8400-e29b-41d4-a716-446655440000 Chave de idempotência (UUID v4) gerada pelo cliente. Veja a seção de Idempotência para mais detalhes. |
| company_identifier required | string (company_identifier) = 14 characters ^[0-9]{14}$ CNPJ da agência de viagens emissora da venda. Deve conter somente dígitos. A empresa em que a credencial não tem permissão nenhuma é recusada como CNPJ não encontrado. |
| sale_date required | string <date> (sale_date) Data da venda no formato ISO 8601 (AAAA-MM-DD). |
| status | string Default: "opened" Enum: "opened" "closed" Situação da venda na criação. Padrão |
| operation_id | string (operation_id) ID da operação própria associada a essa venda. A operação precisa estar ativa. |
Array of objects (custom_field) Campos personalizados da venda, definidos pela agência. Na criação, envie cada campo por | |
required | object (seller_create) Vendedor que fez a negociação do produto com o cliente e é responsável pela venda. |
required | object (individual_or_company) Contratante do produto, responsável pelo pagamento. Pode ser uma pessoa física ou jurídica. Mesmo que a negociação envolva múltiplos pagantes, informe apenas o pagante principal ou a pessoa que fez a negociação do produto com o vendedor. |
individual_or_company (object) or null | |
individual_person (object) or null Pessoa física que solicitou a venda. | |
individual_or_company (object) or null Pessoa que aprovou a venda. | |
Array of objects (insurance) Seguro viagem. | |
Array of objects (cruise) Cruzeiro. | |
Array of objects (hotel) Diárias de hospedagem. | |
Array of objects (airline_ticket) Passagem aérea. | |
Array of objects (train_ticket) Bilhete de trem. | |
Array of objects (ground_transportation) Transporte terrestre. | |
Array of objects (car_rental) Locação de veículos. | |
Array of objects (travel_package) Pacotes turísticos. | |
Array of objects (excursion) Passeios (excursões) da venda. A excursão é um produto do sistema: não é preciso informar qual produto está sendo vendido. | |
object or null Produto de operação própria da venda. No máximo um por venda, e o produto informado precisa ser o mesmo de | |
Array of objects (others) Outros produtos da venda, que podem ou não ter passageiros. | |
Array of objects (payment) Lista de pagamentos realizados na venda. Cada pagamento pode ser distribuído entre um ou mais produtos através da correspondência do local_id, permitindo o controle detalhado de como os valores foram alocados por produto. | |
Array of objects (commission_create) Comissões a gravar na venda. Só é aceito quando |
{- "company_identifier": "46598887000162",
- "sale_date": "2026-10-08",
- "seller": {
- "external_id": "a8a41bec-e2a2-4d6a-b2f9-8fbc29169e46",
- "name": "João da Silva",
- "cpf": "83115137168"
}, - "payer": {
- "person_kind": "individual",
- "external_id": "cce45f2c-30e3-43a6-bbf1-af340188a04c",
- "name": "Márcio da Veiga",
- "legal_name": null,
- "gender": "male",
- "birthdate": "1990-02-12",
- "cpf_cnpj": "50957153848",
- "rg_ie": "202571476",
- "passport_number": "BC826174",
- "passport_expiration_date": "2030-07-15",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "contato@marcio.com",
- "phone_number": "11999990001",
- "mobile_number": "11999990002",
- "address": {
- "postal_code": "08330410",
- "street": "Avenida Andrômeda",
- "street_number": "100",
- "neighborhood": "Cidade Satélite Santa Bárbara",
- "additional_info": "Apartamento 501",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "intermediary": {
- "person_kind": "individual",
- "external_id": "8a9de5ce-dac6-4721-851b-7366bf9ff5b0",
- "name": "Isabel Ribas",
- "legal_name": null,
- "gender": "female",
- "birthdate": "1984-03-22",
- "cpf_cnpj": "05619249883",
- "rg_ie": "417277556",
- "passport_number": "XM468760",
- "passport_expiration_date": "2035-07-22",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "contato@isabel.com",
- "phone_number": "11999990003",
- "mobile_number": "11999990004",
- "address": {
- "postal_code": "12239420",
- "street": "Rua Maria Martins Ottoboni",
- "street_number": "100",
- "neighborhood": "Campo dos Alemães",
- "additional_info": "Sala 7",
- "city_ibge": "3549904",
- "city_name": "São José dos Campos",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "approver": {
- "person_kind": "individual",
- "external_id": "b7f3c1a2-9d84-4e60-8c15-2a6f0e3d4b91",
- "name": "Renata Furtado",
- "legal_name": null,
- "gender": "female",
- "birthdate": "1979-11-08",
- "cpf_cnpj": "68432197807",
- "rg_ie": "331948027",
- "passport_number": "YK517293",
- "passport_expiration_date": "2032-04-30",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "contato@renata.com",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "13070170",
- "street": "Rua Antônio Lapa",
- "street_number": "100",
- "neighborhood": "Cambuí",
- "additional_info": "Sala 3",
- "city_ibge": "3509502",
- "city_name": "Campinas",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "requester": {
- "external_id": "9f2c7a41-8b53-4e06-a1d9-63f0e2b5c748",
- "name": "Beatriz Nogueira",
- "gender": "female",
- "birthdate": "1988-06-19",
- "cpf": "47690215858",
- "rg": "289104537",
- "passport_number": "RT902184",
- "passport_expiration_date": "2033-09-10",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "contato@beatriz.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310100",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "Conjunto 4",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "insurances": [
- {
- "local_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
- "document": "14296922",
- "begin_date": "2026-10-13",
- "end_date": "2026-10-28",
- "destination": "international",
- "included_services": "Plano: Max BRL R$ 60.000,00 com cobertura de despesas médicas\nCódigo: 1234",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 50.07,
- "intermediary_commission_amount": 25.04,
- "agency_service_fee": 100,
- "discount_amount": 10,
- "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "document": "9921508090000",
- "amount": 625.95,
- "fees": 31.3,
- "rav_fee": 15,
- "rav_fee_discount": 5,
- "agency_fee": 10,
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "cruises": [
- {
- "local_id": "b2c3d4e5-f6a7-8901-2345-678901bcdef0",
- "booking_number": "987568489",
- "departure_date": "2026-10-14",
- "arrival_date": "2026-10-28",
- "ship_name": "MXS Example Seaview",
- "cruise_destination": "Bahamas",
- "accommodation_kind": "Duplo Casal",
- "cabin_number": "1234",
- "cabin_kind": "Royal Suite",
- "cabin_category": "7A",
- "included_services": "Pacote: All Inclusive\nCódigo: 1234",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 835.88,
- "intermediary_commission_amount": 417.94,
- "agency_service_fee": 100,
- "discount_amount": 100,
- "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "amount": 8358.77,
- "fees": 209,
- "tip": 50,
- "rav_fee": 40,
- "rav_fee_discount": 10,
- "agency_fee": 20,
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "hotels": [
- {
- "local_id": "c3d4e5f6-a7b8-9012-3456-789012cdef01",
- "booking_number": "1020506090",
- "check_in": "2026-10-31",
- "check_out": "2026-11-08",
- "destination": "international",
- "accommodation_kind": "Duplo Casal",
- "room_category": "Deluxe",
- "meal_plan": "All Inclusive",
- "included_services": "Epic Journey Hotel: Avenida Rebouças, 397, São Paulo, SP, Brasil\nQuarto com vista para cidade.",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 563.07,
- "intermediary_commission_amount": 281.54,
- "agency_service_fee": 100,
- "discount_amount": 50,
- "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "amount": 5630.73,
- "fees": 281.54,
- "other_fees": 30,
- "rav_fee": 60,
- "rav_fee_discount": 15,
- "agency_fee": 563.07,
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "airline_tickets": [
- {
- "local_id": "d4e5f6a7-b8c9-0123-4567-890123def012",
- "locator": "WABCJJ",
- "destination": "international",
- "included_services": "3 bagagens despachadas sem custo\nAssento com reclinação total\nAcesso ao Lounge",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 136.07,
- "intermediary_commission_amount": 68.04,
- "agency_service_fee": 100,
- "discount_amount": 20,
- "cc_rav_fee": 27.22,
- "cc_du_fee": 27.22,
- "supplier": {
- "airline_code": "AA",
- "airline_number": "001",
- "name": "American Airlines",
- "legal_name": "American Airlines Inc.",
- "cnpj": "73765430000178",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@americanairlines.com.br",
- "phone_number": "11999990023",
- "mobile_number": "11999990024",
- "address": {
- "postal_code": "04543013",
- "street": "Avenida Brigadeiro Faria Lima",
- "street_number": "2232",
- "neighborhood": "Jardim Paulistano",
- "additional_info": "9° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "segments": [
- {
- "airline_code": "AA",
- "flight_number": "1234",
- "class": "A",
- "origin": "NAS",
- "departure_date": "2026-10-13T16:42:08",
- "destination": "JFK",
- "arrival_date": "2026-10-13T16:42:08",
- "seats": [
- {
- "seat_number": "A27",
- "ticket_number": "99526874895"
}
]
}
], - "passengers": [
- {
- "ticket_number": "99526874895",
- "original_ticket_number": "99526874894",
- "emission_name": "Maria da Silva",
- "amount": 1360.67,
- "boarding_fee": 136.06,
- "rav_fee": 204.01,
- "du_fee": 104.01,
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "train_tickets": [
- {
- "local_id": "e5f6a7b8-c9d0-1234-5678-901234ef0123",
- "document": "RE9988777",
- "included_services": "Refeição inclusa\nWi-Fi gratuito\nVagão silencioso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 15,
- "intermediary_commission_amount": 7.5,
- "agency_service_fee": 100,
- "discount_amount": 5,
- "segments": [
- {
- "railway_operator": "SNCF",
- "origin": "Paris Gare de Lyon",
- "departure_date": "2026-10-13T16:42:08",
- "destination": "Nice-Ville",
- "arrival_date": "2026-10-13T22:42:08"
}
], - "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "amount": 240.5,
- "fees": 24.05,
- "rav_fee": 10,
- "rav_fee_discount": 2,
- "agency_fee": 5,
- "document": "RE9988777",
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "ground_transportations": [
- {
- "local_id": "f6a7b8c9-d0e1-2345-6789-012345f01234",
- "document": "GT123456",
- "included_services": "Refeição inclusa\nWi-Fi gratuito.",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 8.55,
- "intermediary_commission_amount": 4.28,
- "agency_service_fee": 100,
- "discount_amount": 5,
- "segments": [
- {
- "coach_company": "Viação UTIL",
- "service_class": "LE",
- "origin": "Terminal Rodoviário Novo Rio",
- "departure_date": "2026-10-11T16:42:08",
- "destination": "Terminal Rodoviário de Santos",
- "arrival_date": "2026-10-11T22:42:08",
- "seats": [
- {
- "seat_number": "27",
- "ticket_number": "0001234567"
}
]
}
], - "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "amount": 121.95,
- "fees": 12.19,
- "rav_fee": 5,
- "rav_fee_discount": 1,
- "agency_fee": 3,
- "document": "0001234567",
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "car_rentals": [
- {
- "local_id": "a7b8c9d0-e1f2-3456-7890-123456a01234",
- "document": "CR123456789",
- "pickup_date": "2026-10-13",
- "pickup_location": "Aeroporto de Congonhas",
- "dropoff_date": "2026-10-20",
- "dropoff_location": "Aeroporto de Congonhas",
- "destination": "national",
- "vehicle_category": "Econômico",
- "included_services": "Quilometragem livre\nSeguro básico incluso\nTanque cheio na retirada",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 35,
- "intermediary_commission_amount": 17.5,
- "agency_service_fee": 100,
- "discount_amount": 10,
- "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "amount": 350,
- "fees": 17.5,
- "other_fees": 8,
- "rav_fee": 7,
- "rav_fee_discount": 2,
- "agency_fee": 5,
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "travel_packages": [
- {
- "local_id": "b8c9d0e1-f2a3-4567-8901-234567a01234",
- "document": "TP123456789",
- "begin_date": "2026-10-18",
- "end_date": "2026-10-25",
- "destination": "international",
- "package_name": "Pacote Europa Clássica",
- "transport": "scheduled_flight",
- "included_services": "Hospedagem: Hotéis 4 estrelas\nRefeições: Café da manhã e jantar\nPasseios: City tour em 5 cidades\nSeguro viagem internacional",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 250,
- "intermediary_commission_amount": 125,
- "agency_service_fee": 100,
- "discount_amount": 25,
- "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "amount": 2500,
- "fees": 125,
- "other_fees": 25,
- "rav_fee": 50,
- "rav_fee_discount": 10,
- "agency_fee": 30,
- "document": "PCT2024050001",
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "excursions": [
- {
- "local_id": "c1d2e3f4-a5b6-4c78-9d0e-1f2a3b4c5d6e",
- "document": "EXC123456",
- "departure_date": "2026-10-13T08:00:00",
- "arrival_date": "2026-10-13T18:00:00",
- "observations": "Saída do hotel às 8h.",
- "included_services": "Guia local incluso\nTransporte incluso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 35,
- "intermediary_commission_amount": 17.5,
- "agency_service_fee": 20,
- "discount_amount": 5,
- "supplier": {
- "external_id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
- "name": "Epic Journey Turismo",
- "legal_name": "Epic Journey Turismo S.A.",
- "cnpj": "11402447000103",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourney.com.br",
- "phone_number": "11999990005",
- "mobile_number": "11999990006",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "1000",
- "neighborhood": "Bela Vista",
- "additional_info": "10° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "representative": {
- "external_id": "028ea1ef-3f8e-4c7f-93da-463794a5afda",
- "name": "Epic Journey Operadora",
- "legal_name": "Epic Journey Operadora Ltd.",
- "cnpj": "18258223000119",
- "ie": "1234567890",
- "foreigner": false,
- "email": "contato@epicjourneyoperadora.com",
- "phone_number": "11999990007",
- "mobile_number": "11999990008",
- "address": {
- "postal_code": "01310932",
- "street": "Avenida Paulista",
- "street_number": "5000",
- "neighborhood": "Bela Vista",
- "additional_info": "7° andar",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}, - "passengers": [
- {
- "amount": 350,
- "fees": 17.5,
- "rav_fee": 10,
- "rav_fee_discount": 2,
- "agency_fee": 5,
- "document": "EXC2024060034",
- "person": {
- "external_id": "322ff2c2-43e0-4376-bea5-20f88b673b6d",
- "name": "Maria da Silva",
- "gender": "female",
- "birthdate": "1990-10-01",
- "cpf": "38107867807",
- "rg": "461196037",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "maria.silva@example.com",
- "phone_number": "11999990009",
- "mobile_number": "11999990010",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308",
- "city_name": "São Paulo",
- "state_code": "SP",
- "country_code": "BR"
}
}
}
]
}
], - "payments": [
- {
- "agency": {
- "credit_card": {
- "due_date": "2026-11-07",
- "settlement_date": "2026-10-08",
- "card_brand": "mastercard",
- "card_last_digits": "5678",
- "authorization": "ABC123",
- "bank_account": {
- "bank_code": "237",
- "agency_number": "1234",
- "agency_digit": "5",
- "account_number": "56789",
- "account_digit": "0"
}, - "products": [
- {
- "local_id": "e5f6a7b8-c9d0-1234-5678-901234ef0123",
- "payment_amount": 264.55
}
]
}
}
}, - {
- "agency": {
- "bank_slip": {
- "due_date": "2026-11-07",
- "settlement_date": "2026-10-08",
- "bank_account": {
- "bank_code": "237",
- "agency_number": "1234",
- "agency_digit": "5",
- "account_number": "56789",
- "account_digit": "0"
}, - "products": [
- {
- "local_id": "a7b8c9d0-e1f2-3456-7890-123456a01234",
- "payment_amount": 350
}
]
}
}
}, - {
- "agency": {
- "bank_deposit": {
- "due_date": "2026-11-07",
- "settlement_date": "2026-10-08",
- "observations": "TED",
- "bank_account": {
- "bank_code": "237",
- "agency_number": "1234",
- "agency_digit": "5",
- "account_number": "56789",
- "account_digit": "0"
}, - "products": [
- {
- "local_id": "c3d4e5f6-a7b8-9012-3456-789012cdef01",
- "payment_amount": 6475.34
}, - {
- "local_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
- "payment_amount": 625.95
}
]
}
}
}, - {
- "vendor": {
- "credit_card": {
- "card_last_digits": "1234",
- "authorization": "XYZ789",
- "installments": 2,
- "products": [
- {
- "local_id": "b2c3d4e5-f6a7-8901-2345-678901bcdef0",
- "payment_amount": 8358.77
}
]
}
}
}, - {
- "vendor": {
- "others": {
- "details": "Fatura",
- "payer": {
- "person_kind": "individual",
- "external_id": "cce45f2c-30e3-43a6-bbf1-af340188a04c",
- "name": "Márcio da Veiga"
}, - "products": [
- {
- "local_id": "b8c9d0e1-f2a3-4567-8901-234567a01234",
- "payment_amount": 2500
}
]
}
}
}, - {
- "vendor": {
- "credit": {
- "products": [
- {
- "local_id": "f6a7b8c9-d0e1-2345-6789-012345f01234",
- "payment_amount": 134.14
}
]
}
}
}
]
}{- "id": "9f8e7d6c-5b4a-3210-9876-5432109876ab",
- "sale_number": 987,
- "sale_date": "2026-10-08",
- "status": "closed",
- "observations": "Venda finalizada.",
- "printed_receipt": true,
- "created_at": "2026-10-08T10:30:00",
- "totals": {
- "products": 19188.57,
- "fees": 598.84,
- "discount": 225,
- "revenue": 1500,
- "balance": 0,
- "final_amount": 19870.43
}, - "company": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "created_by": {
- "id": "b4c3d2e1-6f7a-4b9c-8d1e-2f3a4b5c6d7e"
}, - "operation": {
- "id": "8936058a-2906-4239-9a7f-e22ccc2c195e"
}, - "seller": {
- "id": "7c9e1a04-53b6-4f28-9d71-0e5a2c8b4f13"
}, - "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "intermediary": {
- "id": "d40a7f92-1e63-4b85-8c27-5a9f3e01b6d8"
}, - "requester": {
- "id": "b17c5e38-6a90-4d21-9f43-8e2b70c5a916"
}, - "approver": {
- "id": "95e2a7c1-4b38-4f60-8d19-27a6f3e0b5c4"
}, - "promoter": {
- "id": "6a3f9d27-8c51-4e04-b2f7-72e5c8a91b30"
}, - "travel": {
- "id": "7c1d9f30-5a2b-4e68-9d47-2f8b6c0a1e35"
}, - "custom_fields": [
- {
- "id": 12345,
- "value": "Reunião comercial"
}
], - "insurances": [
- {
- "id": "1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071",
- "document": "14296922",
- "begin_date": "2026-10-13",
- "end_date": "2026-10-28",
- "destination": "international",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Embarque confirmado.",
- "included_services": "Plano: Max BRL R$ 60.000,00 com cobertura de despesas médicas\nCódigo: 1234",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 50.07,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 25.04,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 10,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 25,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 10,
- "products": 625.95,
- "customer_amount": 650.95,
- "amount": 650.95
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "9921508090000",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 25,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 625.95,
- "customer_amount": 650.95,
- "total_amount": 650.95,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "cruises": [
- {
- "id": "2b3c4d5e-6f70-4819-ab2c-3d4e5f607182",
- "booking_number": "987568489",
- "departure_date": "2026-10-14",
- "arrival_date": "2026-10-28",
- "ship_name": "MXS Example Seaview",
- "cruise_destination": "Bahamas",
- "accommodation_kind": "Duplo Casal",
- "cabin_number": "1234",
- "cabin_kind": "Royal Suite",
- "cabin_category": "7A",
- "meal_plan": "All inclusive",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Cabine confirmada.",
- "included_services": "Pacote: All Inclusive\nCódigo: 1234",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 835.88,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 417.94,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 100,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 120,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 100,
- "products": 8358.77,
- "customer_amount": 8478.77,
- "amount": 8478.77
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 120,
- "tip": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 8358.77,
- "customer_amount": 8478.77,
- "total_amount": 8478.77,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "hotels": [
- {
- "id": "3c4d5e6f-7081-492a-bc3d-4e5f60718293",
- "booking_number": "1020506090",
- "check_in": "2026-10-31",
- "check_out": "2026-11-08",
- "destination": "international",
- "accommodation_kind": "Duplo Casal",
- "room_category": "Deluxe",
- "meal_plan": "All Inclusive",
- "nights": 8,
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Reserva garantida.",
- "included_services": "Epic Journey Hotel: Avenida Rebouças, 397, São Paulo, SP, Brasil\nQuarto com vista para cidade.",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 563.07,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 281.54,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 50,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 281.54,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 563.07,
- "discount": 50,
- "products": 5630.73,
- "customer_amount": 6475.34,
- "amount": 6475.34
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "emission_name": "Maria da Silva",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 281.54,
- "other_fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 563.07,
- "amount": 5630.73,
- "customer_amount": 6475.34,
- "total_amount": 6475.34,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "airline_tickets": [
- {
- "id": "4d5e6f70-8192-4a3b-cd4e-5f6071829304",
- "locator": "WABCJJ",
- "destination": "international",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Bilhete emitido.",
- "included_services": "3 bagagens despachadas sem custo\nAssento com reclinação total\nAcesso ao Lounge",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 136.07,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 68.04,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 20,
- "cc_rav_fee": 27.22,
- "cc_du_fee": 27.22,
- "totals": {
- "fees": 136.06,
- "rav_fee": 204.01,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 20,
- "products": 1360.67,
- "du_fee": 104.01,
- "du_fee_discount": 0,
- "customer_amount": 1804.75,
- "amount": 1804.75
}, - "supplier": {
- "id": "3d7b0c94-2a68-4f15-8e93-1c5a6d20b7f4"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "segments": [
- {
- "airline_code": "AA",
- "flight_number": "1234",
- "class": "A",
- "origin": "NAS",
- "departure_date": "2026-10-13T16:42:08",
- "destination": "JFK",
- "arrival_date": "2026-10-13T16:42:08"
}
], - "passengers": [
- {
- "ticket_number": "99526874895",
- "emission_name": "Maria da Silva",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "boarding_fee": 136.06,
- "other_fees": 0,
- "rav_fee": 204.01,
- "rav_fee_discount": 0,
- "du_fee": 104.01,
- "du_fee_discount": 0,
- "agency_fee": 0,
- "amount": 1360.67,
- "customer_amount": 1804.75,
- "total_amount": 1804.75,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "train_tickets": [
- {
- "id": "5e6f7081-92a3-4b4c-de5f-607182930415",
- "document": "RE9988777",
- "departure_date": "2026-10-13T16:42:08",
- "arrival_date": "2026-10-16T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Bilhete emitido.",
- "included_services": "Refeição inclusa\nWi-Fi gratuito\nVagão silencioso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 15,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 7.5,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 5,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 24.05,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 5,
- "products": 240.5,
- "customer_amount": 264.55,
- "amount": 264.55
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "RE9988777",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 24.05,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 240.5,
- "customer_amount": 264.55,
- "total_amount": 264.55,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "ground_transportations": [
- {
- "id": "6f708192-a3b4-4c5d-ef60-718293041526",
- "document": "GT123456",
- "departure_date": "2026-10-13T16:42:08",
- "arrival_date": "2026-10-16T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Bilhete emitido.",
- "included_services": "Refeição inclusa\nWi-Fi gratuito.",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 8.55,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 4.28,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 5,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 12.19,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 5,
- "products": 121.95,
- "customer_amount": 134.14,
- "amount": 134.14
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "0001234567",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 12.19,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 121.95,
- "customer_amount": 134.14,
- "total_amount": 134.14,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "car_rentals": [
- {
- "id": "708192a3-b4c5-4d6e-f071-829304152637",
- "document": "CR123456789",
- "pickup_date": "2026-10-13",
- "pickup_location": "Aeroporto de Congonhas",
- "dropoff_date": "2026-10-20",
- "dropoff_location": "Aeroporto de Congonhas",
- "destination": "national",
- "vehicle_category": "Econômico",
- "rental_days": 7,
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Retirada confirmada.",
- "included_services": "Quilometragem livre\nSeguro básico incluso\nTanque cheio na retirada",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 35,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 17.5,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 10,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 10,
- "products": 350,
- "customer_amount": 350,
- "amount": 350
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "other_fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 350,
- "customer_amount": 350,
- "total_amount": 350,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "travel_packages": [
- {
- "id": "8192a3b4-c5d6-4e7f-0182-930415263748",
- "document": "TP123456789",
- "begin_date": "2026-10-18",
- "end_date": "2026-10-25",
- "destination": "international",
- "package_name": "Pacote Europa Clássica",
- "transport": "scheduled_flight",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Pacote confirmado.",
- "included_services": "Hospedagem: Hotéis 4 estrelas\nRefeições: Café da manhã e jantar\nPasseios: City tour em 5 cidades\nSeguro viagem internacional",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 250,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 125,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 25,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 25,
- "products": 2500,
- "customer_amount": 2500,
- "amount": 2500
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "PCT2024050001",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "other_fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 2500,
- "customer_amount": 2500,
- "total_amount": 2500,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "others": [
- {
- "id": "8f7e6d5c-4b3a-4218-9f0e-1d2c3b4a5968",
- "product": {
- "id": "a3b2c1d0-9e8f-4756-b4a3-2c1d0e9f8a7b"
}, - "document": "OUT123456",
- "destination": "Salvador",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Passeio confirmado.",
- "included_services": "Guia local incluso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 12,
- "commission_percentage": 2,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 4,
- "intermediary_commission_percentage": 2,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 50,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 0,
- "cc_rav_fee": 0,
- "quantity": null,
- "unit_price": null,
- "unit_fee": null,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 2500,
- "customer_amount": 2500,
- "amount": 2500
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "OUT2024060012",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 2500,
- "customer_amount": 2500,
- "total_amount": 2500,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "excursions": [
- {
- "id": "d0e1f2a3-b4c5-4906-a1b2-3c4d5e6f7081",
- "document": "EXC123456",
- "departure_date": "2026-10-13T16:42:08",
- "arrival_date": "2026-10-13T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Passeio confirmado.",
- "included_services": "Guia local incluso\nTransporte incluso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 10,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 5,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 20,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 0,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 350,
- "customer_amount": 350,
- "amount": 350
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "EXC2024060034",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 350,
- "customer_amount": 350,
- "total_amount": 350,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "cvc_packages": [
- {
- "id": "5c4b3a29-1e0d-4982-7c6b-5a4938271605",
- "product": {
- "id": "c5d4e3f2-1a0b-4978-d6c5-4e3f2a1b0c9d"
}, - "package_name": "CVC Caribe 7 noites",
- "receipt_number": "89100000183488",
- "departure_date": "2026-10-23T16:42:08",
- "arrival_date": "2026-10-30T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Pacote confirmado.",
- "included_services": "Hospedagem all inclusive\nTraslados inclusos",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 490,
- "commission_percentage": 12,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 0,
- "intermediary_commission_percentage": 0,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 0,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 0,
- "cc_rav_fee": 0,
- "quantity": 2,
- "unit_price": 1500,
- "unit_fee": 80,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 3160,
- "customer_amount": 3160,
- "amount": 3160
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}
}
], - "operations": [
- {
- "id": "6d5c4b3a-2f1e-4093-8d7c-6b5a49382716",
- "product": {
- "id": "b4c3d2e1-0f9a-4867-c5b4-3d2e1f0a9b8c"
}, - "document": "OP-000123",
- "departure_date": "2026-10-15T16:42:08",
- "arrival_date": "2026-10-15T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "City tour confirmado.",
- "included_services": "Guia local incluso\nTransporte incluso",
- "currency": "BRL",
- "exchange_rate": 1,
- "intermediary_commission_amount": 0,
- "intermediary_commission_percentage": 0,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 0,
- "agency_card_rate": 0,
- "discount_amount": 0,
- "quantity": null,
- "unit_price": null,
- "unit_fee": null,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 2500,
- "customer_amount": 2500,
- "amount": 2500
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "passengers": [
- {
- "document": "OP2024060056",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "amount": 2500,
- "customer_amount": 2500,
- "total_amount": 2500,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "payments": {
- "agency": {
- "bills": [
- {
- "id": "9f2c8b71-4d3e-4a56-b8c9-1e2f3a4b5c6d"
}, - {
- "id": "1a77b3c2-5e6f-4708-9a1b-2c3d4e5f6071"
}, - {
- "id": "4b5c6d7e-8f90-41a2-b3c4-d5e6f7081920"
}
], - "refunds": [
- {
- "id": "3b41c2d5-6e7f-4809-a1b2-c3d4e5f60718"
}
], - "credit": [
- {
- "due_date": "2026-11-07",
- "document": "CRED-000123",
- "amount": 6475.34,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "origin_sale": {
- "id": "3d4e5f60-7182-4394-83a5-c3d4e5f6a7b8"
}, - "products": [
- {
- "amount": 6475.34,
- "sale_product": {
- "id": "3c4d5e6f-7081-492a-bc3d-4e5f60718293"
}
}
]
}
], - "retained_by_intermediary": [
- {
- "due_date": "2026-11-07",
- "amount": 195,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 625.95,
- "sale_product": {
- "id": "1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071"
}
}
]
}
], - "legacy": [
- {
- "due_date": "2026-09-08",
- "amount": 300,
- "check": null,
- "card": {
- "brand": "mastercard",
- "last_digits": "5678",
- "authorization": "ABC123"
}, - "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "payment_method": {
- "id": "fc9f5c65-59d6-42bb-8dd1-a5c0e3e51ea9"
}, - "products": [
- {
- "amount": 8358.77,
- "sale_product": {
- "id": "2b3c4d5e-6f70-4819-ab2c-3d4e5f607182"
}
}
]
}
]
}, - "vendor": {
- "credit_card": [
- {
- "due_date": "2026-11-07",
- "card_last_digits": "1234",
- "authorization": "XYZ789",
- "installments": 2,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 8358.77,
- "sale_product": {
- "id": "2b3c4d5e-6f70-4819-ab2c-3d4e5f607182"
}
}, - {
- "amount": 2500,
- "sale_product": {
- "id": "8f7e6d5c-4b3a-4218-9f0e-1d2c3b4a5968"
}
}, - {
- "amount": 3160,
- "sale_product": {
- "id": "5c4b3a29-1e0d-4982-7c6b-5a4938271605"
}
}, - {
- "amount": 2500,
- "sale_product": {
- "id": "6d5c4b3a-2f1e-4093-8d7c-6b5a49382716"
}
}
]
}
], - "check": [
- {
- "due_date": "2026-11-07",
- "bank_code": "341",
- "check_number": 654321,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 134.14,
- "sale_product": {
- "id": "6f708192-a3b4-4c5d-ef60-718293041526"
}
}
]
}
], - "credit": [
- {
- "due_date": "2026-11-07",
- "document": "CRED-000123",
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 134.14,
- "sale_product": {
- "id": "6f708192-a3b4-4c5d-ef60-718293041526"
}
}
]
}
], - "others": [
- {
- "due_date": "2026-11-07",
- "details": "Fatura",
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 2500,
- "sale_product": {
- "id": "8192a3b4-c5d6-4e7f-0182-930415263748"
}
}
]
}
]
}
}, - "commissions": [
- {
- "description": "Plano: Padrão, cálculo: 10%",
- "amount": 700,
- "retained_amount": 0,
- "balance": 700,
- "person": {
- "id": "0a1b2c3d-4e5f-4061-8072-90a1b2c3d4e5"
}
}, - {
- "description": "Comissão Intermediário",
- "amount": 49.75,
- "retained_amount": 0,
- "balance": 49.75,
- "person": {
- "id": "1b2c3d4e-5f60-4172-8183-a1b2c3d4e5f6"
}
}, - {
- "description": null,
- "amount": -100,
- "retained_amount": 0,
- "balance": -100,
- "person": {
- "id": "2c3d4e5f-6071-4283-8294-b2c3d4e5f6a7"
}
}
], - "financial": {
- "observations": "Teste de observações financeiras",
- "vendor_bills": [
- {
- "id": "c8b7a695-4d3e-4f21-b0a9-8e7d6c5b4a39"
}
], - "standalone_bills": [
- {
- "id": "f1e2d3c4-b5a6-4978-8f6e-5d4c3b2a1e0f"
}
]
}
}⚠️ 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 required | string <uuid> Example: 212b54b8-27df-4859-80a9-79ad855bcd09 Identificador único da venda (formato UUID). |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
{- "id": "9f8e7d6c-5b4a-3210-9876-5432109876ab",
- "sale_number": 987,
- "sale_date": "2026-10-08",
- "status": "closed",
- "observations": "Venda finalizada.",
- "printed_receipt": true,
- "created_at": "2026-10-08T10:30:00",
- "totals": {
- "products": 19188.57,
- "fees": 598.84,
- "discount": 225,
- "revenue": 1500,
- "balance": 0,
- "final_amount": 19870.43
}, - "company": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "created_by": {
- "id": "b4c3d2e1-6f7a-4b9c-8d1e-2f3a4b5c6d7e"
}, - "operation": {
- "id": "8936058a-2906-4239-9a7f-e22ccc2c195e"
}, - "seller": {
- "id": "7c9e1a04-53b6-4f28-9d71-0e5a2c8b4f13"
}, - "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "intermediary": {
- "id": "d40a7f92-1e63-4b85-8c27-5a9f3e01b6d8"
}, - "requester": {
- "id": "b17c5e38-6a90-4d21-9f43-8e2b70c5a916"
}, - "approver": {
- "id": "95e2a7c1-4b38-4f60-8d19-27a6f3e0b5c4"
}, - "promoter": {
- "id": "6a3f9d27-8c51-4e04-b2f7-72e5c8a91b30"
}, - "travel": {
- "id": "7c1d9f30-5a2b-4e68-9d47-2f8b6c0a1e35"
}, - "custom_fields": [
- {
- "id": 12345,
- "value": "Reunião comercial"
}
], - "insurances": [
- {
- "id": "1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071",
- "document": "14296922",
- "begin_date": "2026-10-13",
- "end_date": "2026-10-28",
- "destination": "international",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Embarque confirmado.",
- "included_services": "Plano: Max BRL R$ 60.000,00 com cobertura de despesas médicas\nCódigo: 1234",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 50.07,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 25.04,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 10,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 25,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 10,
- "products": 625.95,
- "customer_amount": 650.95,
- "amount": 650.95
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "9921508090000",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 25,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 625.95,
- "customer_amount": 650.95,
- "total_amount": 650.95,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "cruises": [
- {
- "id": "2b3c4d5e-6f70-4819-ab2c-3d4e5f607182",
- "booking_number": "987568489",
- "departure_date": "2026-10-14",
- "arrival_date": "2026-10-28",
- "ship_name": "MXS Example Seaview",
- "cruise_destination": "Bahamas",
- "accommodation_kind": "Duplo Casal",
- "cabin_number": "1234",
- "cabin_kind": "Royal Suite",
- "cabin_category": "7A",
- "meal_plan": "All inclusive",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Cabine confirmada.",
- "included_services": "Pacote: All Inclusive\nCódigo: 1234",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 835.88,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 417.94,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 100,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 120,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 100,
- "products": 8358.77,
- "customer_amount": 8478.77,
- "amount": 8478.77
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 120,
- "tip": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 8358.77,
- "customer_amount": 8478.77,
- "total_amount": 8478.77,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "hotels": [
- {
- "id": "3c4d5e6f-7081-492a-bc3d-4e5f60718293",
- "booking_number": "1020506090",
- "check_in": "2026-10-31",
- "check_out": "2026-11-08",
- "destination": "international",
- "accommodation_kind": "Duplo Casal",
- "room_category": "Deluxe",
- "meal_plan": "All Inclusive",
- "nights": 8,
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Reserva garantida.",
- "included_services": "Epic Journey Hotel: Avenida Rebouças, 397, São Paulo, SP, Brasil\nQuarto com vista para cidade.",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 563.07,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 281.54,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 50,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 281.54,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 563.07,
- "discount": 50,
- "products": 5630.73,
- "customer_amount": 6475.34,
- "amount": 6475.34
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "emission_name": "Maria da Silva",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 281.54,
- "other_fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 563.07,
- "amount": 5630.73,
- "customer_amount": 6475.34,
- "total_amount": 6475.34,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "airline_tickets": [
- {
- "id": "4d5e6f70-8192-4a3b-cd4e-5f6071829304",
- "locator": "WABCJJ",
- "destination": "international",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Bilhete emitido.",
- "included_services": "3 bagagens despachadas sem custo\nAssento com reclinação total\nAcesso ao Lounge",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 136.07,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 68.04,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 20,
- "cc_rav_fee": 27.22,
- "cc_du_fee": 27.22,
- "totals": {
- "fees": 136.06,
- "rav_fee": 204.01,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 20,
- "products": 1360.67,
- "du_fee": 104.01,
- "du_fee_discount": 0,
- "customer_amount": 1804.75,
- "amount": 1804.75
}, - "supplier": {
- "id": "3d7b0c94-2a68-4f15-8e93-1c5a6d20b7f4"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "segments": [
- {
- "airline_code": "AA",
- "flight_number": "1234",
- "class": "A",
- "origin": "NAS",
- "departure_date": "2026-10-13T16:42:08",
- "destination": "JFK",
- "arrival_date": "2026-10-13T16:42:08"
}
], - "passengers": [
- {
- "ticket_number": "99526874895",
- "emission_name": "Maria da Silva",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "boarding_fee": 136.06,
- "other_fees": 0,
- "rav_fee": 204.01,
- "rav_fee_discount": 0,
- "du_fee": 104.01,
- "du_fee_discount": 0,
- "agency_fee": 0,
- "amount": 1360.67,
- "customer_amount": 1804.75,
- "total_amount": 1804.75,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "train_tickets": [
- {
- "id": "5e6f7081-92a3-4b4c-de5f-607182930415",
- "document": "RE9988777",
- "departure_date": "2026-10-13T16:42:08",
- "arrival_date": "2026-10-16T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Bilhete emitido.",
- "included_services": "Refeição inclusa\nWi-Fi gratuito\nVagão silencioso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 15,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 7.5,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 5,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 24.05,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 5,
- "products": 240.5,
- "customer_amount": 264.55,
- "amount": 264.55
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "RE9988777",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 24.05,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 240.5,
- "customer_amount": 264.55,
- "total_amount": 264.55,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "ground_transportations": [
- {
- "id": "6f708192-a3b4-4c5d-ef60-718293041526",
- "document": "GT123456",
- "departure_date": "2026-10-13T16:42:08",
- "arrival_date": "2026-10-16T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Bilhete emitido.",
- "included_services": "Refeição inclusa\nWi-Fi gratuito.",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 8.55,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 4.28,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 5,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 12.19,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 5,
- "products": 121.95,
- "customer_amount": 134.14,
- "amount": 134.14
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "0001234567",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 12.19,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 121.95,
- "customer_amount": 134.14,
- "total_amount": 134.14,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "car_rentals": [
- {
- "id": "708192a3-b4c5-4d6e-f071-829304152637",
- "document": "CR123456789",
- "pickup_date": "2026-10-13",
- "pickup_location": "Aeroporto de Congonhas",
- "dropoff_date": "2026-10-20",
- "dropoff_location": "Aeroporto de Congonhas",
- "destination": "national",
- "vehicle_category": "Econômico",
- "rental_days": 7,
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Retirada confirmada.",
- "included_services": "Quilometragem livre\nSeguro básico incluso\nTanque cheio na retirada",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 35,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 17.5,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 10,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 10,
- "products": 350,
- "customer_amount": 350,
- "amount": 350
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "other_fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 350,
- "customer_amount": 350,
- "total_amount": 350,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "travel_packages": [
- {
- "id": "8192a3b4-c5d6-4e7f-0182-930415263748",
- "document": "TP123456789",
- "begin_date": "2026-10-18",
- "end_date": "2026-10-25",
- "destination": "international",
- "package_name": "Pacote Europa Clássica",
- "transport": "scheduled_flight",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Pacote confirmado.",
- "included_services": "Hospedagem: Hotéis 4 estrelas\nRefeições: Café da manhã e jantar\nPasseios: City tour em 5 cidades\nSeguro viagem internacional",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 250,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 125,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 100,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 25,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 25,
- "products": 2500,
- "customer_amount": 2500,
- "amount": 2500
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "PCT2024050001",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "other_fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 2500,
- "customer_amount": 2500,
- "total_amount": 2500,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "others": [
- {
- "id": "8f7e6d5c-4b3a-4218-9f0e-1d2c3b4a5968",
- "product": {
- "id": "a3b2c1d0-9e8f-4756-b4a3-2c1d0e9f8a7b"
}, - "document": "OUT123456",
- "destination": "Salvador",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Passeio confirmado.",
- "included_services": "Guia local incluso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 12,
- "commission_percentage": 2,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 4,
- "intermediary_commission_percentage": 2,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 50,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 0,
- "cc_rav_fee": 0,
- "quantity": null,
- "unit_price": null,
- "unit_fee": null,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 2500,
- "customer_amount": 2500,
- "amount": 2500
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "OUT2024060012",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 2500,
- "customer_amount": 2500,
- "total_amount": 2500,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "excursions": [
- {
- "id": "d0e1f2a3-b4c5-4906-a1b2-3c4d5e6f7081",
- "document": "EXC123456",
- "departure_date": "2026-10-13T16:42:08",
- "arrival_date": "2026-10-13T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Passeio confirmado.",
- "included_services": "Guia local incluso\nTransporte incluso",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 10,
- "commission_percentage": 10,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 5,
- "intermediary_commission_percentage": 5,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 20,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 0,
- "cc_rav_fee": 0,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 350,
- "customer_amount": 350,
- "amount": 350
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}, - "passengers": [
- {
- "document": "EXC2024060034",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "amount": 350,
- "customer_amount": 350,
- "total_amount": 350,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "cvc_packages": [
- {
- "id": "5c4b3a29-1e0d-4982-7c6b-5a4938271605",
- "product": {
- "id": "c5d4e3f2-1a0b-4978-d6c5-4e3f2a1b0c9d"
}, - "package_name": "CVC Caribe 7 noites",
- "receipt_number": "89100000183488",
- "departure_date": "2026-10-23T16:42:08",
- "arrival_date": "2026-10-30T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "Pacote confirmado.",
- "included_services": "Hospedagem all inclusive\nTraslados inclusos",
- "currency": "BRL",
- "exchange_rate": 1,
- "commission_amount": 490,
- "commission_percentage": 12,
- "over_amount": 0,
- "over_percentage": 0,
- "over": 0,
- "intermediary_commission_amount": 0,
- "intermediary_commission_percentage": 0,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 0,
- "agency_card_rate": 0,
- "deductions": 0,
- "discount_amount": 0,
- "cc_rav_fee": 0,
- "quantity": 2,
- "unit_price": 1500,
- "unit_fee": 80,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 3160,
- "customer_amount": 3160,
- "amount": 3160
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "representative": {
- "id": "028ea1ef-3f8e-4c7f-93da-463794a5afda"
}
}
], - "operations": [
- {
- "id": "6d5c4b3a-2f1e-4093-8d7c-6b5a49382716",
- "product": {
- "id": "b4c3d2e1-0f9a-4867-c5b4-3d2e1f0a9b8c"
}, - "document": "OP-000123",
- "departure_date": "2026-10-15T16:42:08",
- "arrival_date": "2026-10-15T16:42:08",
- "status": "active",
- "issue_date": "2026-10-08",
- "canceled_at": null,
- "observations": "City tour confirmado.",
- "included_services": "Guia local incluso\nTransporte incluso",
- "currency": "BRL",
- "exchange_rate": 1,
- "intermediary_commission_amount": 0,
- "intermediary_commission_percentage": 0,
- "intermediary_over_amount": 0,
- "intermediary_over_percentage": 0,
- "intermediary_over": 0,
- "agency_service_fee": 0,
- "agency_card_rate": 0,
- "discount_amount": 0,
- "quantity": null,
- "unit_price": null,
- "unit_fee": null,
- "totals": {
- "fees": 0,
- "rav_fee": 0,
- "rav_fee_discount": 0,
- "agency_fee": 0,
- "discount": 0,
- "products": 2500,
- "customer_amount": 2500,
- "amount": 2500
}, - "supplier": {
- "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"
}, - "passengers": [
- {
- "document": "OP2024060056",
- "cost_center": "Corporativa EXT",
- "canceled_at": null,
- "fees": 0,
- "amount": 2500,
- "customer_amount": 2500,
- "total_amount": 2500,
- "person": {
- "id": "322ff2c2-43e0-4376-bea5-20f88b673b6d"
}
}
]
}
], - "payments": {
- "agency": {
- "bills": [
- {
- "id": "9f2c8b71-4d3e-4a56-b8c9-1e2f3a4b5c6d"
}, - {
- "id": "1a77b3c2-5e6f-4708-9a1b-2c3d4e5f6071"
}, - {
- "id": "4b5c6d7e-8f90-41a2-b3c4-d5e6f7081920"
}
], - "refunds": [
- {
- "id": "3b41c2d5-6e7f-4809-a1b2-c3d4e5f60718"
}
], - "credit": [
- {
- "due_date": "2026-11-07",
- "document": "CRED-000123",
- "amount": 6475.34,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "origin_sale": {
- "id": "3d4e5f60-7182-4394-83a5-c3d4e5f6a7b8"
}, - "products": [
- {
- "amount": 6475.34,
- "sale_product": {
- "id": "3c4d5e6f-7081-492a-bc3d-4e5f60718293"
}
}
]
}
], - "retained_by_intermediary": [
- {
- "due_date": "2026-11-07",
- "amount": 195,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 625.95,
- "sale_product": {
- "id": "1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071"
}
}
]
}
], - "legacy": [
- {
- "due_date": "2026-09-08",
- "amount": 300,
- "check": null,
- "card": {
- "brand": "mastercard",
- "last_digits": "5678",
- "authorization": "ABC123"
}, - "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "payment_method": {
- "id": "fc9f5c65-59d6-42bb-8dd1-a5c0e3e51ea9"
}, - "products": [
- {
- "amount": 8358.77,
- "sale_product": {
- "id": "2b3c4d5e-6f70-4819-ab2c-3d4e5f607182"
}
}
]
}
]
}, - "vendor": {
- "credit_card": [
- {
- "due_date": "2026-11-07",
- "card_last_digits": "1234",
- "authorization": "XYZ789",
- "installments": 2,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 8358.77,
- "sale_product": {
- "id": "2b3c4d5e-6f70-4819-ab2c-3d4e5f607182"
}
}, - {
- "amount": 2500,
- "sale_product": {
- "id": "8f7e6d5c-4b3a-4218-9f0e-1d2c3b4a5968"
}
}, - {
- "amount": 3160,
- "sale_product": {
- "id": "5c4b3a29-1e0d-4982-7c6b-5a4938271605"
}
}, - {
- "amount": 2500,
- "sale_product": {
- "id": "6d5c4b3a-2f1e-4093-8d7c-6b5a49382716"
}
}
]
}
], - "check": [
- {
- "due_date": "2026-11-07",
- "bank_code": "341",
- "check_number": 654321,
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 134.14,
- "sale_product": {
- "id": "6f708192-a3b4-4c5d-ef60-718293041526"
}
}
]
}
], - "credit": [
- {
- "due_date": "2026-11-07",
- "document": "CRED-000123",
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 134.14,
- "sale_product": {
- "id": "6f708192-a3b4-4c5d-ef60-718293041526"
}
}
]
}
], - "others": [
- {
- "due_date": "2026-11-07",
- "details": "Fatura",
- "payer": {
- "id": "2f8b6d51-9c04-4e37-a1b8-63d95e70c2a4"
}, - "products": [
- {
- "amount": 2500,
- "sale_product": {
- "id": "8192a3b4-c5d6-4e7f-0182-930415263748"
}
}
]
}
]
}
}, - "commissions": [
- {
- "description": "Plano: Padrão, cálculo: 10%",
- "amount": 700,
- "retained_amount": 0,
- "balance": 700,
- "person": {
- "id": "0a1b2c3d-4e5f-4061-8072-90a1b2c3d4e5"
}
}, - {
- "description": "Comissão Intermediário",
- "amount": 49.75,
- "retained_amount": 0,
- "balance": 49.75,
- "person": {
- "id": "1b2c3d4e-5f60-4172-8183-a1b2c3d4e5f6"
}
}, - {
- "description": null,
- "amount": -100,
- "retained_amount": 0,
- "balance": -100,
- "person": {
- "id": "2c3d4e5f-6071-4283-8294-b2c3d4e5f6a7"
}
}
], - "financial": {
- "observations": "Teste de observações financeiras",
- "vendor_bills": [
- {
- "id": "c8b7a695-4d3e-4f21-b0a9-8e7d6c5b4a39"
}
], - "standalone_bills": [
- {
- "id": "f1e2d3c4-b5a6-4978-8f6e-5d4c3b2a1e0f"
}
]
}
}⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.
Exclui a venda como o Monde exclui: ela não é apagada, passa a ter status igual a canceled. A venda excluída deixa de aparecer em Consultar vendas, a não ser que o parâmetro status peça as excluídas, e continua disponível na consulta por ID. A agência pode restaurá-la pelo Monde.
A situação muda antes da resposta. Logo depois, o Monde desfaz o que a venda gerou no financeiro: os pagamentos são removidos e as contas a receber deles são excluídas, o pagamento incluído numa fatura de cliente sai dela, os itens do fornecedor ainda não faturados são removidos e as comissões pagas pela conta de um pagamento são desvinculadas dela. O que falta pagar de cada produto volta a ser saldo, devido pelo pagante (pelo intermediário, na operadora). Essa parte termina alguns instantes depois da resposta.
A venda não é excluída, e a resposta é 409 com o motivo, quando:
Exige a permissão de excluir vendas na empresa da venda. Ela basta também para a venda com recibo impresso. Na conexão automática, a permissão de excluir as próprias vendas alcança só a venda que a própria integração criou; a venda de outra origem responde 404. Não exige Idempotency-Key: repetir a requisição depois de excluída responde 409.
| id required | string <uuid> Example: 212b54b8-27df-4859-80a9-79ad855bcd09 Identificador único da venda (formato UUID). |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
{- "errors": [
- "Credenciais de acesso não são válidas."
]
}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.
⚠️ 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 | Array of strings Items Enum: "insurance" "cruise" "hotel" "airline_ticket" "train_ticket" "ground_transportation" "excursion" "car_rental" "travel_package" "cvc_package" "operation" "others" Examples:
Filtra produtos por tipo. Para múltiplos tipos, separe os valores por vírgula (ex: insurance,cruise,hotel). |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo produtos de diferentes tipos.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "name": "Seguro Viagem",
- "kind": "insurance",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": "Cobertura completa para viagens internacionais"
}, - {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91",
- "name": "Cruzeiro",
- "kind": "cruise",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": null
}, - {
- "id": "c3b7e8eb-1199-5457-c170-923c3fe56c92",
- "name": "Diárias de Hospedagem",
- "kind": "hotel",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": "Hotel 5 estrelas em Copacabana"
}, - {
- "id": "979cc2d4-4e37-4d36-b6de-eb1e9e1080f0",
- "name": "Passagem Aérea",
- "kind": "airline_ticket",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": null
}, - {
- "id": "20febcb5-85ef-427d-9a4e-da407062432d",
- "name": "Operação Própria",
- "kind": "operation",
- "passengers": true,
- "system": false,
- "active": true,
- "nbs_code": null,
- "included_services": "Turismo de aventura"
}, - {
- "id": "3b857f74-8c82-4391-bc95-2245fc4ba341",
- "name": "Outros",
- "kind": "others",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": null
}, - {
- "id": "bdaaf1b2-ee48-4b20-810a-10ccc27875b0",
- "name": "Aluguel de Carro",
- "kind": "car_rental",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": "Locação de veículo econômico"
}, - {
- "id": "ae36c79c-37cd-4185-af57-448a75683ba1",
- "name": "Pacote Turístico",
- "kind": "travel_package",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": "Pacote completo de viagem"
}, - {
- "id": "49dd6ca0-9eca-4718-906e-c32805d8d677",
- "name": "Produto CVC",
- "kind": "cvc_package",
- "passengers": false,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": "Produto exclusivo CVC"
}, - {
- "id": "4f1c9a27-58aa-4d3e-9f0b-1c7d6e2b8a94",
- "name": "Excursão",
- "kind": "excursion",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": null,
- "included_services": "Passeio com guia acompanhante"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único do produto (formato UUID). |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta com um produto e seus fornecimentos, fornecedores e representantes.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "name": "Seguro Viagem",
- "included_services": "Cobertura completa para viagens internacionais",
- "kind": "insurance",
- "passengers": true,
- "system": true,
- "active": true,
- "nbs_code": "115022000",
- "supplies": [
- {
- "description": "Fornecimento padrão",
- "commission_type": "percentage",
- "commission_percentage": 10,
- "commission_amount": 0,
- "over_percentage": 0,
- "over_value": 100,
- "du_percentage": 0,
- "rav_percentage": 0,
- "restitutes_kandir_law": true,
- "supplier": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "representations": [
- {
- "commission_type": "percentage",
- "commission_percentage": 5,
- "commission_amount": 0,
- "over_percentage": 0,
- "over_value": 100,
- "du_percentage": 0,
- "rav_percentage": 0,
- "representative": {
- "id": "c3b7e8eb-1199-5457-c170-923c3fe56c92"
}
}
]
}
]
}⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo todas as cabines cadastradas.
{- "data": [
- {
- "name": "Externa"
}, - {
- "name": "Interna"
}, - {
- "name": "Suíte"
}, - {
- "name": "Varanda"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}Consulte os centros de custo cadastrados no sistema para utilizar em lançamentos financeiros.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo todos os centros de custo cadastrados.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Administrativo"
}, - {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91",
- "description": "Comercial"
}, - {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92",
- "description": "Marketing"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único do centro de custo |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de um centro de custo específico.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Administrativo"
}Consulte as moedas cadastradas no sistema para utilizar em produtos de venda e lançamentos financeiros.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo todas as moedas cadastradas.
{- "data": [
- {
- "code": "BRL",
- "description": "Real",
- "symbol": "R$",
- "active": true
}, - {
- "code": "USD",
- "description": "Dólar Americano",
- "symbol": "US$",
- "active": true
}, - {
- "code": "EUR",
- "description": "Euro",
- "symbol": "€",
- "active": false
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string Example: BRL Código da moeda no padrão ISO 4217 |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma moeda específica.
{- "code": "BRL",
- "description": "Real",
- "symbol": "R$",
- "active": true
}Consulte as categorias financeiras cadastradas no sistema, agrupadas por tipo (receita ou despesa) e grupo.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo categorias de despesa e receita.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Aluguel",
- "kind": "expense",
- "pass_through": false
}, - {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92",
- "description": "Comissões a Repassar",
- "kind": "expense",
- "pass_through": true
}, - {
- "id": "d4c8f9fc-22aa-4568-a281-a34d4bf67da3",
- "description": "Venda de Pacotes",
- "kind": "revenue",
- "pass_through": false
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da categoria |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma categoria de receita, com o grupo.
{- "id": "d4c8f9fc-22aa-4568-a281-a34d4bf67da3",
- "description": "Venda de Pacotes",
- "kind": "revenue",
- "pass_through": false,
- "group": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4",
- "name": "Receitas Operacionais"
}
}Consulte as cidades cadastradas no sistema, com estado, país e códigos oficiais (IBGE, SIAFI e SETEC).
⚠️ 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 | string Example: name=sao paulo Filtra por nome, sem diferenciar maiúsculas, acentos ou posição (busca por trecho). |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo cidades brasileiras e estrangeira.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "name": "Miami, FL",
- "ibge": null,
- "siafi": null,
- "setec": null
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "name": "Rio de Janeiro",
- "ibge": "3304557",
- "siafi": "6001",
- "setec": null
}, - {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91",
- "name": "São Paulo",
- "ibge": "3550308",
- "siafi": "7107",
- "setec": null
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da cidade |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma cidade brasileira, com o estado e o país.
{- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91",
- "name": "São Paulo",
- "ibge": "3550308",
- "siafi": "7107",
- "setec": null,
- "state": {
- "id": "f6e0bbfe-44cc-478a-c4a3-c56f6de89fc5",
- "acronym": "SP",
- "name": "São Paulo"
}, - "country": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92",
- "name": "Brasil",
- "code": "BR",
- "code_3": "BRA",
- "sisbacen": 1058
}
}⚠️ 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).
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo vendedores ativos e inativos.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "active": true,
- "created_at": "2024-03-15T10:30:00"
}, - {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92",
- "active": false,
- "created_at": "2023-11-02T16:45:00"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único do vendedor |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de um vendedor específico.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "active": true,
- "created_at": "2024-03-15T10:30:00",
- "person": {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a"
}, - "created_by": {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09"
}
}Consulte as formas de pagamento cadastradas no sistema para utilizar em lançamentos financeiros.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo formas de pagamento do sistema e cadastradas pelo usuário.
{- "data": [
- {
- "id": "348e3bd9-f7ee-4a49-9be6-9a94b8b0a2f3",
- "name": "Cartão de Crédito",
- "system": true
}, - {
- "id": "253484f0-3597-4e91-96a1-2ea87f4b8ab0",
- "name": "Cheque",
- "system": true
}, - {
- "id": "fc9f5c65-59d6-42bb-8dd1-a5c0e3e51ea9",
- "name": "Dinheiro",
- "system": true
}, - {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "name": "Transferência Internacional",
- "system": false
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da forma de pagamento |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma forma de pagamento específica.
{- "id": "fc9f5c65-59d6-42bb-8dd1-a5c0e3e51ea9",
- "name": "Dinheiro",
- "system": true
}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.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo uma conta corrente e um cartão de crédito.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Banco do Brasil - Matriz",
- "kind": "checking_account",
- "active": true,
- "currency": "BRL",
- "initial_balance": 1500,
- "bank_operation": null,
- "agency": "1412",
- "agency_digit": "5",
- "number": "04640",
- "digit": "2",
- "pix_key": "financeiro@agencia.com.br",
- "bill_expiration": null,
- "bill_closing": null
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "description": "Cartão Corporativo",
- "kind": "card_account",
- "active": true,
- "currency": "BRL",
- "initial_balance": 0,
- "bank_operation": null,
- "agency": null,
- "agency_digit": null,
- "number": null,
- "digit": null,
- "pix_key": null,
- "bill_expiration": 10,
- "bill_closing": 1
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da conta |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma conta específica.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Banco do Brasil - Matriz",
- "kind": "checking_account",
- "active": true,
- "currency": "BRL",
- "initial_balance": 1500,
- "bank_operation": null,
- "agency": "1412",
- "agency_digit": "5",
- "number": "04640",
- "digit": "2",
- "pix_key": "financeiro@agencia.com.br",
- "bill_expiration": null,
- "bill_closing": null,
- "bank": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92",
- "number": "001",
- "name": "Banco do Brasil"
}, - "owner": null,
- "card_operator": null,
- "companies": [
- {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}
]
}Consulte as regras de emissão de nota fiscal cadastradas no sistema, com os campos da venda que compõem cada emissão.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo uma regra geral e uma regra restrita a produto e fornecedor.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Regra padrão de pacotes",
- "representative_scope": "any",
- "created_at": "2024-03-15T10:30:00",
- "payer_rule": {
- "recipient": null,
- "revenues": [
- "du_fee",
- "rav_fee",
- "agency_service_fee"
], - "discounts": [
- "discount"
]
}, - "supplier_rule": {
- "recipient": null,
- "revenues": [ ],
- "discounts": [ ]
}, - "representative_rule": {
- "recipient": null,
- "revenues": [ ],
- "discounts": [ ]
}
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "description": "Seguro viagem - fornecedor emite",
- "representative_scope": "none",
- "created_at": "2023-11-02T16:45:00",
- "payer_rule": {
- "recipient": null,
- "revenues": [ ],
- "discounts": [ ]
}, - "supplier_rule": {
- "recipient": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "revenues": [
- "commission_amount",
- "over_amount"
], - "discounts": [ ]
}, - "representative_rule": {
- "recipient": null,
- "revenues": [ ],
- "discounts": [ ]
}
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da regra da nota fiscal |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma regra de nota fiscal específica.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Regra padrão de pacotes",
- "representative_scope": "any",
- "created_at": "2024-03-15T10:30:00",
- "product": null,
- "supplier": null,
- "representative": null,
- "payer": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "created_by": {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09"
}, - "payer_rule": {
- "recipient": null,
- "revenues": [
- "du_fee",
- "rav_fee",
- "agency_service_fee"
], - "discounts": [
- "discount"
]
}, - "supplier_rule": {
- "recipient": null,
- "revenues": [ ],
- "discounts": [ ]
}, - "representative_rule": {
- "recipient": null,
- "revenues": [ ],
- "discounts": [ ]
}
}Consulte, crie, altere e exclua tarefas, com responsável, pessoa vinculada, categoria e vencimento, e comente no histórico delas.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo tarefas pendente e concluída.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "number": 1042,
- "title": "Enviar voucher para o cliente",
- "description": "Confirmar os dados do embarque antes do envio.",
- "due": "2024-04-01T09:00:00",
- "completed_at": null,
- "visualized": false,
- "deleted": false,
- "created_at": "2024-03-15T10:30:00"
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "number": 1043,
- "title": "Cobrar segunda parcela",
- "description": null,
- "due": "2024-04-05T14:00:00",
- "completed_at": "2024-04-05T11:12:00",
- "visualized": true,
- "deleted": false,
- "created_at": "2024-03-15T10:30:00"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ Esse endpoint já pode ser utilizado, mas, por estar em fase de testes (beta), ainda pode sofrer alterações.
Cria uma tarefa com responsável, categoria e vencimento. A empresa da tarefa é opcional, mas informá-la não é: envie company_identifier com o CNPJ da empresa, ou como nulo para a tarefa valer em todas as empresas. Omitir o campo é recusado, porque a empresa não é deduzida. Aceita, em history, os comentários com que a tarefa nasce. O responsável é avisado por e-mail, e a tarefa nasce pendente.
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
| Idempotency-Key required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][... Example: 550e8400-e29b-41d4-a716-446655440000 Chave de idempotência (UUID v4) gerada pelo cliente. Veja a seção de Idempotência para mais detalhes. |
| company_identifier required | string or null = 14 characters ^[0-9]{14}$ CNPJ da empresa em que a tarefa será criada, só os dígitos. Nulo cria a tarefa sem empresa, valendo para todas as empresas; o campo é obrigatório e omiti-lo é recusado. A empresa em que a credencial não tem permissão nenhuma é recusada como CNPJ não encontrado |
| title required | string <= 100 characters Título da tarefa |
| description | string Descrição da tarefa |
| due required | string <date-time> Data e hora de vencimento |
| category_id required | integer Identificador da categoria da tarefa, obtido em Consultar categorias de tarefa. |
| assignee_id required | string <uuid> Identificador da pessoa responsável pela tarefa, obtido em Consultar pessoas. A pessoa precisa ser um usuário ativo do Monde. |
| person_id | string <uuid> Identificador da pessoa vinculada à tarefa, obtido em Consultar pessoas. |
Array of objects (task_historic_create) Comentários com que a tarefa nasce | |
Array of objects (custom_field) Campos personalizados a preencher na tarefa, definidos pela agência |
Exemplo de criação de uma tarefa com pessoa vinculada, comentário inicial e campo personalizado.
{- "company_identifier": "46598887000162",
- "title": "Enviar voucher para o cliente",
- "description": "Confirmar os dados do embarque antes do envio.",
- "due": "2024-04-01T09:00:00",
- "category_id": 11,
- "assignee_id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91",
- "person_id": "c3b7e8eb-1199-4457-9170-923c3fe56c92",
- "history": [
- {
- "text": "Tarefa aberta pelo site."
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Alta"
}
]
}Exemplo de consulta de uma tarefa com o histórico e os campos personalizados.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "number": 1042,
- "title": "Enviar voucher para o cliente",
- "description": "Confirmar os dados do embarque antes do envio.",
- "due": "2024-04-01T09:00:00",
- "completed_at": null,
- "visualized": false,
- "deleted": false,
- "created_at": "2024-03-15T10:30:00",
- "category": {
- "id": 11
}, - "assignee": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "person": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "company": {
- "id": "d4c8f9fc-22aa-4568-a281-a34d4bf67da3"
}, - "created_by": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "history": [
- {
- "created_at": "2024-03-20T14:05:00",
- "text": "Cliente confirmou os dados do embarque.",
- "historic": null,
- "person": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - {
- "created_at": "2024-03-15T10:30:00",
- "text": null,
- "historic": "Tarefa cadastrada",
- "person": null
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Alta"
}
], - "attachments": [
- {
- "id": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
- "description": "voucher.pdf",
- "extension": "pdf",
- "content_type": "application/pdf",
}
]
}⚠️ 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, os campos personalizados e os anexos.
| id required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da tarefa (formato UUID). |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de consulta de uma tarefa com o histórico e os campos personalizados.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "number": 1042,
- "title": "Enviar voucher para o cliente",
- "description": "Confirmar os dados do embarque antes do envio.",
- "due": "2024-04-01T09:00:00",
- "completed_at": null,
- "visualized": false,
- "deleted": false,
- "created_at": "2024-03-15T10:30:00",
- "category": {
- "id": 11
}, - "assignee": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "person": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "company": {
- "id": "d4c8f9fc-22aa-4568-a281-a34d4bf67da3"
}, - "created_by": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "history": [
- {
- "created_at": "2024-03-20T14:05:00",
- "text": "Cliente confirmou os dados do embarque.",
- "historic": null,
- "person": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - {
- "created_at": "2024-03-15T10:30:00",
- "text": null,
- "historic": "Tarefa cadastrada",
- "person": null
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Alta"
}
], - "attachments": [
- {
- "id": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
- "description": "voucher.pdf",
- "extension": "pdf",
- "content_type": "application/pdf",
}
]
}⚠️ 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 é a exceção à regra acima: omitido, mantém a empresa da tarefa; com um CNPJ, leva a tarefa para aquela empresa e exige a permissão de criar/editar tarefas também nela; enviado como nulo, deixa a tarefa sem empresa, valendo para todas. 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da tarefa (formato UUID). |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
| Idempotency-Key required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][... Example: 550e8400-e29b-41d4-a716-446655440000 Chave de idempotência (UUID v4) gerada pelo cliente. Veja a seção de Idempotência para mais detalhes. |
| company_identifier | string or null = 14 characters ^[0-9]{14}$ CNPJ da empresa para onde a tarefa vai, só os dígitos. Nulo tira a tarefa da empresa, deixando-a válida para todas; omitido, mantém a empresa atual. A empresa em que a credencial não tem permissão nenhuma é recusada como CNPJ não encontrado |
| title | string <= 100 characters Título da tarefa |
| description | string Descrição da tarefa |
| due | string <date-time> Data e hora de vencimento |
| category_id | integer Identificador da categoria da tarefa, obtido em Consultar categorias de tarefa. |
| assignee_id | string <uuid> Identificador da pessoa responsável pela tarefa, obtido em Consultar pessoas. A pessoa precisa ser um usuário ativo do Monde. |
| person_id | string <uuid> Identificador da pessoa vinculada à tarefa, obtido em Consultar pessoas. |
| completed | boolean
|
Array of objects (custom_field) Campos personalizados da tarefa, definidos pela agência. Não substitui: cada campo enviado é gravado por cima do valor atual e os que não vierem permanecem como estão, então a lista vazia não muda nada e não é possível esvaziar um campo por esta operação. Envie cada campo por |
Exemplo de alteração do título, do vencimento, do responsável e de um campo personalizado de uma tarefa já cadastrada.
{- "title": "Enviar voucher atualizado para o cliente",
- "due": "2024-04-02T09:00:00",
- "assignee_id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91",
- "custom_fields": [
- {
- "id": 123,
- "value": "Urgente"
}
]
}Exemplo de consulta de uma tarefa com o histórico e os campos personalizados.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "number": 1042,
- "title": "Enviar voucher para o cliente",
- "description": "Confirmar os dados do embarque antes do envio.",
- "due": "2024-04-01T09:00:00",
- "completed_at": null,
- "visualized": false,
- "deleted": false,
- "created_at": "2024-03-15T10:30:00",
- "category": {
- "id": 11
}, - "assignee": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "person": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "company": {
- "id": "d4c8f9fc-22aa-4568-a281-a34d4bf67da3"
}, - "created_by": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "history": [
- {
- "created_at": "2024-03-20T14:05:00",
- "text": "Cliente confirmou os dados do embarque.",
- "historic": null,
- "person": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - {
- "created_at": "2024-03-15T10:30:00",
- "text": null,
- "historic": "Tarefa cadastrada",
- "person": null
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Alta"
}
], - "attachments": [
- {
- "id": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
- "description": "voucher.pdf",
- "extension": "pdf",
- "content_type": "application/pdf",
}
]
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da tarefa (formato UUID). |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
{- "errors": [
- "Credenciais de acesso não são válidas."
]
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da tarefa (formato UUID). |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
| Idempotency-Key required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][... Example: 550e8400-e29b-41d4-a716-446655440000 Chave de idempotência (UUID v4) gerada pelo cliente. Veja a seção de Idempotência para mais detalhes. |
| text required | string Texto do comentário |
Exemplo de comentário acrescentado ao histórico de uma tarefa existente.
{- "text": "Cliente confirmou os dados do embarque."
}Exemplo de consulta de uma tarefa com o histórico e os campos personalizados.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "number": 1042,
- "title": "Enviar voucher para o cliente",
- "description": "Confirmar os dados do embarque antes do envio.",
- "due": "2024-04-01T09:00:00",
- "completed_at": null,
- "visualized": false,
- "deleted": false,
- "created_at": "2024-03-15T10:30:00",
- "category": {
- "id": 11
}, - "assignee": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "person": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "company": {
- "id": "d4c8f9fc-22aa-4568-a281-a34d4bf67da3"
}, - "created_by": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "history": [
- {
- "created_at": "2024-03-20T14:05:00",
- "text": "Cliente confirmou os dados do embarque.",
- "historic": null,
- "person": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - {
- "created_at": "2024-03-15T10:30:00",
- "text": null,
- "historic": "Tarefa cadastrada",
- "person": null
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Alta"
}
], - "attachments": [
- {
- "id": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
- "description": "voucher.pdf",
- "extension": "pdf",
- "content_type": "application/pdf",
}
]
}⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo categorias de tarefas.
{- "data": [
- {
- "id": 12,
- "name": "Cobrança"
}, - {
- "id": 42,
- "name": "Emissão"
}, - {
- "id": 7,
- "name": "Reserva"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | integer Example: 42 Identificador único da categoria de tarefa. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta com uma categoria de tarefa específica.
{- "id": 42,
- "name": "Emissão"
}Consulte as viagens cadastradas no sistema, com cliente, vendedor, situação e o período calculado a partir das vendas vinculadas.
⚠️ 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 | string Enum: "start_date" "end_date" Example: date_field=start_date 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 | string <date> Example: date_from=2024-01-01 Filtrar viagens cujo campo escolhido em date_field seja igual ou posterior a esta data, no formato ISO 8601 (AAAA-MM-DD). |
| date_to | string <date> Example: date_to=2024-12-31 Filtrar viagens cujo campo escolhido em date_field seja igual ou anterior a esta data, no formato ISO 8601 (AAAA-MM-DD). |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo viagens a iniciar e finalizada.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "number": "000042",
- "description": "Lua de mel - Cancún",
- "situation": "upcoming",
- "start_date": "2024-05-10",
- "end_date": "2024-05-24",
- "observations": "Cliente prefere assentos na janela.",
- "created_at": "2024-03-15T10:30:00"
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "number": "000041",
- "description": "Congresso - São Paulo",
- "situation": "finished",
- "start_date": "2024-02-05",
- "end_date": "2024-02-09",
- "observations": null,
- "created_at": "2024-01-10T09:00:00"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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, os anexos e as referências às vendas e aos passageiros vinculados. Os valores por passageiro pertencem a cada venda, obtidos pelo endpoint da venda.
| id required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da viagem a ser obtida |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de viagem com referências às vendas e aos passageiros vinculados.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "number": "000042",
- "description": "Lua de mel - Cancún",
- "situation": "upcoming",
- "start_date": "2024-05-10",
- "end_date": "2024-05-24",
- "observations": "Cliente prefere assentos na janela.",
- "created_at": "2024-03-15T10:30:00",
- "customer": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "seller": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "company": {
- "id": "d4c8f9fc-22aa-4568-a281-a34d4bf67da3"
}, - "created_by": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "sales": [
- {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09"
}, - {
- "id": "3f2a1b0c-9d8e-4f6a-8b7c-6d5e4f3a2b1c"
}
], - "passengers": [
- {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - {
- "id": "a7c9b1d3-4e5f-4a6b-8c9d-0e1f2a3b4c5d"
}
], - "attachments": [
- {
- "id": "1c2d3e4f-5a6b-4c7d-9e8f-0a1b2c3d4e5f",
- "description": "roteiro.pdf",
- "extension": "pdf",
- "content_type": "application/pdf",
}
]
}Consulte os orçamentos cadastrados no sistema, com validade, situação e o link público de visualização.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo orçamentos ativo e desativado.
{- "data": [
- {
- "id": 42,
- "title": "Cancún",
- "subtitle": "Lua de mel - 14 noites",
- "details": "Pacote com aéreo, hospedagem all inclusive e traslados.",
- "valid_until": "2024-05-31",
- "active": true,
- "internal_observations": "Cliente pediu retorno até sexta.",
- "created_at": "2024-03-15T10:30:00"
}, - {
- "id": 41,
- "title": "Buenos Aires",
- "subtitle": "Feriado prolongado",
- "details": "Aéreo + hotel 4 estrelas no centro.",
- "valid_until": "2024-02-28",
- "active": false,
- "internal_observations": null,
- "created_at": "2024-01-10T09:00:00"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | integer Example: 42 Identificador único do orçamento |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de um orçamento específico.
{- "id": 42,
- "title": "Cancún",
- "subtitle": "Lua de mel - 14 noites",
- "details": "Pacote com aéreo, hospedagem all inclusive e traslados.",
- "valid_until": "2024-05-31",
- "active": true,
- "internal_observations": "Cliente pediu retorno até sexta.",
- "created_at": "2024-03-15T10:30:00",
- "person": {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09"
}, - "company": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}
}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.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo regras de fornecedor e de cliente.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Faturamento semanal aéreo",
- "person_kind": "supplier",
- "destination": "national",
- "movement": "to_pay",
- "cost_center": null,
- "closing": {
- "period_kind": "weekly",
- "week_start": "monday",
- "custom_period": null,
- "custom_period_due_date": null,
- "date_to_use": "after_checkin"
}, - "due_date": {
- "days_to_skip": 5,
- "on_weekend": "stay"
}
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "description": "Cliente corporativo mensal",
- "person_kind": "customer",
- "destination": "every",
- "movement": "every_movement",
- "cost_center": "Comercial",
- "closing": {
- "period_kind": "monthly",
- "week_start": null,
- "custom_period": null,
- "custom_period_due_date": null,
- "date_to_use": "after_sale_date"
}, - "due_date": {
- "days_to_skip": 10,
- "on_weekend": "next"
}
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da regra de faturamento |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma regra de faturamento específica.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "Faturamento semanal aéreo",
- "person_kind": "supplier",
- "destination": "national",
- "movement": "to_pay",
- "cost_center": null,
- "closing": {
- "period_kind": "weekly",
- "week_start": "monday",
- "custom_period": null,
- "custom_period_due_date": null,
- "date_to_use": "after_checkin"
}, - "due_date": {
- "days_to_skip": 5,
- "on_weekend": "stay"
}, - "person": null,
- "product": null,
- "supplier": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "requester": null
}Consulte as integrações com fornecedores cadastradas no sistema. As credenciais das integrações nunca são retornadas.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo integrações de representante e buscador.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "BRT Consolidadora",
- "active": true,
- "vendor_name": "BRT"
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "description": "Buscador de tarifas",
- "active": false,
- "vendor_name": null
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único da integração |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de uma integração específica.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "description": "BRT Consolidadora",
- "active": true,
- "vendor_name": "BRT",
- "person": null,
- "company": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}
}Consulte as pessoas cadastradas no sistema, com dados de contato, documentos e informações adicionais.
⚠️ 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 | string Example: name=Maria da Silva Filtra por nome, sem diferenciar maiúsculas, acentos ou posição (busca por trecho). |
| cpf_cnpj | string Example: cpf_cnpj=38107867807 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 | string Example: passport_number=FG225776 Filtra por número do passaporte, sem diferenciar maiúsculas ou acentos (busca por trecho). |
| phone | string Example: phone=11934567890 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 | string Enum: "individual" "company" Example: kind=individual Filtra pelo tipo da pessoa: |
| code | integer Example: code=1024 Filtra pelo código sequencial da pessoa (valor exato). |
string Example: email=contato@exemplo.com Filtra por e-mail, sem diferenciar maiúsculas ou acentos (busca por trecho). | |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta da consulta contendo pessoa física e pessoa jurídica.
{- "data": [
- {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "code": 1042,
- "person_kind": "individual",
- "name": "Carlos Souza",
- "legal_name": null,
- "cpf_cnpj": "12345678909",
- "gender": "male",
- "birthdate": "1985-07-22",
- "rg_ie": "203456789",
- "city_inscription": null,
- "tax_identification_number": null,
- "passport_number": "BR123456",
- "passport_expiration_date": "2028-10-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "carlos@exemplo.com.br",
- "phone_number": "4133334444",
- "mobile_number": "41999998888",
- "business_phone": "4130302020",
- "website": null,
- "cvc_code": null,
- "observations": "Cliente preferencial.",
- "charge_billet_fee": false,
- "created_at": "2021-11-05T10:30:00",
- "address": {
- "postal_code": "80010000",
- "street": "Rua das Flores",
- "street_number": "100",
- "neighborhood": "Centro",
- "additional_info": "Apto 12",
- "city": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - "additional_data": {
- "marital_status": "married",
- "rg_emitter": "SSP/PR",
- "rg_issue_date": "2008-03-15",
- "birth_certificate": null,
- "mother_name": "Ana Souza"
}, - "last_contacts": {
- "first_sale_date": "2022-01-10",
- "last_sale_date": "2024-03-01",
- "last_departure_date": "2024-03-15",
- "last_return_date": "2024-03-22",
- "last_task_update_at": "2024-03-18T15:12:00"
}, - "tax_withholding": null,
- "airline": null
}, - {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6",
- "code": 87,
- "person_kind": "company",
- "name": "Operadora de Turismo Ltda",
- "legal_name": "Operadora de Turismo S.A.",
- "cpf_cnpj": "12345678000199",
- "gender": null,
- "birthdate": null,
- "rg_ie": "9012345678",
- "city_inscription": "1234567",
- "tax_identification_number": null,
- "passport_number": null,
- "passport_expiration_date": null,
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "contato@operadora.com.br",
- "phone_number": "4133334444",
- "mobile_number": null,
- "business_phone": null,
- "cvc_code": null,
- "observations": null,
- "charge_billet_fee": true,
- "created_at": "2019-04-18T08:15:00",
- "address": {
- "postal_code": "80010000",
- "street": "Rua das Flores",
- "street_number": "100",
- "neighborhood": "Centro",
- "additional_info": null,
- "city": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - "additional_data": null,
- "last_contacts": {
- "first_sale_date": null,
- "last_sale_date": null,
- "last_departure_date": null,
- "last_return_date": null,
- "last_task_update_at": null
}, - "tax_withholding": {
- "iss": true,
- "ir": false,
- "pis_cofins_csll": false
}, - "airline": null
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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.
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
| Idempotency-Key required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][... Example: 550e8400-e29b-41d4-a716-446655440000 Chave de idempotência (UUID v4) gerada pelo cliente. Veja a seção de Idempotência para mais detalhes. |
| person_kind required | string Enum: "individual" "company" Define se é uma pessoa física (individual) ou jurídica (company). |
| external_id | string <= 50 characters Identificador único utilizado para identificar o registro no Monde. Você deve fornecer essa informação e utilizá-la em futuras referências ao mesmo registro. Permitido qualquer string única, como um documento ou UUID. |
| name required | string <= 100 characters Nome ou nome fantasia, de acordo com o tipo da pessoa. |
| legal_name | string or null <= 100 characters Razão social. |
| gender | string or null Enum: "female" "male" null Gênero |
| birthdate | string or null <date> Data de nascimento no formato ISO 8601 (AAAA-MM-DD). |
| cpf_cnpj | string [ 11 .. 14 ] characters CPF ou CNPJ, de acordo com o tipo da pessoa, sem pontos, barras, traços ou espaços. |
| rg_ie | string or null <= 20 characters RG ou Inscrição Estadual, de acordo com o tipo da pessoa, sem pontos, traços ou espaços. |
| passport_number | string or null <= 20 characters Número do passaporte, sem pontos, traços ou espaços. |
| passport_expiration_date | string or null <date> Data de expiração do passaporte no formato ISO 8601 (AAAA-MM-DD). |
| foreigner | boolean Default: false Indica se a pessoa ou empresa é estrangeira. Use |
| foreign_identity_document | string or null <= 30 characters Documento de identificação do estrangeiro, emitido em seu país de origem. Sem pontos, traços ou espaços. |
| business_phone | string or null <= 20 characters Telefone comercial |
object or null (person_birthplace) Naturalidade: cidade em que a pessoa nasceu. Informe o código IBGE ou, na falta dele, o nome da cidade com estado e país. Sem o código IBGE, a cidade que ainda não estiver cadastrada é criada. | |
object or null (person_additional_data) Dados adicionais da pessoa física. Ausente (null) para pessoa jurídica. | |
| website | string or null <= 50 characters Website (pessoa jurídica) |
| tax_identification_number | string or null <= 20 characters Identificação fiscal (pessoa jurídica estrangeira) |
object or null (person_tax_withholding) Retenções de imposto da pessoa jurídica. Ausente (null) para pessoa física. | |
object or null (person_airline) Dados de companhia aérea da pessoa jurídica (fornecedores). Ausente (null) para pessoa física. | |
string or null <= 200 characters Endereço de e-mail. | |
| phone_number | string or null <= 20 characters Número de telefone, sem traço ou espaços. Para números internacionais, utilize + e o código do país. |
| mobile_number | string or null <= 20 characters Número de telefone celular, sem traço ou espaços. Para números internacionais, utilize + e o código do país. |
object or null Endereço. | |
| city_inscription | string or null <= 15 characters Inscrição municipal |
| observations | string or null Observações da pessoa |
| charge_billet_fee | boolean Default: false Indica se a taxa de boleto é cobrada da pessoa |
object (entity_reference) Vendedor responsável pela pessoa | |
object (entity_reference) Promotor da pessoa (planos operadora) | |
Array of objects (entity_reference) Marcadores atribuídos à pessoa. | |
Array of objects (person_contact) Pessoas ligadas a este cadastro como contato. Cada pessoa informada precisa já estar cadastrada e não pode se repetir na lista. | |
Array of objects (person_custom_field) Campos personalizados de pessoas, definidos pela agência. Envie cada campo por |
Exemplo de cadastro de pessoa física com endereço, naturalidade, documentos e filiação.
{- "person_kind": "individual",
- "external_id": "CRM-4471",
- "name": "Maria da Silva",
- "cpf_cnpj": "38107867807",
- "rg_ie": "461196037",
- "gender": "female",
- "birthdate": "1990-02-12",
- "passport_number": "FG225776",
- "passport_expiration_date": "2035-12-01",
- "foreigner": false,
- "email": "maria@exemplo.com",
- "phone_number": "1134567890",
- "mobile_number": "11934567890",
- "business_phone": "1134567891",
- "city_inscription": "123456789",
- "observations": "Cliente preferencial.",
- "charge_billet_fee": false,
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5000",
- "neighborhood": "Planalto Paulista",
- "additional_info": "Casa 2",
- "city_ibge": "3550308"
}, - "birthplace": {
- "city_ibge": "3550308"
}, - "additional_data": {
- "marital_status": "married",
- "rg_emitter": "SSP",
- "rg_issue_date": "2010-03-01",
- "birth_certificate": "093456 01 55 2010 1 00123 456 7890123-45",
- "mother_name": "Joana da Silva"
}, - "seller": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "labels": [
- {
- "id": "2d0b3c4e-5f60-4172-9384-0b1c2d3e4f50"
}
], - "contacts": [
- {
- "role": "Financeiro",
- "person": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Indicação"
}
]
}Exemplo da consulta completa de uma pessoa física, com os blocos agrupados e as entidades fracas.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "code": 1042,
- "person_kind": "individual",
- "name": "Carlos Souza",
- "legal_name": null,
- "cpf_cnpj": "12345678909",
- "gender": "male",
- "birthdate": "1985-07-22",
- "rg_ie": "203456789",
- "city_inscription": null,
- "tax_identification_number": null,
- "passport_number": "BR123456",
- "passport_expiration_date": "2028-10-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "carlos@exemplo.com.br",
- "phone_number": "4133334444",
- "mobile_number": "41999998888",
- "business_phone": "4130302020",
- "website": null,
- "cvc_code": null,
- "observations": "Cliente preferencial.",
- "charge_billet_fee": false,
- "created_at": "2021-11-05T10:30:00",
- "address": {
- "postal_code": "80010000",
- "street": "Rua das Flores",
- "street_number": "100",
- "neighborhood": "Centro",
- "additional_info": "Apto 12",
- "city": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - "additional_data": {
- "marital_status": "married",
- "rg_emitter": "SSP/PR",
- "rg_issue_date": "2008-03-15",
- "birth_certificate": null,
- "mother_name": "Ana Souza"
}, - "last_contacts": {
- "first_sale_date": "2022-01-10",
- "last_sale_date": "2024-03-01",
- "last_departure_date": "2024-03-15",
- "last_return_date": "2024-03-22",
- "last_task_update_at": "2024-03-18T15:12:00"
}, - "tax_withholding": null,
- "airline": null,
- "birthplace": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "seller": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "promoter": null,
- "created_by": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "contacts": [
- {
- "role": "Financeiro",
- "person": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}
}
], - "labels": [
- {
- "id": "2d0b3c4e-5f60-4172-9384-0b1c2d3e4f50"
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Indicação"
}
], - "attachments": [
- {
- "id": "3e1c4d5f-6071-4283-a495-1c2d3e4f5061",
- "description": "RG digitalizado",
- "extension": "pdf",
- "content_type": "application/pdf",
}
], - "credit_cards": [
- {
- "name": "Cartão Corporativo",
- "last_digits": "1111",
- "expiration_date": "2030-05-01",
- "issuer": "Visa",
- "ticket_card": null
}
], - "kandir_law": null
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único (UUID) da pessoa. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo da consulta completa de uma pessoa física, com os blocos agrupados e as entidades fracas.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "code": 1042,
- "person_kind": "individual",
- "name": "Carlos Souza",
- "legal_name": null,
- "cpf_cnpj": "12345678909",
- "gender": "male",
- "birthdate": "1985-07-22",
- "rg_ie": "203456789",
- "city_inscription": null,
- "tax_identification_number": null,
- "passport_number": "BR123456",
- "passport_expiration_date": "2028-10-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "carlos@exemplo.com.br",
- "phone_number": "4133334444",
- "mobile_number": "41999998888",
- "business_phone": "4130302020",
- "website": null,
- "cvc_code": null,
- "observations": "Cliente preferencial.",
- "charge_billet_fee": false,
- "created_at": "2021-11-05T10:30:00",
- "address": {
- "postal_code": "80010000",
- "street": "Rua das Flores",
- "street_number": "100",
- "neighborhood": "Centro",
- "additional_info": "Apto 12",
- "city": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - "additional_data": {
- "marital_status": "married",
- "rg_emitter": "SSP/PR",
- "rg_issue_date": "2008-03-15",
- "birth_certificate": null,
- "mother_name": "Ana Souza"
}, - "last_contacts": {
- "first_sale_date": "2022-01-10",
- "last_sale_date": "2024-03-01",
- "last_departure_date": "2024-03-15",
- "last_return_date": "2024-03-22",
- "last_task_update_at": "2024-03-18T15:12:00"
}, - "tax_withholding": null,
- "airline": null,
- "birthplace": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "seller": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "promoter": null,
- "created_by": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "contacts": [
- {
- "role": "Financeiro",
- "person": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}
}
], - "labels": [
- {
- "id": "2d0b3c4e-5f60-4172-9384-0b1c2d3e4f50"
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Indicação"
}
], - "attachments": [
- {
- "id": "3e1c4d5f-6071-4283-a495-1c2d3e4f5061",
- "description": "RG digitalizado",
- "extension": "pdf",
- "content_type": "application/pdf",
}
], - "credit_cards": [
- {
- "name": "Cartão Corporativo",
- "last_digits": "1111",
- "expiration_date": "2030-05-01",
- "issuer": "Visa",
- "ticket_card": null
}
], - "kandir_law": null
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único (UUID) da pessoa. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
| Idempotency-Key required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][... Example: 550e8400-e29b-41d4-a716-446655440000 Chave de idempotência (UUID v4) gerada pelo cliente. Veja a seção de Idempotência para mais detalhes. |
| person_kind | string Enum: "individual" "company" Define se é uma pessoa física (individual) ou jurídica (company). |
| external_id | string <= 50 characters Identificador único utilizado para identificar o registro no Monde. Você deve fornecer essa informação e utilizá-la em futuras referências ao mesmo registro. Permitido qualquer string única, como um documento ou UUID. |
| name | string <= 100 characters Nome ou nome fantasia, de acordo com o tipo da pessoa. |
| legal_name | string or null <= 100 characters Razão social. |
| gender | string or null Enum: "female" "male" null Gênero |
| birthdate | string or null <date> Data de nascimento no formato ISO 8601 (AAAA-MM-DD). |
| cpf_cnpj | string [ 11 .. 14 ] characters CPF ou CNPJ, de acordo com o tipo da pessoa, sem pontos, barras, traços ou espaços. |
| rg_ie | string or null <= 20 characters RG ou Inscrição Estadual, de acordo com o tipo da pessoa, sem pontos, traços ou espaços. |
| passport_number | string or null <= 20 characters Número do passaporte, sem pontos, traços ou espaços. |
| passport_expiration_date | string or null <date> Data de expiração do passaporte no formato ISO 8601 (AAAA-MM-DD). |
| foreigner | boolean Default: false Indica se a pessoa ou empresa é estrangeira. Use |
| foreign_identity_document | string or null <= 30 characters Documento de identificação do estrangeiro, emitido em seu país de origem. Sem pontos, traços ou espaços. |
| business_phone | string or null <= 20 characters Telefone comercial |
object or null (person_birthplace) Naturalidade: cidade em que a pessoa nasceu. Informe o código IBGE ou, na falta dele, o nome da cidade com estado e país. Sem o código IBGE, a cidade que ainda não estiver cadastrada é criada. | |
object or null (person_additional_data) Dados adicionais da pessoa física. Ausente (null) para pessoa jurídica. | |
| website | string or null <= 50 characters Website (pessoa jurídica) |
| tax_identification_number | string or null <= 20 characters Identificação fiscal (pessoa jurídica estrangeira) |
object or null (person_tax_withholding) Retenções de imposto da pessoa jurídica. Ausente (null) para pessoa física. | |
object or null (person_airline) Dados de companhia aérea da pessoa jurídica (fornecedores). Ausente (null) para pessoa física. | |
string or null <= 200 characters Endereço de e-mail. | |
| phone_number | string or null <= 20 characters Número de telefone, sem traço ou espaços. Para números internacionais, utilize + e o código do país. |
| mobile_number | string or null <= 20 characters Número de telefone celular, sem traço ou espaços. Para números internacionais, utilize + e o código do país. |
object or null Endereço. | |
| city_inscription | string or null <= 15 characters Inscrição municipal |
| observations | string or null Observações da pessoa |
| charge_billet_fee | boolean Default: false Indica se a taxa de boleto é cobrada da pessoa |
object (entity_reference) Vendedor responsável pela pessoa | |
object (entity_reference) Promotor da pessoa (planos operadora) | |
Array of objects (entity_reference) Marcadores da pessoa. A lista enviada substitui a atual: o marcador que não vier nela é retirado. Envie uma lista vazia para retirar todos os marcadores; omita o campo para manter os atuais. Cada marcador precisa já estar cadastrado. | |
Array of objects (person_contact) Pessoas ligadas a este cadastro como contato. A lista enviada substitui a atual: o contato que não vier nela é desfeito. A função de cada contato é a que vier na lista: omiti-la deixa o contato sem função. Envie uma lista vazia para desfazer todos os contatos; omita o campo para manter os atuais. Cada pessoa informada precisa já estar cadastrada e não pode se repetir na lista. Os vínculos em que esta pessoa é contato de outra não são afetados. | |
Array of objects (person_custom_field) Campos personalizados de pessoas, definidos pela agência. Diferente das outras listas, não substitui: cada campo enviado é gravado por cima do valor atual e os que não vierem permanecem como estão, então a lista vazia não muda nada e não é possível esvaziar um campo por esta operação. Envie cada campo por |
Exemplo de alteração de contato, endereço, marcadores e campos personalizados de uma pessoa já cadastrada.
{- "name": "Maria da Silva Souza",
- "email": "maria.souza@exemplo.com",
- "mobile_number": "11934567890",
- "observations": "Cliente preferencial.",
- "address": {
- "postal_code": "04078011",
- "street": "Avenida Divino Salvador",
- "street_number": "5200",
- "city_ibge": "3550308"
}, - "labels": [
- {
- "id": "2d0b3c4e-5f60-4172-9384-0b1c2d3e4f50"
}
], - "contacts": [
- {
- "role": "Financeiro",
- "person": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Indicação"
}
]
}Exemplo da consulta completa de uma pessoa física, com os blocos agrupados e as entidades fracas.
{- "id": "f9d961b8-ea88-4346-8e52-afe94267417a",
- "code": 1042,
- "person_kind": "individual",
- "name": "Carlos Souza",
- "legal_name": null,
- "cpf_cnpj": "12345678909",
- "gender": "male",
- "birthdate": "1985-07-22",
- "rg_ie": "203456789",
- "city_inscription": null,
- "tax_identification_number": null,
- "passport_number": "BR123456",
- "passport_expiration_date": "2028-10-01",
- "foreigner": false,
- "foreign_identity_document": null,
- "email": "carlos@exemplo.com.br",
- "phone_number": "4133334444",
- "mobile_number": "41999998888",
- "business_phone": "4130302020",
- "website": null,
- "cvc_code": null,
- "observations": "Cliente preferencial.",
- "charge_billet_fee": false,
- "created_at": "2021-11-05T10:30:00",
- "address": {
- "postal_code": "80010000",
- "street": "Rua das Flores",
- "street_number": "100",
- "neighborhood": "Centro",
- "additional_info": "Apto 12",
- "city": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}
}, - "additional_data": {
- "marital_status": "married",
- "rg_emitter": "SSP/PR",
- "rg_issue_date": "2008-03-15",
- "birth_certificate": null,
- "mother_name": "Ana Souza"
}, - "last_contacts": {
- "first_sale_date": "2022-01-10",
- "last_sale_date": "2024-03-01",
- "last_departure_date": "2024-03-15",
- "last_return_date": "2024-03-22",
- "last_task_update_at": "2024-03-18T15:12:00"
}, - "tax_withholding": null,
- "airline": null,
- "birthplace": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "seller": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "promoter": null,
- "created_by": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "contacts": [
- {
- "role": "Financeiro",
- "person": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}
}
], - "labels": [
- {
- "id": "2d0b3c4e-5f60-4172-9384-0b1c2d3e4f50"
}
], - "custom_fields": [
- {
- "id": 123,
- "value": "Indicação"
}
], - "attachments": [
- {
- "id": "3e1c4d5f-6071-4283-a495-1c2d3e4f5061",
- "description": "RG digitalizado",
- "extension": "pdf",
- "content_type": "application/pdf",
}
], - "credit_cards": [
- {
- "name": "Cartão Corporativo",
- "last_digits": "1111",
- "expiration_date": "2030-05-01",
- "issuer": "Visa",
- "ticket_card": null
}
], - "kandir_law": null
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único (UUID) da pessoa. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
{- "errors": [
- "Credenciais de acesso não são válidas."
]
}⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo todos os marcadores cadastrados.
{- "data": [
- {
- "id": "2d0b3c4e-5f60-4172-9384-0b1c2d3e4f50",
- "name": "VIP"
}, - {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91",
- "name": "Corporativo"
}, - {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92",
- "name": "Lua de mel"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: f9d961b8-ea88-4346-8e52-afe94267417a Identificador único do marcador |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta de um marcador específico.
{- "id": "2d0b3c4e-5f60-4172-9384-0b1c2d3e4f50",
- "name": "VIP"
}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.
⚠️ 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 | string Enum: "issue_date" "due_date" "settlement_date" Example: date_field=due_date 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 | string <date> Example: date_from=2024-01-01 Filtrar contas cujo campo escolhido em date_field seja igual ou posterior a esta data, no formato ISO 8601 (AAAA-MM-DD). |
| date_to | string <date> Example: date_to=2024-12-31 Filtrar contas cujo campo escolhido em date_field seja igual ou anterior a esta data, no formato ISO 8601 (AAAA-MM-DD). |
| transaction_kind | string Enum: "credit" "debit" Example: transaction_kind=credit Filtra pela natureza do lançamento: |
| kind | string Enum: "normal" "sale_payment" "sale_standalone" "vendor_standalone" "vendor_invoice" "customer_invoice" "credit_card_invoice" "commission" Example: kind=customer_invoice Origem do lançamento.
|
| status | Array of strings Items Enum: "open" "overdue" "settled" "canceled" Example: status=open,overdue Filtra pela situação. Aceita um ou mais valores separados por vírgula:
open e overdue; liquidadas e canceladas só voltam quando pedidas explicitamente.
|
| number | string Example: number=362 Filtra pelo número do lançamento exibido no aplicativo (um por requisição). Lançamentos parcelados têm sufixo de parcela (ex.: |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta contendo uma conta a receber (fatura de cliente) e uma conta a pagar (fatura de cartão).
{- "data": [
- {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09",
- "number": "12345",
- "transaction_kind": "credit",
- "kind": "customer_invoice",
- "description": "Fatura cliente - Janeiro/2026",
- "document": "NF 1001",
- "invoice_number": 42,
- "amount": 1500,
- "final_amount": 1500,
- "issue_date": "2026-01-10",
- "due_date": "2026-02-10",
- "settlement_date": null,
- "created_at": "2026-01-10T13:45:36",
- "canceled": false,
- "checked": false,
- "invoice_closed": false,
- "system_generated": false,
- "generates_credit": false,
- "periodicity": "without_periodicity",
- "recurrence_kind": "non_recurrent",
- "recurrence_group_id": null,
- "observations": null,
- "billet": {
- "status": "registered",
- "number": 12345,
- "our_number": "000000012345",
- "amount": 1500,
- "demonstrative": "Pagável em qualquer banco até o vencimento.",
- "rejection_reason": null,
- "account": {
- "id": "d4e5f6a7-b8c9-4011-e2f3-a4b5c6d7e8f9"
}
}, - "check": null,
- "card": null
}, - {
- "id": "9f8e7d6c-5b4a-4938-8271-6f5e4d3c2b1a",
- "number": "67890",
- "transaction_kind": "debit",
- "kind": "credit_card_invoice",
- "description": "Fatura Mastercard",
- "document": null,
- "invoice_number": null,
- "amount": 5577.39,
- "final_amount": 5577.39,
- "issue_date": "2026-04-18",
- "due_date": "2026-05-15",
- "settlement_date": "2026-05-15",
- "created_at": "2026-04-18T13:45:36",
- "canceled": false,
- "checked": false,
- "invoice_closed": false,
- "system_generated": false,
- "generates_credit": false,
- "periodicity": "monthly",
- "recurrence_kind": "installment",
- "recurrence_group_id": "5f1c8a2e-9b3d-4c7a-8e1f-2a3b4c5d6e7f",
- "observations": null,
- "billet": null,
- "check": null,
- "card": {
- "brand": "MasterCard",
- "last_digits": "4117",
- "authorization": "600551159"
}
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: 212b54b8-27df-4859-80a9-79ad855bcd09 Identificador único da conta a pagar ou receber. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de detalhe de uma fatura de cliente, com categorias, movimentações, rateios, itens, anexos e campos personalizados.
{- "id": "212b54b8-27df-4859-80a9-79ad855bcd09",
- "number": "12345",
- "transaction_kind": "credit",
- "kind": "customer_invoice",
- "description": "Fatura cliente - Janeiro/2026",
- "document": "NF 1001",
- "invoice_number": 42,
- "amount": 1500,
- "final_amount": 1500,
- "issue_date": "2026-01-10",
- "due_date": "2026-02-10",
- "settlement_date": null,
- "created_at": "2026-01-10T13:45:36",
- "canceled": false,
- "checked": false,
- "invoice_closed": false,
- "system_generated": false,
- "generates_credit": false,
- "periodicity": "without_periodicity",
- "recurrence_kind": "non_recurrent",
- "recurrence_group_id": null,
- "observations": null,
- "billet": {
- "status": "registered",
- "number": 12345,
- "our_number": "000000012345",
- "amount": 1500,
- "demonstrative": "Pagável em qualquer banco até o vencimento.",
- "rejection_reason": null,
- "account": {
- "id": "d4e5f6a7-b8c9-4011-e2f3-a4b5c6d7e8f9"
}
}, - "check": null,
- "card": null,
- "sale": null,
- "person": {
- "id": "a1b2c3d4-e5f6-4708-b9c0-d1e2f3a4b5c6"
}, - "company": {
- "id": "0a1b2c3d-4e5f-4677-8899-aabbccddeeff"
}, - "account": {
- "id": "c3d4e5f6-a7b8-4900-d1e2-f3a4b5c6d7e8"
}, - "payment_method": {
- "id": "a1a2a3a4-b5b6-4788-c9c0-d1d2d3d4d5d6"
}, - "operation": null,
- "invoice_rule": {
- "id": "9d0e1f2a-3b4c-4d5e-8f6a-7b8c9d0e1f2a"
}, - "created_by": {
- "id": "e5f6a7b8-c9d0-4122-f3a4-b5c6d7e8f9a0"
}, - "movements": [
- {
- "id": "3f2a6d7e-1b2c-4d5e-8f90-a1b2c3d4e5f6"
}
], - "apportionments": {
- "per_company": [
- {
- "percentage": 50,
- "amount": 750,
- "company": {
- "id": "f6a7b8c9-d0e1-4233-a4b5-c6d7e8f9a0b1"
}
}, - {
- "percentage": 50,
- "amount": 750,
- "company": {
- "id": "a7b8c9d0-e1f2-4344-b5c6-d7e8f9a0b1c2"
}
}
], - "per_cost_center": [
- {
- "percentage": 100,
- "amount": 1500,
- "cost_center": {
- "id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f"
}
}
]
}, - "custom_fields": [
- {
- "id": 123,
- "value": "Matriz"
}
], - "attachments": [
- {
- "id": "b8c9d0e1-f2a3-4455-c6d7-e8f9a0b1c2d3",
- "description": "contrato.pdf",
- "extension": "pdf",
- "content_type": "application/pdf",
}
], - "categories": [
- {
- "amount": 1500,
- "category": {
- "id": "b3c4d5e6-f7a8-4b9c-0d1e-2f3a4b5c6d7e"
}
}
], - "commissions": [ ],
- "items": [
- {
- "description": "Pacote turístico",
- "cost_center": "Alteração de pax",
- "checked": false,
- "amount": 1294.72,
- "sale": {
- "id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b"
}, - "sale_product": {
- "id": "f0a1b2c3-d4e5-4966-a7b8-c9d0e1f2a3b4"
}, - "cvc_statement": null
}, - {
- "description": null,
- "cost_center": null,
- "checked": false,
- "amount": 205.28,
- "sale": null,
- "sale_product": null,
- "cvc_statement": {
- "id": "6a7b8c9d-0e1f-4a2b-9c3d-4e5f6a7b8c9d"
}
}
], - "credit_card_items": [ ]
}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.
⚠️ 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 | string <uuid> Example: account_id=f9d961b8-ea88-4346-8e52-afe94267417a Filtra as movimentações de uma conta específica. |
| payment_method_id | string <uuid> Example: payment_method_id=c3b7e8eb-1199-4457-9170-923c3fe56c92 Filtra as movimentações de uma forma de pagamento específica. |
| transaction_kind | string Enum: "credit" "debit" Example: transaction_kind=debit Filtra pelo sentido do movimento.
|
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta com uma liquidação em cartão e uma transferência entre contas.
{- "data": [
- {
- "id": "6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42",
- "date": "2026-01-26",
- "amount": -9112.17,
- "transaction_kind": "debit",
- "description": null,
- "check": null,
- "card": {
- "brand": "MasterCard",
- "last_digits": "4117",
- "authorization": "600551159"
}
}, - {
- "id": "0d1f5a83-9b2c-4d6e-8a71-3c5f7e9b2d40",
- "date": "2026-01-26",
- "amount": 63063,
- "transaction_kind": "credit",
- "description": "Repasse diário",
- "check": null,
- "card": null
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: 6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42 Identificador da movimentação. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de movimentação que liquida uma conta a pagar em cartão de crédito.
{- "id": "6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42",
- "date": "2026-01-26",
- "amount": -9112.17,
- "transaction_kind": "debit",
- "description": null,
- "check": null,
- "card": {
- "brand": "MasterCard",
- "last_digits": "4117",
- "authorization": "600551159"
}, - "account": {
- "id": "f9d961b8-ea88-4346-8e52-afe94267417a"
}, - "payment_method": {
- "id": "c3b7e8eb-1199-4457-9170-923c3fe56c92"
}, - "bill": {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09"
}, - "credit_card_invoice": null,
- "counterpart_account": null
}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.
⚠️ 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 | string Enum: "customer" "vendor" Example: refund_type=customer Filtra pelo lado do reembolso.
|
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta com um reembolso de fornecedor e um reembolso de cliente.
{- "data": [
- {
- "id": "6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42",
- "refund_type": "vendor",
- "amount": -91.36,
- "description": "Reembolso Incentivo",
- "issue_date": "2021-06-16",
- "due_date": "2021-06-17"
}, - {
- "id": "0d1f5a83-9b2c-4d6e-8a71-3c5f7e9b2d40",
- "refund_type": "customer",
- "amount": -1208.89,
- "description": "Reembolso devido ao cancelamento da viagem",
- "issue_date": "2022-04-09",
- "due_date": "2022-05-24"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: 6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42 Identificador do reembolso. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de reembolso de fornecedor, já com conta a pagar ou a receber.
{- "id": "6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42",
- "refund_type": "vendor",
- "amount": -91.36,
- "description": "Reembolso Incentivo",
- "issue_date": "2021-06-16",
- "due_date": "2021-06-17",
- "sale": {
- "id": "9f3c4f0e-6a3f-4c0e-8f4a-2c9b1d5e7a10"
}, - "sale_product": {
- "id": "7b1e9d43-2c85-4a06-9f37-4e8d1c6a5b92"
}, - "person": {
- "id": "d4e7b2a9-1f83-4c56-9e0b-7a3d5f1c8b64"
}, - "company": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "bill": {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09"
}
}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.
⚠️ 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.
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta com um recibo lançado em OPFAX parcial, em que o saldo consolidado do par difere do valor do movimento, e um recibo baixado.
{- "data": [
- {
- "id": "7b1e9d43-2c85-4a06-9f37-4e8d1c6a5b92",
- "receipt_number": "89100000164635",
- "movement_date": "2019-12-29",
- "sale_date": "2019-12-29T18:00:00",
- "cancellation_date": null,
- "boarding_date": "2020-04-10",
- "return_date": "2020-04-15",
- "product_name": "Hotel Internacional",
- "package_name": "MADRI",
- "total_payments": 2068.04,
- "total_taxes": 0,
- "total_discounts": 0,
- "total_abatement": 0,
- "calculated_commission": 0,
- "retained_commission": 0,
- "intermediary_commission": 0,
- "deposit": 0,
- "opfax": 1826.4,
- "opfax_balance": 200.9,
- "balance": 0,
- "imported": true,
- "edited": false,
- "checked": false,
- "deleted": false,
- "created_at": "2019-12-30T12:14:02"
}, - {
- "id": "6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42",
- "receipt_number": "89930000112199",
- "movement_date": "2019-12-26",
- "sale_date": "2019-12-26T18:00:00",
- "cancellation_date": null,
- "boarding_date": "2020-09-01",
- "return_date": "2020-09-09",
- "product_name": "Excursões Internacionais",
- "package_name": "SANTIAGO",
- "total_payments": 347.89,
- "total_taxes": 0,
- "total_discounts": 0,
- "total_abatement": 0,
- "calculated_commission": 111.33,
- "retained_commission": 0,
- "intermediary_commission": 0,
- "deposit": 34.78,
- "opfax": 0,
- "opfax_balance": 0,
- "balance": 76.55,
- "imported": true,
- "edited": false,
- "checked": false,
- "deleted": false,
- "created_at": "2019-12-30T08:45:48"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: 6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42 Identificador do recibo do extrato CVC. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de recibo baixado, com venda, produto da venda e nota fiscal.
{- "id": "6b0f7c1e-2d4a-4f8b-9c31-58a0d7e13f42",
- "receipt_number": "89930000112199",
- "movement_date": "2019-12-26",
- "sale_date": "2019-12-26T18:00:00",
- "cancellation_date": null,
- "boarding_date": "2020-09-01",
- "return_date": "2020-09-09",
- "product_name": "Excursões Internacionais",
- "package_name": "SANTIAGO",
- "total_payments": 347.89,
- "total_taxes": 0,
- "total_discounts": 0,
- "total_abatement": 0,
- "calculated_commission": 111.33,
- "retained_commission": 0,
- "intermediary_commission": 0,
- "deposit": 34.78,
- "opfax": 0,
- "opfax_balance": 0,
- "balance": 76.55,
- "imported": true,
- "edited": false,
- "checked": false,
- "deleted": false,
- "created_at": "2019-12-30T08:45:48",
- "movement_kind": {
- "name": "BAIXA DE RECIBO"
}, - "company": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "contractor": {
- "id": "d4e7b2a9-1f83-4c56-9e0b-7a3d5f1c8b64"
}, - "seller": {
- "id": "9f3c4f0e-6a3f-4c0e-8f4a-2c9b1d5e7a10"
}, - "intermediary": null,
- "sale": {
- "id": "212b54b8-27df-4859-80a9-79ad855bcd09"
}, - "sale_product": {
- "id": "3f8a1c92-64d5-4b0e-9a77-1e5c8d2b4f63"
}, - "nf": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "created_by": {
- "id": "1c4d8f2a-5b73-4e91-a6c8-3d90f2e5b174"
}
}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.
⚠️ 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 | string Enum: "unissued" "issued" "processing" "processing_cancellation" "awaiting_processing" "canceled" "awaiting_issue" "awaiting_cancellation" Example: status=issued Filtra pela situação da nota fiscal.
|
| period_start | string <date> Example: period_start=2023-01-01 Filtra as notas fiscais emitidas a partir desta data, no formato ISO 8601 (YYYY-MM-DD). |
| period_end | string <date> Example: period_end=2023-12-31 Filtra as notas fiscais emitidas até esta data, no formato ISO 8601 (YYYY-MM-DD). |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de resposta com uma nota cancelada e uma nota emitida.
{- "data": [
- {
- "id": "c71a5d38-0b64-4e29-9d17-6f2e8a4b3c05",
- "number": 982680,
- "series": "1",
- "issue_date": "2023-02-27",
- "status": "canceled",
- "operation_nature": "Prestação de Serviço",
- "cfop": null,
- "nbs_code": null,
- "document": "9572810403321",
- "manual_emission": true,
- "amount": 1840,
- "service_amount": 1840,
- "net_amount": 1748,
- "approximate_taxes_percentage": 0,
- "approximate_taxes_amount": 0,
- "observations": "Nota cancelada a pedido do tomador.",
- "printed_at": null,
- "canceled_at": "2023-03-02T09:14:52",
- "created_at": "2023-02-27T10:03:41",
- "recipient": {
- "kind": "supplier",
- "name": "Azul Linhas Aéreas Brasileiras S.A.",
- "cpf_cnpj": "09296295000160",
- "state_inscription": "2536987410",
- "city_inscription": "1023456",
- "postal_code": "06460040",
- "street": "Avenida Marcos Penteado de Ulhoa Rodrigues",
- "street_number": "939",
- "neighborhood": "Tamboré",
- "additional_info": null,
- "phone": "(11) 4831-1245",
- "email": "fiscal@voeazul.com.br",
- "foreign": false,
- "foreign_document": null,
- "city": {
- "id": "6d2b8e04-91a7-4c35-8f60-2a7d1c9e5b38"
}
}, - "taxes": {
- "retain_iss": true,
- "retain_ir": false,
- "retain_pis_cofins_csll": false,
- "iss_percentage": 5,
- "iss_amount": 92,
- "pis_percentage": 0,
- "pis_amount": 0,
- "cofins_percentage": 0,
- "cofins_amount": 0,
- "ir_percentage": 0,
- "ir_amount": 0,
- "csll_percentage": 0,
- "csll_amount": 0
}, - "nfse": {
- "number": "13302",
- "batch": "8471",
- "protocol": "202302271003410001",
- "verification_code": "K2QW71PZ",
- "processed_at": "2023-02-27T10:05:12",
- "errors": null
}
}, - {
- "id": "5f1b8b0e-3a2c-4d51-8f7a-1c9e2b4d6a83",
- "number": 982677,
- "series": "1",
- "issue_date": "2023-01-13",
- "status": "issued",
- "operation_nature": "Prestação de Serviço",
- "cfop": null,
- "nbs_code": null,
- "document": null,
- "manual_emission": false,
- "amount": 113.48,
- "service_amount": 2613.82,
- "net_amount": 113.48,
- "approximate_taxes_percentage": 0,
- "approximate_taxes_amount": 0,
- "observations": null,
- "printed_at": "2023-02-09T17:26:29",
- "canceled_at": null,
- "created_at": "2023-02-09T17:16:14",
- "recipient": {
- "kind": "payer",
- "name": "Esferatur Passagens e Turismo Ltda",
- "cpf_cnpj": "76530260000130",
- "state_inscription": null,
- "city_inscription": null,
- "postal_code": "89010300",
- "street": "Alameda Rio Branco",
- "street_number": "238",
- "neighborhood": "Jardim Blumenau",
- "additional_info": "1º andar",
- "phone": "(47) 3221-0100",
- "email": null,
- "foreign": false,
- "foreign_document": null,
- "city": {
- "id": "0a6a2f1b-77c4-4f0e-9c2a-5d3b8e6f1a92"
}
}, - "taxes": {
- "retain_iss": false,
- "retain_ir": false,
- "retain_pis_cofins_csll": false,
- "iss_percentage": 5,
- "iss_amount": 5.67,
- "pis_percentage": 0,
- "pis_amount": 0,
- "cofins_percentage": 0,
- "cofins_amount": 0,
- "ir_percentage": 0,
- "ir_amount": 0,
- "csll_percentage": 0,
- "csll_amount": 0
}, - "nfse": {
- "number": "13299",
- "batch": null,
- "protocol": null,
- "verification_code": "BFLXB50A",
- "processed_at": "2023-02-09T17:26:29",
- "errors": null
}
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: 5f1b8b0e-3a2c-4d51-8f7a-1c9e2b4d6a83 Identificador da nota fiscal. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Exemplo de nota fiscal emitida, com um item e as referências para a venda que a originou.
{- "id": "5f1b8b0e-3a2c-4d51-8f7a-1c9e2b4d6a83",
- "number": 982677,
- "series": "1",
- "issue_date": "2023-01-13",
- "status": "issued",
- "operation_nature": "Prestação de Serviço",
- "cfop": null,
- "nbs_code": null,
- "document": null,
- "manual_emission": false,
- "amount": 113.48,
- "service_amount": 2613.82,
- "net_amount": 113.48,
- "approximate_taxes_percentage": 0,
- "approximate_taxes_amount": 0,
- "observations": null,
- "printed_at": "2023-02-09T17:26:29",
- "canceled_at": null,
- "created_at": "2023-02-09T17:16:14",
- "recipient": {
- "kind": "payer",
- "name": "Esferatur Passagens e Turismo Ltda",
- "cpf_cnpj": "76530260000130",
- "state_inscription": null,
- "city_inscription": null,
- "postal_code": "89010300",
- "street": "Alameda Rio Branco",
- "street_number": "238",
- "neighborhood": "Jardim Blumenau",
- "additional_info": "1º andar",
- "phone": "(47) 3221-0100",
- "email": null,
- "foreign": false,
- "foreign_document": null,
- "city": {
- "id": "0a6a2f1b-77c4-4f0e-9c2a-5d3b8e6f1a92"
}
}, - "taxes": {
- "retain_iss": false,
- "retain_ir": false,
- "retain_pis_cofins_csll": false,
- "iss_percentage": 5,
- "iss_amount": 5.67,
- "pis_percentage": 0,
- "pis_amount": 0,
- "cofins_percentage": 0,
- "cofins_amount": 0,
- "ir_percentage": 0,
- "ir_amount": 0,
- "csll_percentage": 0,
- "csll_amount": 0
}, - "nfse": {
- "number": "13299",
- "batch": null,
- "protocol": null,
- "verification_code": "BFLXB50A",
- "processed_at": "2023-02-09T17:26:29",
- "errors": null
}, - "person": {
- "id": "d4e7b2a9-1f83-4c56-9e0b-7a3d5f1c8b64"
}, - "company": {
- "id": "e5d9aaed-33bb-4679-b392-b45e5cd78eb4"
}, - "sale_product": {
- "id": "7b1e9d43-2c85-4a06-9f37-4e8d1c6a5b92"
}, - "sale": {
- "id": "9f3c4f0e-6a3f-4c0e-8f4a-2c9b1d5e7a10"
}, - "created_by": {
- "id": "3c9d1f27-58ab-42e0-9b6d-0f7a4c2e8d15"
}, - "canceled_by": null,
- "items": [
- {
- "description": "Prestação de serviço de intermediação de venda de Passagem Aérea",
- "amount": 113.48,
- "service_amount": 2613.82,
- "approximate_taxes_amount": 0
}
]
}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.
⚠️ 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 | string <uuid> Example: person_id=b2a6d7da-ff94-40e3-b069-812b2fd45b91 Filtra pelo identificador do autor da alteração. |
| resource_id | string <uuid> Example: resource_id=9a1f7c30-1d55-4e0a-9a3b-77b0c2e4f118 Filtra pelo identificador do registro auditado. |
| kind | string Enum: "insertion" "edition" "deletion" "custom" "export" Example: kind=edition Filtra pela ação registrada.
|
| origin | string Example: origin=financeiro_categoria Filtra pela origem da alteração, com o valor exato gravado no log. Um valor por chamada. |
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Retorna o histórico com uma edição, uma exportação de relatório e um cadastro gravado por uma requisição da API, sem autor.
{- "data": [
- {
- "id": "5f1b8b0e-3a2c-4d51-8f7a-1c9e2b4d6a83",
- "kind": "edition",
- "origin": "financeiro_categoria",
- "description": "Valor de \"10\" para \"20\"",
- "created_at": "2026-08-05T09:12:33"
}, - {
- "id": "c71a5d38-0b64-4e29-9d17-6f2e8a4b3c05",
- "kind": "export",
- "origin": "vendas por produto",
- "description": "Exportação de 128 registros",
- "created_at": "2026-08-05T08:41:07"
}, - {
- "id": "7b1e9d43-2c85-4a06-9f37-4e8d1c6a5b92",
- "kind": "insertion",
- "origin": "pessoa",
- "description": "Inserido via API pela credencial \"Integração Contabilidade\"\r\nNome: \"Maria Souza\"",
- "created_at": "2026-08-04T23:05:12"
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | string <uuid> Example: 5f1b8b0e-3a2c-4d51-8f7a-1c9e2b4d6a83 Identificador da linha do histórico. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Retorna uma alteração feita por uma pessoa, com as referências para o autor e para o registro auditado.
{- "id": "5f1b8b0e-3a2c-4d51-8f7a-1c9e2b4d6a83",
- "kind": "edition",
- "origin": "financeiro_categoria",
- "description": "Valor de \"10\" para \"20\"",
- "created_at": "2026-08-05T09:12:33",
- "person": {
- "id": "b2a6d7da-ff94-40e3-b069-812b2fd45b91"
}, - "resource": {
- "id": "9a1f7c30-1d55-4e0a-9a3b-77b0c2e4f118"
}
}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.
⚠️ 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 | string Enum: "sales" "travels" "people" "bills" "tasks" Example: resource=sales Filtra pelo recurso (origem) do campo personalizado. Um valor por chamada; ausente lista todos os recursos.
|
| cursor | string Example: cursor=eyJfcmFpbHMiOnsiZGF0YSI6WyIyMDI2LTAzLTEwIiwiNmIwZjdjMWUtMmQ0YS00ZjhiLTljMzEtNThhMGQ3ZTEzZjQyIl0sInB1ciI6ImFwaS92My9wcm9kdWN0cyNpbmRleCJ9fQ--3aa1d942d6240ca905038c019d661bc90af6836fc4a818cee3663829c75970e4 Cursor da próxima página, exatamente como veio em |
| size | integer [ 1 .. 50 ] Default: 20 Example: size=10 Número de registros por página. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Retorna as definições de campos personalizados de vendas, com um campo do tipo lista e um campo de texto.
{- "data": [
- {
- "id": 123,
- "resource": "sales",
- "name": "Centro de custo",
- "kind": "choices",
- "required": true,
- "active": true,
- "choices": [
- "Matriz",
- "Filial"
]
}, - {
- "id": 124,
- "resource": "sales",
- "name": "Observação interna",
- "kind": "text",
- "required": false,
- "active": true,
- "choices": [ ]
}
], - "pagination": {
- "size": 20,
- "has_next_page": false,
- "next_cursor": null
}
}⚠️ 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 required | integer Example: 123 Identificador do campo personalizado a consultar. |
| Authorization required | string Example: Bearer bW9uZGV8dXNlcjpwYXNzMTIz Credencial de acesso fornecida pela agência de viagens, no esquema Bearer. |
| Content-Type required | string Value: "application/json" Example: application/json Tipo de conteúdo da requisição. Deve ser application/json. |
Retorna a definição de um único campo personalizado, do tipo lista, com as opções cadastradas.
{- "id": 123,
- "resource": "sales",
- "name": "Centro de custo",
- "kind": "choices",
- "required": true,
- "active": true,
- "choices": [
- "Matriz",
- "Filial"
]
}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.
kind): expense (despesa) ou revenue (receita), herdado do grupo. Num lançamento financeiro, a categoria revenue soma ao valor do lançamento credit (a receber) e abate do lançamento debit (a pagar); a categoria expense faz o contrário.intermediary) passou a ser obrigatório, com a venda aberta ou fechada, e é ele quem deve a fatura do cliente, pelo total do cliente já descontada a comissão do intermediário. Ao excluir a venda, o saldo que volta a ser devido também fica com o intermediário, e não com o pagante. O que se deve ao fornecedor fica na moeda de origem do produto. Os valores convertidos são arredondados em 2 casas. Pagamento ao fornecedor (payments.vendor) de produto com moeda de origem diferente de BRL é recusado com 422. Na agência nada muda.commission_amount, over_amount, intermediary_commission_amount e intermediary_over_amount vinham na moeda de origem do produto, sem indicação. Passaram a vir na moeda final da venda, como os demais valores, e a receita da venda (totals.revenue) também. Na agência os valores não mudam.commission_amount_origin_currency, over_amount_origin_currency, intermediary_commission_amount_origin_currency e intermediary_over_amount_origin_currency, o valor na moeda de origem, como já acontecia com a taxa de serviço e o desconto.sale_currency (padrão BRL). Como no Monde, currency é a moeda de origem, em que o fornecedor recebe, e exchange_rate converte a origem na moeda de venda: com moedas iguais o câmbio é 1, com moedas diferentes ele é obrigatório, inclusive quando a origem é BRL. A fatura do cliente e os pagamentos (payments) saem na moeda de venda, e cada pagamento só agrupa produtos com a mesma moeda de venda. O pagamento ao fornecedor (payments.vendor) passa a ser recusado com 422 quando a moeda de origem é diferente da moeda de venda, e não mais quando ela é diferente de BRL. Na consulta, currency devolve a moeda de venda do produto. Na agência, moeda de venda diferente de BRL é recusada com 422.payments.agency) com settlement_date, a conta bancária pode estar em outra moeda que a do pagamento, como no Monde. A liquidação converte pelo novo campo settlement_exchange_rate, da moeda do pagamento para a moeda da conta, ou, quando ele é omitido, pela razão entre as últimas cotações das duas moedas; sem a cotação de alguma delas, a resposta é 422. Antes o valor entrava na conta sem conversão. Com a conta na moeda do pagamento, settlement_exchange_rate deve ser 1 ou omitido. O boleto (bank_slip) passa a aceitar só produtos com moeda de venda BRL, com 422 nas demais.DELETE /sales/{id}). Como no Monde, a venda não é apagada: passa a ter status igual a canceled, e o Monde desfaz logo depois o que ela gerou no financeiro. As mesmas regras do Monde impedem a exclusão (venda fechada, produto cancelado, conta liquidada, item já faturado para o fornecedor, reembolso, fatura de cliente fechada), com resposta 409 e o motivo. A venda com recibo impresso é excluída. Exige a nova permissão de excluir vendas. Na conexão automática, o parceiro com a permissão de excluir as próprias vendas exclui só as vendas que a integração criou.status enviado como lista ou valor aninhado (como ?status[]=open) continua respondendo 400, mas a mensagem passa a dizer que o parâmetro não aceita listas nem valores aninhados, como na paginação. Antes a mensagem dizia apenas que o valor não era válido. Em vendas e em contas a pagar e receber, para filtrar por mais de uma situação, envie os valores separados por vírgula (como ?status=open,overdue em contas).passengers[].cost_center, até 50 caracteres), em todos os produtos com passageiros. Como no Monde, quando o pagante é pessoa jurídica o centro de custo precisa ser um dos cadastrados nele, sem diferenciar maiúsculas de minúsculas, e é gravado com o nome como está no cadastro; fora do cadastro, a resposta é 422 e nada é gravado. Com pagante pessoa física, ou com a configuração de vendas Informar o centro de custo em texto livre ligada, aceita qualquer texto. Antes o campo só vinha na consulta e era ignorado na criação.X-Idempotent-Replay: true) para sempre.company_identifier de uma empresa em que a credencial não tem permissão nenhuma passou a ser respondido como CNPJ não encontrado (422, com erro no campo), igual ao CNPJ que não é empresa da agência. Antes a resposta era 403, o que deixava qualquer credencial descobrir quais CNPJs são empresas ativas da agência. Na empresa em que a credencial tem alguma permissão, mas não a da operação, a resposta continua 403.others (lista; a venda pode ter vários). O produto é informado por product_id, entre os produtos Outros do catálogo da agência (GET /products?kind=others). Conforme a configuração do produto, os valores vão por passengers ou por quantity × unit_price (com unit_fee e a taxa de serviço oculta agency_fee). O fornecedor (supplier) é obrigatório e o representante (representative) é opcional. Também aceita destination (national ou international).unit_fee passou a ser em reais (BRL), como no Monde: o total de taxas é quantity × unit_fee, sem aplicar o câmbio do produto. Antes, a taxa unitária era multiplicada pelo câmbio. Em produto em BRL nada muda.operation.product_id e operation_id) precisam estar ativos no catálogo, como no Monde, que só oferece os produtos ativos na venda. O produto inativo, que aparece em GET /products com active: false, é recusado com 422. Antes a operação própria inativa era aceita.quantity aceita no máximo 2147483647. Acima disso a resposta é 422, com o nome do campo, e nada é gravado. Antes essa quantidade dava 500. O total da linha que a quantidade gera ainda não é conferido, como nos demais valores calculados.agency_fee e agency_fee_origin_currency, a taxa de serviço oculta da linha, como na operação própria. Vêm nulos no produto com passageiros, em que a taxa vem em cada passageiro.excursions, uma ou mais por venda. A excursão é um produto do sistema, então não se informa qual produto está sendo vendido. São obrigatórios o document (até 40 caracteres), a data de partida (departure_date), a moeda, o fornecedor e ao menos um passageiro. A data de chegada (arrival_date) é opcional e não pode ser anterior à partida. Também entram as observações (observations), os serviços inclusos, o representante e os valores do produto (comissão, comissão do intermediário, taxa de serviço, desconto e câmbio). O passageiro recebe valor, taxas, taxa RAV e o desconto dela, taxa de serviço oculta e documento. Se o produto Excursão estiver inativo no Monde, ele é ativado ao criar a venda, como acontece ao vendê-lo pelo sistema.Inserir venda passou a aceitar passagem aérea no array airline_tickets, com os trechos em segments e os passageiros. A companhia aérea é identificada pelo código IATA/ICAO em airline_code ou pelo CNPJ: quando já existe uma companhia com aquele código, ela é reaproveitada; senão, é criada. A taxa DU de cada passageiro (du_fee), menos o desconto dela (du_fee_discount), entra no total do passageiro e no do produto. O desconto de DU só pode ser informado quando o du_fee for maior que zero, como no Monde. As taxas CC DU e CC RAV (cc_du_fee, cc_rav_fee) ficam no produto e são descontadas da receita da agência. A origem e o destino de cada trecho precisam ser um aeroporto cadastrado; um código IATA desconhecido é recusado. Espaços antes ou depois dos códigos de companhia e de aeroporto são descartados, e o tamanho máximo vale para o código sem eles. O flight_number aceita só números, e o emission_name aceita até 50 caracteres. O assento por trecho (segments[].seats), que aponta o passageiro pelo ticket_number, e o original_ticket_number do passageiro estão apenas documentados, pois o sistema ainda não os processa.
Na consulta de vendas, o passageiro do aéreo deixou de trazer o seat. O assento é de cada trecho, e não do passageiro, e passará a vir nos trechos quando o sistema gravá-lo por trecho.
Na consulta de vendas, o class do trecho aéreo deixou de vir com espaço no final quando a classe tem uma letra só ("A" em vez de "A ").
payer sem os campos que o Monde exige para salvar a venda (endereço completo, documento, contato e, conforme o tipo de pessoa, data de nascimento ou razão social) é recusado com 422, com um erro por campo faltante, e nada é gravado. Vale o cadastro como fica depois da requisição, inclusive o que ela cria ou completa. Antes a venda era criada mesmo com o cadastro incompleto. Com a configuração desligada, o padrão, nada muda.attachments, com os anexos da tarefa, inclusive os enviados nos comentários. Cada anexo tem id, description, extension, content_type e download_url, no mesmo formato da venda. Criar tarefa, Alterar tarefa e Comentar na tarefa também trazem o campo quando devolvem a tarefa completa.attachments, com os anexos da viagem, no mesmo formato da venda. O anexo que também pertence a uma tarefa ou a uma venda não entra na lista, porque o download dele exige a permissão desse outro registro.download_url. Ele exige a permissão de leitura do registro dono do anexo: "Ler todas as tarefas", "Ler todas as vendas", "Ler todas as viagens", "Ler todas as contas a pagar e receber" ou "Ler todas as pessoas".city_ibge do endereço e da naturalidade (birthplace) passa a definir a cidade, que precisa estar cadastrada. O código que não corresponde a nenhuma cidade responde 422 em city_ibge, mesmo com nome, estado e país informados, e nada é gravado. Antes a resposta era de sucesso: a pessoa ficava sem a naturalidade, ou a cidade era criada com o código inválido. Para cadastrar uma cidade nova, envie city_name, state_code e country_code sem o city_ibge: a cidade é criada sem código IBGE.city_ibge, o state_code enviado diferente do estado da cidade responde 422 em state_code, e o country_code enviado diferente de BR responde 422 em country_code. O city_name não é conferido.currency é a moeda final da venda (BRL nas vendas criadas pela API), e os valores continuam nela, sem mudança. Entrou origin_currency, com a moeda em que o produto é originalmente comercializado, e exchange_rate passou a trazer o câmbio gravado no produto, no lugar do 1 fixo._origin_currency, na moeda de origem: nos produtos (agency_service_fee, deductions, discount_amount), nos totals e nos passageiros (ex.: amount e amount_origin_currency). Comissão, over e os valores do intermediário não têm par. Isso corrige a regra da entrada de 2026-08-11, em que currency e exchange_rate devolviam sempre BRL e 1.agency_fee passa a vir na moeda final da venda, como os demais valores, e ganhou o par agency_fee_origin_currency. Antes vinha na moeda de origem. No envio nada muda: agency_fee continua sendo informado na moeda de origem.redirect_uri quando a agência aprova ou recusa (com o state), e os erros de cada etapa.POST /oauth/revoke, passou a estar documentada: ela exclui a conexão com a agência na hora.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.
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.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.
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.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.
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.POST /sales. Anexos só entram na venda que o próprio parceiro criou.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.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.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.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.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.Idempotency-Key: reenviar o mesmo anexo com a mesma chave volta a ser processado, em vez de responder 409 indefinidamente.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.
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.
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.
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.
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.
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.
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.
?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.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.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.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.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.
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.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".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.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.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.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.cpf_cnpj. Antes, o conflito de documento estourava erro interno (500).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.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.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.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.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.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.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.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).
excursions.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.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.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.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.id; em Consultar conta a pagar ou receber por ID, credit_card_items[].id deu lugar à referência movement._summary, e o nome sem sufixo passou a ser o da consulta por ID.registered_at virou created_at em vendas, contas a pagar e receber, notas fiscais, regras da nota fiscal, tarefas, viagens, vendedores, pessoas, extrato CVC e logs — o nome mais comum para esse conceito no restante das APIs REST.registered_by virou created_by, pelo mesmo motivo, em vendas, contas a pagar e receber, notas fiscais, regras da nota fiscal, tarefas, viagens, vendedores, pessoas e extrato CVC.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.
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.gender e birthdate, nas duas leituras.birthplace, seller, promoter, registered_by, contacts, labels, custom_fields, attachments e credit_cards.id: são dados que só existem dentro da pessoa.masked_number virou last_digits e passou a trazer só os quatro últimos dígitos, sem a máscara.billet, check e card, que antes só existiam na consulta por ID. São dados do próprio lançamento.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.id. O item não tem consulta própria, e o identificador não resolvia nada.state e country saíram de Consultar cidades e ficaram em Consultar cidade por ID.group saiu de Consultar categorias e ficou em Consultar categoria por ID.bank saiu de Consultar contas e cartões e ficou em Consultar conta ou cartão por ID.kind passou a declarar os valores possíveis: insertion, edition, deletion, custom e export. Não há outros.person passou a indicar Consultar pessoa por ID, o endpoint que resolve a referência.travel, resolvida em Consultar viagem por ID. O vínculo existia só no sentido inverso.active, e Tarefas, deleted.payer_rule, supplier_rule e representative_rule, o recipient passou a vir antes de revenues e discounts.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.
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.
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.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.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.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.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.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.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.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.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.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.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.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.kind, sale_separate e vendor_separate viraram sale_standalone e vendor_standalone. O filtro kind aceita os novos valores.custom_fields, cada campo passou a trazer o id da definição e deixou de trazer o name, como na venda.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.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.supplies: cada um traz o fornecedor, os dados de comissão e os representantes.commission_value virou commission_amount, e commission_type passou a aceitar amount em vez de value.history (comentários e alterações) e os campos personalizados.category deixou de ser texto e virou referência, resolvida em Consultar categoria de tarefa por ID.client virou customer, e seller passou a apontar para o endpoint de vendedores.seller passou a apontar para Consultar vendedor por ID.status, que é derivável de active e valid_until, ambos ainda na resposta.attachment_id virou id.person.name, e o país, code (ISO 3166-1 alfa-2) e code_3 (alfa-3).labels da pessoa e category da tarefa.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.
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.
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.
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.
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.operation (objeto com id e name); antes o identificador vinha em operation_id.commissions: o rateio por pessoa e função (vendedor, intermediário e outros), com valor da comissão, valor retido e saldo.financial: observações financeiras, os repasses aos fornecedores e os lançamentos de contas a pagar e a receber vinculados à venda. Além do Basic Auth, um parceiro aprovado 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 pelo Monde na aprovaçã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.
https://web.monde.com.br/partners/signup e confirme o e-mail. O Monde analisa o cadastro, define as permissões e aprova.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.client_secret só no seu backend. Ele nunca vai para o navegador nem para o app do usuário.https://web.monde.com.br/partners/integration), informe a redirect_uri e a URL da política de privacidade, que a agência vê ao autorizar. A conexão fica habilitada assim que o cadastro está aprovado e as duas estão informadas, sem nenhum outro passo. Enquanto falta uma delas, a autorização não funciona. 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.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&client_id=SEU_CLIENT_ID&redirect_uri=SUA_REDIRECT_URI&state=STATE&code_challenge=CODE_CHALLENGE&code_challenge_method=S256
scope: o que o parceiro pode fazer são as permissões definidas na aprovação.client_id não é de um parceiro ativo e aprovado, se a conexão ainda não está habilitada (falta a redirect_uri ou a política de privacidade), 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.redirect_uri com o code e o mesmo state que você enviou: SUA_REDIRECT_URI?code=agencia%7CujES3JCJylJRoM3j_kGeavaD2hFqz2oqw1Lazq_u0rs&state=STATEQuando 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
state com o da sessão. Se for diferente ou faltar, descarte a resposta.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.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.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: <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>
<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>
<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>
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.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_TOKENPara 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.POST /sales.401.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.