NAV Navbar
javascript

Instruções

A smartrips tem como prioridade a segurança das informações de nossos parceiros, com isso, todas as chamadas nessa documentação apenas são possíveis após a devida autenticação.

Utilizamos o padrão OAuth 2.0 para realizar esta autenticação. Basta solicitar para o nosso time seu client id e client secret para iniciar a integração com a nossa API.

Autenticação

Get Access Token

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/oauth/token?grant_type=password&username={{username}}&password={{password}}&client_id={{client_id}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

{
    "access_token": "{{access_token}}",
    "refresh_token": "{{refresh_token}}"
}

Este é o primeiro endpoint que deve ser chamado para ter o access token e o refresh token, troque o username e o password pelas credenciais do usuário desejado.

Request URL

GET https://api.smartrips.com.br/oauth/token

Parâmetros da URL

Parâmetro Obrigatório Descrição
grant_type Sim Para autenticação o valor deve ser password.
username Sim Login do usuário administrador.
password Sim Senha do usuário administrador.
client_id Sim Client ID enviado pelo nosso time.

Refresh Access Token

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/oauth/token?grant_type=refresh_token&client_id={{client_id}}&client_secret={{client_secret}}&refresh_token={{refresh_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

{
    "access_token": "{{access_token}}",
    "refresh_token": "{{refresh_token}}"
}

Endpoint para atualizar o access token.

Request URL

GET https://api.smartrips.com.br/oauth/token

Parâmetros da URL

Parâmetro Obrigatório Descrição
grant_type Sim Para refresh o valor deve ser refresh_token.
client_id Sim Client ID enviado pelo nosso time.
client_secret Sim Client Secret enviado pelo nosso time.
refresh_token Sim Refresh token válido.

Áreas

Criar nova área

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"name":"Nova Área","area_type": "area","parent_token": "{{parent_area_token}"}});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/company-areas", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 201,
    "type": "COMPANY_AREA_CREATED",
    "message": "Company area inserted with success",
    "company_area_token": "c76c2510-d1c4-11ea-9a4c-73b9b138fca4"
}

Neste endpoint você irá criar novas áreas ou diretorias na organização.

Request URL

POST https://api.smartrips.com.br/ext/company-areas

Request Body

Campo Obrigatório Descrição
name Sim Nome desejado para a área ou diretoria.
area_type Sim Define se o item criado será uma área ou uma diretoria, valores possíveis abaixo
parent_token Não Caso o item criado seja uma área, é possível enviar nesse campo um company_area_token de uma diretoria existente para criar um relacionamento.

Listar áreas

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/company-areas", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "company_area_token": "{{company_area_token}}",
        "name": "Área Um",
        "area_type": "area",
        "created_at": "2020-07-24T20:04:01.000Z",
        "parent_token": "{{company_area_token}}",
        "total_users": 1
    },
    {
        "company_area_token": "{{company_area_token}}",
        "name": "Diretoria Um",
        "area_type": "board",
        "created_at": "2020-07-22T20:04:01.000Z",
        "parent_token": null,
        "total_users": 7
    }
]

Retorna uma lista com todas as áreas da sua organização.

Request URL

GET https://api.smartrips.com.br/ext/company-areas

Adicionar usuário a uma área

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/company-areas/{{companyAreaToken}}/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 201,
    "type": "USER_COMPANY_AREA_CREATED",
    "message": "User company area inserted with success"
}

Neste endpoint você pode adicionar um usuário a uma área.

Request URL

POST https://api.smartrips.com.br/ext/company-areas/{{companyAreaToken}}/user/{{user_token}}

Parâmetros da URL

Parâmetro Obrigatório Descrição
companyAreaToken Sim Token da área.
userToken Sim Token do usuário que será adicionado a área informada.

Remover usuário de uma área

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/company-areas/{{companyAreaToken}}/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (202):

{
    "code": 202,
    "type": "USER_COMPANY_AREA_DELETED",
    "message": "User company area deleted with success"
}

Neste endpoint você pode remover um usuário de uma área.

Request URL

DELETE https://api.smartrips.com.br/ext/company-areas/{{companyAreaToken}}/user/{{user_token}}

Parâmetros da URL

Parâmetro Obrigatório Descrição
companyAreaToken Sim Token da área.
userToken Sim Token do usuário que será removido da área informada.

Perfis de Cobrança

Listar perfis de cobrança

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/billing-profiles", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "billing_profile_token": "{{billing_profile_token}}",
        "email": "email@cliente.com",
        "name": "Nome fantasia do cliente",
        "legal_name": "Razão social LTDA",
        "phone": "11 97777-7777",
        "cnpj": "11.111.111/1111-11",
        "created_at": "2020-07-20T20:24:13.000Z",
        "address": {
            "zip_code": "00000-000",
            "street": "Rua Teste",
            "number": "11",
            "complement": "Conj. 1",
            "neighborhood": "Bairro Teste",
            "city": "São Paulo",
            "state": "SP"
        }
    },
]

Retorna uma lista com todos os perfis de cobrança da sua organização.

Request URL

GET https://api.smartrips.com.br/ext/billing-profiles

Projetos

Criar novo projeto

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"name":"Novo projeto","user_tokens":["{{user_token_1}}","{{user_token_2}}"]});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/project", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 201,
    "type": "PROJECT_CREATED",
    "message": "Project inserted with success",
    "project_token": "{{project_token}}"
}

Neste endpoint você irá criar novos projetos na organização.

Request URL

POST https://api.smartrips.com.br/ext/project

Request Body

Campo Obrigatório Descrição
name Sim Nome desejado para o projeto.
user_tokens Não Array contendo os tokens de usuários já existentes para adicioná-los ao projeto.

Listar projetos

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/project", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "project_token": "{{project_token}}",
        "name": "Projeto Um",
        "created_at": "2019-07-15T20:02:56.000Z",
        "total_users": 0
    },
    {
        "project_token": "{{project_token}}",
        "name": "Projeto Dois",
        "created_at": "2019-06-04T15:13:53.000Z",
        "total_users": 1
    }
]

Retorna uma lista com todos os projetos da sua organização.

Request URL

GET https://api.smartrips.com.br/ext/project

Adicionar usuário a um projeto

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/project/{{projectToken}}/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 201,
    "type": "USER_PROJECT_CREATED",
    "message": "User project inserted with success"
}

Neste endpoint você pode adicionar um usuário a um projeto.

Request URL

POST https://api.smartrips.com.br/ext/project/{{projectToken}}/user/{{user_token}}

Parâmetros da URL

Parâmetro Obrigatório Descrição
projectToken Sim Token do projeto.
userToken Sim Token do usuário que será adicionado ao projeto informado.

Remover usuário de um projeto

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/project/{{projectToken}}/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (202):

{
    "code": 202,
    "type": "USER_PROJECT_DELETED",
    "message": "User project deleted with success"
}

Neste endpoint você pode remover um usuário de um projeto.

Request URL

DELETE https://api.smartrips.com.br/ext/project/{{projectToken}}/user/{{user_token}}

Parâmetros da URL

Parâmetro Obrigatório Descrição
projectToken Sim Token do projeto.
userToken Sim Token do usuário que será removido do projeto informado.

Centros de custo

Criar novo centro de custo

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"name":"Novo centro de custo","user_tokens":["{{user_token_1}}","{{user_token_2}}"]});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/cost-center", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 201,
    "type": "COST_CENTER_CREATED",
    "message": "Cost center inserted with success",
    "cost_center_token": "{{cost_center_token}}"
}

Neste endpoint você irá criar novos centros de custo na organização.

Request URL

POST https://api.smartrips.com.br/ext/cost-center

Request Body

Campo Obrigatório Descrição
name Sim Nome desejado para o centro de custo.
user_tokens Não Array contendo os tokens de usuários já existentes para adicioná-los ao centro de custo.

Listar centros de custo

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/cost-center", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "cost_center_token": "{{cost_center_token}}",
        "name": "Centro de custo Um",
        "created_at": "2019-07-15T20:02:56.000Z",
        "total_users": 1
    },
    {
        "cost_center_token": "{{cost_center_token}}",
        "name": "Centro de custo Dois",
        "created_at": "2019-06-04T15:13:53.000Z",
        "total_users": 2
    }
]

Retorna uma lista com todos os centros de custo da sua organização.

Request URL

GET https://api.smartrips.com.br/ext/cost-center

Adicionar usuário a um centro de custo

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/cost-center/{{costCenterToken}}/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 201,
    "type": "USER_COST_CENTER_CREATED",
    "message": "User cost center inserted with success"
}

Neste endpoint você pode adicionar um usuário a um centro de custo.

Request URL

POST https://api.smartrips.com.br/ext/cost-center/{{costCenterToken}}/user/{{user_token}}

Parâmetros da URL

Parâmetro Obrigatório Descrição
costCenterToken Sim Token do centro de custo.
userToken Sim Token do usuário que será adicionado ao centro de custo informado.

Remover usuário de um centro de custo

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/cost-center/{{costCenterToken}}/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (202):

{
    "code": 202,
    "type": "USER_COST_CENTER_DELETED",
    "message": "User cost center deleted with success"
}

Neste endpoint você pode remover um usuário de um centro de custo.

Request URL

DELETE https://api.smartrips.com.br/ext/cost-center/{{costCenterToken}}/user/{{user_token}}

Parâmetros da URL

Parâmetro Obrigatório Descrição
costCenterToken Sim Token do centro de custo.
userToken Sim Token do usuário que será removido do centro de custo informado.

Usuários

Criar novo usuário

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"first_name":"Novo","last_name":"Usuário","email":"novousuario@email.com","phone":"11922334455","project_tokens":["{{project_token_1}}","{{project_token_2}}"],"cost_center_tokens":["{{cost_center_token_1}}","{{cost_center_token_2}}"],"company_area_tokens":["{{company_area_token_1}}","{{company_area_token_2}}"],"role":"ROLE_USER","send_invite":true});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/user", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 201,
    "type": "USER_CREATED",
    "message": "User inserted with success",
    "user_token": "{{user_token}}"
}

Neste endpoint você irá criar um novo usuário já o adicionando a projetos, centros de custo e áreas.

Request URL

POST https://api.smartrips.com.br/ext/user

Request Body

Campo Obrigatório Descrição
first_name Sim Primeiro nome do usuário.
last_name Sim Sobrenome do usuário.
email Sim E-mail do usuário.
phone Não Telefone do usuário para contato sobre reservas realizadas no sistema.
project_tokens Não Array contendo os tokens dos projetos aos quais o usuário será adicionado.
cost_center_tokens Não Array contendo os tokens dos centros de custo aos quais o usuário será adicionado.
company_area_tokens Não Array contendo os tokens das áreas que o usuário será adicionado.
role Sim String do role de permissões concedidas a este usuário, abaixo as possibilidades.
send_invite Sim Booleano que indica se deve ser enviado um e-mail de convite do sistema para o novo usuário (true) ou não (false).

Listar usuários

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/user", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "user_token": "{{user_token}}",
        "email": "usuario.um@email.com",
        "first_name": "Usuário",
        "last_name": "Um",
        "phone": "11922334455",
        "projects": [],
        "costCenters": [],
        "companyAreas": [],
        "role": "ROLE_USER",
        "last_login": "2020-03-26T12:56:45.000Z",
        "created_at": "2018-07-30T20:10:34.000Z"
    },
    {
        "user_token": "{{user_token}}",
        "email": "usuario.dois@email.com",
        "first_name": "Usuário",
        "last_name": "Dois",
        "phone": null,
        "projects": [
            {
                "project_token": "{{project_token}}",
                "name": "Projeto Dois"
            }
        ],
        "costCenters": [
            {
                "cost_center_token": "{{cost_center_token}}",
                "name": "Centro de custo Dois"
            }
        ],
        "companyAreas": [
            {
                "company_area_token": "{{company_area_token}}",
                "name": "Área Dois"
            }
        ],
        "role": "ROLE_TRAVELER",
        "last_login": "2020-03-12T19:02:57.000Z",
        "created_at": "2018-10-04T14:43:46.000Z"
    }
]

Retorna uma lista com todos os usuários da sua organização.

Request URL

GET https://api.smartrips.com.br/ext/user

Buscar um usuário

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

{
    "user_token": "{{user_token}}",
    "email": "usuario.tres@email.com",
    "first_name": "Usuário",
    "last_name": "Três",
    "phone": null,
    "projects": [
        {
            "project_token": "{{project_token}}",
            "name": "Projeto Três"
        }
    ],
    "costCenters": [
        {
            "cost_center_token": "{{cost_center_token}}",
            "name": "Centro de custo Três"
        }
    ],
    "companyAreas": [
        {
            "company_area_token": "{{company_area_token}}",
            "name": "Área Três"
        }
    ],
    "role": "ROLE_ADMIN",
    "last_login": "2020-03-12T19:02:57.000Z",
    "created_at": "2018-10-04T14:43:46.000Z"
}

Retorna as informações de usuário específico.

Request URL

GET https://api.smartrips.com.br/ext/user/{{user_token}}

Atualizar usuário

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"first_name":"Novo","last_name":"Usuário","email":"novousuario@email.com","phone":"11922334455","role":"ROLE_USER"});

const requestOptions = {
  method: 'PUT',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 200,
    "type": "USER_UPDATED",
    "message": "User updated with success"
}

Neste endpoint você pode atualizar as informações básicas de um usuário.

Request URL

PUT https://api.smartrips.com.br/ext/user/{{user_token}}

Request Body

Campo Obrigatório Descrição
first_name Sim Primeiro nome do usuário.
last_name Sim Sobrenome do usuário.
email Sim E-mail do usuário.
phone Não Telefone do usuário para contato sobre reservas realizadas no sistema.
role Sim String do role de permissões concedidas a este usuário, ver detalhes em criar novo usuário.

Inativar um usuário

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/user/{{user_token}}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (202):

{
    "code": 202,
    "type": "USER_DELETED",
    "message": "User deleted with success"
}

Inativa um usuário específico.

Request URL

DELETE https://api.smartrips.com.br/ext/user/{{user_token}}

Expenses

Relatório geral

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/expenses/general", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "expenseReportToken": "{{expense_report_token}}",
        "travelToken": "{{travel_token}}",
        "travelerEmail": "email@viajante.com",
        "travelerFirstName": "Nome do viajante",
        "travelerLastName": "Sobrenome do viajante",
        "description": "Relatório da viagem Teste",
        "costCenterToken": "{{cost_center_token}}",
        "createdAt": "2019-11-13T12:22:38.000Z",
        "closedAt": "2019-11-15T16:35:31.000Z",
        "approvers": [
            {
                "email": "primeiro@aprovador.com",
                "firstName": "Nome Primeiro",
                "lastName": "Aprovador",
                "stage": 1,
                "approvedAt": "2019-11-15T16:24:48.000Z"
            },
            {
                "email": "segundo@aprovador.com",
                "firstName": "Nome Segundo",
                "lastName": "Aprovador",
                "stage": 2,
                "approvedAt": "2019-11-15T16:29:04.000Z"
            },
            {
                "email": "terceiro@aprovador.com",
                "firstName": "Nome Terceiro",
                "lastName": "Aprovador",
                "stage": 99,
                "approvedAt": "2019-11-15T16:35:31.000Z"
            }
        ],
        "expenses": [
            {
                "expenseToken": "{{expense_token}}",
                "type": "Hospedagem",
                "description": "Hospedagem no hotel",
                "date": "2019-04-25T03:00:00.000Z",
                "value": 302.52,
                "approvedValue": 302.52,
                "receiptFile": "{{receipt_file_url}}",
                "offerToken": "{{offer_token}}",
                "createdAt": "2019-11-13T22:24:32.000Z",
                "policyStatus": false
            },
            {
                "expenseToken": "{{expense_token}}",
                "type": "Transporte",
                "description": "Uber até reunião",
                "date": "2019-06-12T03:00:00.000Z",
                "value": 20,
                "approvedValue": 20,
                "receiptFile": "{{receipt_file_url}}",
                "offerToken": null,
                "createdAt": "2019-11-13T15:08:35.000Z",
                "policyStatus": true
            },
            {
                "expenseToken": "{{expense_token}}",
                "type": "Alimentação",
                "description": "Almoço",
                "date": "2019-11-04T03:00:00.000Z",
                "value": 35.47,
                "approvedValue": 35.47,
                "receiptFile": "{{receipt_file_url}}",
                "offerToken": null,
                "createdAt": "2019-11-13T13:25:20.000Z",
                "policyStatus": true
            },
        ]
    },
    ...
]

Neste endpoint você recebe uma lista com informações gerais de todos os relatórios de despesas do período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/expenses/general

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
expenseReportToken String Token de identificação do relatório.
travelToken String ID da viagem (caso relatório esteja vinculado a uma).
travelerEmail String E-mail do viajante.
travelerFirstName String Nome do viajante.
travelerLastName String Sobrenome do viajante.
description String Descrição do relatório de despesas.
costCenterToken String Token do centro de custo.
billingProfileToken String Token do perfil de cobrança.
createdAt Date Data da criação do relatório.
closedAt Date Data da aprovação do relatório.
approvers List Lista de aprovadores do relatório.
expenses List Lista de despesas vinculadas ao relatório.

Lista de aprovadores

Campo Tipo Descrição
email String E-mail do aprovador.
firstName String Nome do aprovador.
lastName String Sobrenome do aprovador.
stage Number Estágio no fluxo de aprovação, 99 sempre será o último (quem confirma o pagamento).
approvedAt Date Data da aprovação.

Lista de despesas

Campo Tipo Descrição
expenseToken String Token de identificação da despesa.
type String Tipo da despesa, abaixo as possibilidades.
description String Descrição da despesa.
date Date Data da despesa.
value Float Valor original da despesa.
approvedValue Float Valor aprovado da despesa.
receiptFile String URL do comprovante da despesa (Para despesas externas).
offerToken String Token de identificação da oferta comprada (Para despesas realizadas dentro da plataforma).
createdAt Date Data da criação da despesa na plataforma.
policyStatus Boolean Indicativo se a despesa estava dentro da política (true) ou fora (false).

Listar pagamentos pendentes

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/expenses/reports/pending-payment", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "expenseReportToken": "{{expense_report_token}}",
        "travelToken": "{{travel_token}}",
        "travelerEmail": "email@viajante.com",
        "travelerFirstName": "Nome do viajante",
        "travelerLastName": "Sobrenome do viajante",
        "description": "Relatório da viagem Teste",
        "costCenterToken": "{{cost_center_token}}",
        "createdAt": "2019-11-13T12:22:38.000Z",
        "closedAt": "2019-11-15T16:35:31.000Z",
        "approvers": [
            {
                "email": "primeiro@aprovador.com",
                "firstName": "Nome Primeiro",
                "lastName": "Aprovador",
                "stage": 1,
                "approvedAt": "2019-11-15T16:24:48.000Z"
            },
            {
                "email": "segundo@aprovador.com",
                "firstName": "Nome Segundo",
                "lastName": "Aprovador",
                "stage": 2,
                "approvedAt": "2019-11-15T16:29:04.000Z"
            }
        ],
        "expenses": [
            {
                "expenseToken": "{{expense_token}}",
                "type": "Hospedagem",
                "description": "Hospedagem no hotel",
                "date": "2019-04-25T03:00:00.000Z",
                "value": 302.52,
                "approvedValue": 302.52,
                "receiptFile": "{{receipt_file_url}}",
                "offerToken": "{{offer_token}}",
                "createdAt": "2019-11-13T22:24:32.000Z",
                "policyStatus": false
            },
            {
                "expenseToken": "{{expense_token}}",
                "type": "Transporte",
                "description": "Uber até reunião",
                "date": "2019-06-12T03:00:00.000Z",
                "value": 20,
                "approvedValue": 20,
                "receiptFile": "{{receipt_file_url}}",
                "offerToken": null,
                "createdAt": "2019-11-13T15:08:35.000Z",
                "policyStatus": true
            },
            {
                "expenseToken": "{{expense_token}}",
                "type": "Alimentação",
                "description": "Almoço",
                "date": "2019-11-04T03:00:00.000Z",
                "value": 35.47,
                "approvedValue": 35.47,
                "receiptFile": "{{receipt_file_url}}",
                "offerToken": null,
                "createdAt": "2019-11-13T13:25:20.000Z",
                "policyStatus": true
            },
        ],
        "totalApprovedValue" : 357.99
    },
    ...
]

Neste endpoint você recebe uma lista com informações dos relatórios de despesas pendentes de confirmação de pagamento

Request URL

POST https://api.smartrips.com.br/ext/expenses/reports/pending-payment

Descrição da resposta

Campo Tipo Descrição
expenseReportToken String Token de identificação do relatório.
travelToken String ID da viagem (caso relatório esteja vinculado a uma).
travelerEmail String E-mail do viajante.
travelerFirstName String Nome do viajante.
travelerLastName String Sobrenome do viajante.
description String Descrição do relatório de despesas.
costCenterToken String Token do centro de custo.
billingProfileToken String Token do perfil de cobrança.
createdAt Date Data da criação do relatório.
closedAt Date Data da aprovação do relatório.
approvers List Lista de aprovadores do relatório.
expenses List Lista de despesas vinculadas ao relatório.
totalApprovedValue Float Valor total aprovado das despesas.

Lista de aprovadores

Campo Tipo Descrição
email String E-mail do aprovador.
firstName String Nome do aprovador.
lastName String Sobrenome do aprovador.
stage Number Estágio no fluxo de aprovação, 99 sempre será o último (quem confirma o pagamento).
approvedAt Date Data da aprovação.

Lista de despesas

Campo Tipo Descrição
expenseToken String Token de identificação da despesa.
type String Tipo da despesa, abaixo as possibilidades.
description String Descrição da despesa.
date Date Data da despesa.
value Float Valor original da despesa.
approvedValue Float Valor aprovado da despesa.
receiptFile String URL do comprovante da despesa (Para despesas externas).
offerToken String Token de identificação da oferta comprada (Para despesas realizadas dentro da plataforma).
createdAt Date Data da criação da despesa na plataforma.
policyStatus Boolean Indicativo se a despesa estava dentro da política (true) ou fora (false).

Confirmar pagamento de relatório

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/expenses/reports/{{expense_report_token}}/confirm-payment", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 200,
    "type": "EXPENSE_REPORT_PAYMENT_CONFIRMED",
    "message": "Expense report paid with success",
}

Neste endpoint você confirma que um relatório de despesas pendente foi pago.

Listar adiantamentos pendentes

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/expenses/advances/pending-payment", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
    {
        "expenseAdvanceToken": "{{expense_advance_token}}",
        "travelerEmail": "email@viajante.com",
        "travelerFirstName": "Nome do viajante",
        "travelerLastName": "Sobrenome do viajante",
        "requesterEmail": "email@solicitante.com",
        "requesterFirstName": "Nome do solicitante",
        "requesterLastName": "Sobrenome do solicitante",
        "justification": "Justificativa para o adiantamento",
        "createdAt": "2020-05-12T11:45:12.000Z",
        "requestedValue": 250,
        "approvedValue": 250,
        "travelStart": "2020-06-02",
        "travelEnd": "2020-06-03",
        "approvers": [
            {
                "email": "primeiro@aprovador.com",
                "firstName": "Nome Primeiro",
                "lastName": "Aprovador",
                "stage": 1,
                "approvedAt": "2019-11-15T16:24:48.000Z"
            },
            {
                "email": "segundo@aprovador.com",
                "firstName": "Nome Segundo",
                "lastName": "Aprovador",
                "stage": 2,
                "approvedAt": "2019-11-15T16:29:04.000Z"
            }
        ]
    },
    ...
]

Neste endpoint você recebe uma lista com informações dos adiantamentos solicitados pendentes de confirmação de pagamento

Request URL

POST https://api.smartrips.com.br/ext/expenses/advances/pending-payment

Descrição da resposta

Campo Tipo Descrição
expenseAdvanceToken String Token de identificação do adiantamento.
travelerEmail String E-mail do viajante.
travelerFirstName String Nome do viajante.
travelerLastName String Sobrenome do viajante.
requesterEmail String E-mail do solicitante.
requesterFirstName String Nome do solicitante.
requesterLastName String Sobrenome do solicitante.
justification String Justificativa indicada pelo solicitante para o adiantamento.
createdAt Date Data da criação do pedido de adiantamento.
requestedValue Float Valor solicitado do adiantamento.
approvedValue Float Valor aprovado do adiantamento.
travelStart Date Data do início da viagem indicada pelo solicitante.
travelEnd Date Data do término da viagem indicada pelo solicitante.
approvers List Lista de aprovadores do adiantamento.

Lista de aprovadores

Campo Tipo Descrição
email String E-mail do aprovador.
firstName String Nome do aprovador.
lastName String Sobrenome do aprovador.
stage Number Estágio no fluxo de aprovação, 99 sempre será o último (quem confirma o pagamento).
approvedAt Date Data da aprovação.

Confirmar pagamento de adiantamento

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/expenses/advances/{{expense_advance_token}}/confirm-payment", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (201):

{
    "code": 200,
    "type": "EXPENSE_ADVANCE_PAYMENT_CONFIRMED",
    "message": "Expense advance paid with success",
}

Neste endpoint você confirma que um adiantamento pendente foi pago.

Request URL

POST https://api.smartrips.com.br/ext/expenses/advances/{{expense_advance_token}}/confirm-payment

Analytics

Relatório geral

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/general", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
    "date": "2020-01-15T17:01:35.000Z",
    "travelToken": "{{travel_token}}",
    "travelName": "Nome da viagem",
    "travelerName": "Nome do viajante",
    "travelerEmail": "email@viajante.com",
    "bookerName": "Nome do solicitante",
    "bookerEmail": "email@solicitante.com",
    "costCenter": "Centro de custo teste",
    "travelCost": 368.5,
    "bookedAt": "2020-01-15T17:01:35.000Z",
    "bookingWindow": 33,
    "travelStartDate": "2020-02-17T03:00:00.000Z",
    "travelLength": 3,
    "policyStatus": "Sim"
  },
  ...
]

Neste endpoint você recebe uma lista com informações gerais de todas as viagens do período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/general

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
travelCost Float Valor total da viagem.
bookedAt Date Data da compra.
bookingWindow Number Antecedência da compra, em dias.
travelStartDate Date Data do início da viagem.
travelLength Number Duração da viagem, em dias.
policyStatus String Indicador se a viagem está dentro (Sim) ou fora (Não) da política de viagens configurada pela sua empresa.

Detalhado de aéreo

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/flights", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "date": "2020-01-15T03:00:00.000Z",
      "travelToken": "{{travel_token}}",
      "travelName": "Nome da viagem",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "bookerName": "Nome do solicitante",
      "bookerEmail": "email@solicitante.com",
      "costCenter": "Centro de custo teste",
      "operationalId": "SDDGS9",
      "mktAirlineOutbound": "latam airlines",
      "cabinClassOutbound": "Econômica",
      "fareFamilyOutbound": "light",
      "departureAirportCodeOutbound": "CWB",
      "departureAirportCountryOutbound": "Brasil",
      "departureAirportNameOutbound": "(CWB) Curitiba - BR",
      "arrivalAirportCodeOutbound": "POA",
      "arrivalAirportCountryOutbound": "Brasil",
      "arrivalAirportNameOutbound": "(POA) Porto Alegre - BR",
      "flightRouteOutbound": "CWB-POA",
      "mktAirlineInbound": "latam airlines",
      "cabinClassInbound": "Econômica",
      "fareFamilyInbound": "light",
      "departureAirportCodeInbound": "POA",
      "departureAirportCountryInbound": "Brasil",
      "departureAirportNameInbound": "(POA) Porto Alegre - BR",
      "arrivalAirportCodeInbound": "CWB",
      "arrivalAirportCountryInbound": "Brasil",
      "arrivalAirportNameInbound": "(CWB) Curitiba - BR",
      "flightRouteInbound": "POA-CWB",
      "flightBookingDate": "2020-01-15T03:00:00.000Z",
      "flightBookingWindow": 33,
      "flightCost": 368.5,
      "flightStartDate": "2020-02-17T03:00:00.000Z",
      "flightEndDate": "2020-02-20",
      "flightCompleteRoute": "CWB-POA > POA-CWB",
      "policyStatus": "Não"
  },
  ...
]

Neste endpoint você recebe uma lista com detalhes de todos aéreos emitidos no período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/flights

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
operationalId String Localizador da reserva na cia.
mktAirlineOutbound String Cia operadora da ida.
cabinClassOutbound String Classe selecionada na ida.
fareFamilyOutbound String Família tarifária da ida.
departureAirportCodeOutbound String Código IATA do aeroporto de saída da ida.
departureAirportCountryOutbound String País do aeroporto de saída da ida.
departureAirportNameOutbound String Nome do aeroporto de saída da ida.
arrivalAirportCodeOutbound String Código IATA do aeroporto de destino da ida.
arrivalAirportCountryOutbound String País do aeroporto de destino da ida.
arrivalAirportNameOutbound String Nome do aeroporto de destino da ida.
flightRouteOutbound String Rota da ida.
mktAirlineInbound String Cia operadora da volta.
cabinClassInbound String Classe selecionada na volta.
fareFamilyInbound String Família tarifária da volta.
departureAirportCodeInbound String Código IATA do aeroporto de saída da volta.
departureAirportCountryInbound String País do aeroporto de saída da volta.
departureAirportNameInbound String Nome do aeroporto de saída da volta.
arrivalAirportCodeInbound String Código IATA do aeroporto de destino da volta.
arrivalAirportCountryInbound String País do aeroporto de destino da volta.
arrivalAirportNameInbound String Nome do aeroporto de destino da volta.
flightRouteInbound String Rota da volta.
flightBookingDate Date Data da emissão.
flightBookingWindow Number Antecedência da emissão, em dias.
flightCost Float Valor total do aéreo.
flightStartDate Date Data de saída do aéreo de ida.
flightEndDate Date Data de saída do aéreo de volta.
flightCompleteRoute String Rota completa do aéreo.
policyStatus String Indicador se o aéreo está dentro (Sim) ou fora (Não) da política de viagens configurada pela sua empresa.

Detalhado de hospedagem

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/hotels", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "date": "2020-01-30T03:00:00.000Z",
      "travelToken": "{{travel_token}}",
      "travelName": "Nome da viagem",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "bookerName": "Nome do solicitante",
      "bookerEmail": "email@solicitante.com",
      "costCenter": "Centro de custo teste",
      "hotelName": "Nome do hotel",
      "hotelCity": "Rio de Janeiro",
      "hotelCountry": "BR",
      "hotelStars": 3,
      "roomType": "Quarto solteiro",
      "nightNumber": 2,
      "pricePerNight": 87.5,
      "confirmationNumber": "111111",
      "hotelBookingDate": "2020-01-30T03:00:00.000Z",
      "hotelBookingWindow": 20,
      "hotelCost": 175,
      "hotelStartDate": "2020-02-19T03:00:00.000Z",
      "hotelEndDate": "2020-02-21T03:00:00.000Z",
      "policyStatus": "Não"
  },
  ...
]

Neste endpoint você recebe uma lista com detalhes de todas as hospedagens reservadas no período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/hotels

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
hotelName String Nome do hotel.
hotelCity String Cidade do hotel.
hotelCountry String País do hotel.
hotelStars Number Categoria do hotel, em estrelas.
roomType String Descrição do quarto.
nightNumber Number Número de diárias reservadas.
pricePerNight Float Valor da hospedagem por diária.
confirmationNumber String Código de confirmação da hospedagem.
hotelBookingDate Date Data da reseva.
hotelBookingWindow Number Antecedência da reserva, em dias.
hotelCost Float Valor total da hospedagem.
hotelStartDate Date Data de check-in.
hotelEndDate Date Data de check-out.
policyStatus String Indicador se a hospedagem está dentro (Sim) ou fora (Não) da política de viagens configurada pela sua empresa.

Detalhado de aluguel de carro

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/cars", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "date": "2020-01-29T03:00:00.000Z",
      "travelToken": "{{travel_token}}",
      "travelName": "Nome da viagem",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "bookerName": "Nome do solicitante",
      "bookerEmail": "email@solicitante.com",
      "costCenter": "Centro de custo teste",
      "modelTitle": "Econômico 2-4 Portas",
      "modelDescription": "(am) Renault Kwid 1.0 Ou Similar (or Similar)",
      "carRental": "Unidas",
      "carCity": "Rio de Janeiro",
      "carCountry": "BR",
      "carTransmission": "Manual",
      "daysNumber": 2,
      "pricePerDay": 95.7,
      "confirmationNumber": "222222",
      "carBookingDate": "2020-01-29T03:00:00.000Z",
      "carBookingWindow": 21,
      "carCost": 191.4,
      "carStartDate": "2020-02-19T03:00:00.000Z",
      "carEndDate": "2020-02-21T03:00:00.000Z",
      "policyStatus": "Sim"
  },
  ...
]

Neste endpoint você recebe uma lista com detalhes de todos os carros alugados no período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/cars

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
modelTitle String Categoria do carro.
modelDescription String Descrição do modelo do carro.
carRental String Locadora.
carCity String Cidade da retirada do carro.
carCountry String País da retirada do carro.
carTransmission String Tipo de câmbio do carro.
daysNumber Number Número de diárias reservadas.
pricePerDay Float Valor do aluguel por diária.
confirmationNumber String Código de confirmação do aluguel.
carBookingDate Date Data da reseva.
carBookingWindow Number Antecedência da reserva, em dias.
carCost Float Valor total da reserva.
carStartDate Date Data da retirada do carro.
carEndDate Date Data da devolução do carro.
policyStatus String Indicador se o aluguel está dentro (Sim) ou fora (Não) da política de viagens configurada pela sua empresa.

Detalhado de rodoviário

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/buses", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "date": "2020-01-15T03:00:00.000Z",
      "travelToken": "{{travel_token}}",
      "travelName": "Nome da viagem",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "bookerName": "Nome do solicitante",
      "bookerEmail": "email@solicitante.com",
      "costCenter": "Centro de custo teste",
      "operationalId": "Q62NOJ5Y",
      "companyOutbound": "Kaissara",
      "categoryOutbound": "Leito",
      "departureCityOutbound": "São Paulo",
      "arrivalCityOutbound": "Rio de Janeiro",
      "busRouteOutbound": "São Paulo-Rio de Janeiro",
      "companyInbound": "Kaissara",
      "categoryInbound": "Leito",
      "departureCityInbound": "Rio de Janeiro",
      "arrivalCityInbound": "São Paulo",
      "busRouteInbound": "Rio de Janeiro-São Paulo",
      "busBookingDate": "2020-03-12T03:00:00.000Z",
      "busBookingWindow": 39,
      "busCost": 313.55,
      "busStartDate": "2020-04-20T03:00:00.000Z",
      "busEndDate": "2020-04-25",
      "busCompleteRoute": "São Paulo-Rio de Janeiro > Rio de Janeiro-São Paulo",
      "policyStatus": "Sim"
  },
  ...
]

Neste endpoint você recebe uma lista com detalhes de todos os rodoviários emitidos no período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/buses

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
operationalId String Localizador da reserva.
companyOutbound String Viação da ida.
categoryOutbound String Categoria selecionada na ida.
departureCityOutbound String Cidade de saída da ida.
arrivalCityOutbound String Cidade de destino da ida.
busRouteOutbound String Rota da ida.
companyInbound String Viação da volta.
categoryInbound String Categoria selecionada na volta.
departureCityInbound String Cidade de saída da volta.
arrivalCityInbound String Cidade de destino da volta.
busRouteInbound String Rota da volta.
busBookingDate Date Data da emissão.
busBookingWindow Number Antecedência da emissão, em dias.
busCost Float Valor total do rodoviário.
busStartDate Date Data de saída do rodoviário de ida.
busEndDate Date Data de saída do rodoviário de volta.
busCompleteRoute String Rota completa do rodoviário.
policyStatus String Indicador se o rodoviário está dentro (Sim) ou fora (Não) da política de viagens configurada pela sua empresa.

Adoção da política de aéreo

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/flightsPolicy", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "date": "2020-01-15T03:00:00.000Z",
      "travelToken": "{{travel_token}}",
      "travelName": "Nome da viagem",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "bookerName": "Nome do solicitante",
      "bookerEmail": "email@solicitante.com",
      "costCenter": "Centro de custo teste",
      "policyFlightAdvance": 10,
      "realFlightAdvance": 33,
      "policyFlightAdvanceStatus": "Sim",
      "policyCheapestPrice": "Sim",
      "policyCheapestPriceTolerance": 1,
      "realCheapestPrice": 3.84,
      "policyCheapestPriceStatus": "Não",
      "policyFlightClass": "Econômica",
      "realFlightClass": "Econômica",
      "policyFlightClassStatus": "Sim"
  },
  ...
]

Neste endpoint você recebe uma lista com detalhes da adoção da política dos aéreos emitidos no período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/flightsPolicy

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
policyFlightAdvance Number Antecedência da emissão recomendada pela política, em dias.
realFlightAdvance Number Antecedência da emissão realizada, em dias.
policyFlightAdvanceStatus String Indicador se o aéreo está dentro (Sim) ou fora (Não) da antecedência configurada pela sua empresa.
policyCheapestPrice String Indicador se a política de menor preço do aéreo está ativa (Sim) ou desativada (Não).
policyCheapestPriceTolerance Number Se a política de menor preço do aéreo estiver ativa, indica em porcentagem a margem aceita a partir do valor mais barato da busca.
realCheapestPrice Float Se a política de menor preço do aéreo estiver ativa, indica em porcentagem o quanto o aéreo escolhido ficou acima do valor mais barato da busca.
policyCheapestPriceStatus String Indicador se o aéreo está dentro (Sim) ou fora (Não) da política de menor preço configurada pela sua empresa.
policyFlightClass String Classe recomendada pela política.
realFlightClass String Classe do aéreo emitido.
policyFlightClassStatus String Indicador se o aéreo está dentro (Sim) ou fora (Não) da política de classe configurada pela sua empresa.

Adoção da política de hospedagem

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/hotelsPolicy", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "date": "2020-01-15T03:00:00.000Z",
      "travelToken": "{{travel_token}}",
      "travelName": "Nome da viagem",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "bookerName": "Nome do solicitante",
      "bookerEmail": "email@solicitante.com",
      "costCenter": "Centro de custo teste",
      "policyHotelAdvance": 30,
      "realHotelAdvance": 20,
      "policyHotelAdvanceStatus": "Não",
      "policyHotelStars": 2,
      "realHotelStars": 3,
      "policyHotelStarsStatus": "Não",
      "policyHotelCost": 30,
      "realHotelCost": 87.5,
      "policyHotelCostStatus": "Não"
  },
  ...
]

Neste endpoint você recebe uma lista com detalhes da adoção da política das hospedagens reservadas no período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/hotelsPolicy

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
policyHotelAdvance Number Antecedência da reserva recomendada pela política, em dias.
realHotelAdvance Number Antecedência da reserva realizada, em dias.
policyHotelAdvanceStatus String Indicador se a reserva está dentro (Sim) ou fora (Não) da antecedência configurada pela sua empresa.
policyCheapestPrice String Indicador se a política de menor preço do aéreo está ativa (Sim) ou desativada (Não).
policyHotelStars Number Categoria do hotel recomendado pela política, em estrelas.
realHotelStars Number Categoria do hotel reservado, em estrelas.
policyHotelStarsStatus String Indicador se o hotel reservado está dentro (Sim) ou fora (Não) da categoria configurada pela sua empresa.
policyHotelCost Float Valor da máximo da diária recomendado pela política.
realHotelCost Float Valor da diária da reserva.
policyHotelCostStatus String Indicador se a hospedagem está dentro (Sim) ou fora (Não) da política de valor máximo configurada pela sua empresa.

Detalhado da aprovação das viagens

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/approvals", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "travelToken": "{{travel_token}}",
      "travelName": "Nome da viagem",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "bookerName": "Nome do solicitante",
      "bookerEmail": "email@solicitante.com",
      "costCenter": "Centro de custo teste",
      "requestDate": "2020-01-29T20:27:55.000Z",
      "approverStage1": "Nome do aprovador",
      "approverEmailStage1": "email@aprovador.com",
      "approvalDateStage1": "2020-01-29T20:27:55.000Z",
      "approverStage2": null,
      "approverEmailStage2": null,
      "approvalDateStage2": null,
      "approvalDays": 0
  },
  ...
]

Neste endpoint você recebe uma lista com detalhes do fluxo da aprovação das viagens que aconteceram no período escolhido.

Request URL

POST https://api.smartrips.com.br/ext/analytics/approvals

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
travelToken String ID da viagem.
travelName String Nome da viagem criado pelo solicitante.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
bookerName String Nome do solicitante.
bookerEmail String E-mail do solicitante.
costCenter String Nome do centro de custo.
requestDate Date Momento da criação da solicitação de aprovação.
approverStage1 String Nome do aprovador do primeiro nível do fluxo (Se houver configurado apenas um nível, é o nome do aprovador final).
approverEmailStage1 String E-mail do aprovador do primeiro nível do fluxo (Se houver configurado apenas um nível, é o e-mail do aprovador final).
approvalDateStage1 Date Momento da aprovação do primeiro nível do fluxo (Se houver configurado apenas um nível, é o momento final da aprovação).
approverStage2 String Nome do aprovador do segundo nível do fluxo (Se houver configurado).
approverEmailStage2 String E-mail do aprovador do segundo nível do fluxo (Se houver configurado).
approvalDateStage2 Date Momento da aprovação do segundo nível do fluxo (Se houver configurado).
approvalDays Number Diferença entre o momento da solicitação e o momento da aprovação final, em dias.

Detalhado dos budgets por centro de custo

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/budgetPerformance", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "costCenterName": "Centro de custo teste",
      "costCenterToken": "{{cost_center_token}}",
      "plannedValue": 10000,
      "totalSpent": 10799.4,
      "result": -799.4,
      "budgetExceeded": true
  },
  {
      "costCenterName": "Centro de custo dois",
      "costCenterToken": "{{cost_center_token}}",
      "plannedValue": 30000,
      "totalSpent": 24200.5,
      "result": 5799.5,
      "budgetExceeded": false
  },
  ...
]

Neste endpoint você recebe uma lista com os valores dos budgets e os valores gastos de cada centro de custo.

Request URL

POST https://api.smartrips.com.br/ext/analytics/budgetPerformance

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
costCenterName String Nome do centro de custo.
costCenterToken String Token do centro de custo.
plannedValue Float Valor do budget planejado.
totalSpent Float Valor do total gasto no período.
result Float Diferença entre o budget e o total gasto.
budgetExceeded Boolean Booleano indicando se o budget foi excedido (true) ou não (false).

Gastos por viajante

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/travelers", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "traveler": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "total": 3476.69,
      "quantity": 8,
      "average": 434.59
  },
  ...
]

Neste endpoint você recebe uma lista com informações gerais de gastos por viajante.

Request URL

POST https://api.smartrips.com.br/ext/analytics/travelers

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
traveler String Nome do viajante.
travelerEmail String E-mail do viajante.
total Float Valor total gasto em viagens no período.
quantity Number Quantidade de viagens no período.
average Float Valor médio gasto por viagem.

Conciliação

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_day":1,"start_month":1,"start_year":2020,"end_day":31,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/conciliation", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
  {
      "charged": 95.24,
      "bookedAt": "2020-03-03T22:47:36.000Z",
      "date": "2020-03-03T22:47:36.000Z",
      "travelToken": "{{travel_token}}",
      "travelStart": "2020-02-17T03:00:00.000Z",
      "travelEnd": "2020-02-20T03:00:00.000Z",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "costCenter": "Centro de custo teste",
      "price": 368.5,
      "offerType": "Voo",
      "completeRoute": "CWB-POA > POA-CWB",
      "hotelName": null,
      "carRental": null,
      "paymentType": "cartão",
      "transactionType": "seguro",
      "offerId": "SHTKMM",
      "cancelType": null,
      "canceledAt": null,
      "cancelFee": null,
      "creditCard": "3866",
      "requestedAt": null,
      "refundedValue": null
  },
  {
      "charged": 648.94,
      "bookedAt": "2020-01-31T19:55:53.000Z",
      "date": "2020-01-31T19:55:53.000Z",
      "travelToken": "{{travel_token}}",
      "travelStart": "2020-02-21T03:00:00.000Z",
      "travelEnd": "2020-02-24T03:00:00.000Z",
      "travelerName": "Nome do viajante",
      "travelerEmail": "email@viajante.com",
      "costCenter": "Centro de custo teste",
      "price": 648.94,
      "offerType": "Voo",
      "completeRoute": "CGH-SDU > SDU-CGH",
      "hotelName": null,
      "carRental": null,
      "paymentType": "cartão",
      "transactionType": "emissão",
      "offerId": "SFHP5J",
      "cancelType": "",
      "canceledAt": null,
      "cancelFee": null,
      "creditCard": "0150",
      "requestedAt": null,
      "refundedValue": null
  },
  ...
]

Neste endpoint você recebe uma lista com informações para realizar a conciliação.

Request URL

POST https://api.smartrips.com.br/ext/analytics/conciliation

Request Body

Campo Obrigatório Descrição
start_day Sim Númerico de 1 a 31 representando o dia onde o filtro da resposta deve começar.
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_day Sim Númerico de 1 a 31 representando o dia onde o filtro da resposta deve terminar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
charged Float Valor da cobrança.
bookedAt Date Momento que a cobrança foi realizada.
date Date Momento que a viagem foi processada pelo sistema.
travelToken String ID da viagem.
travelStart Date Data de início da viagem.
travelEnd Date Data de fim da viagem.
travelerName String Nome do viajante.
travelerEmail String E-mail do viajante.
costCenter String Nome do centro de custo.
price Float Valor da emissão vinculada (caso o tipo da transação seja diferente de "Emissão", em caso de emissão, o valor será igual ao "charged").
offerType String Tipo da oferta, abaixo as possibilidades.
completeRoute String Rota completa da oferta, em caso de voo ou rodoviário.
hotelName String Nome do hotel, em caso de hospedagem.
carRental String Nome da locadora, em caso de aluguel de carro.
paymentType String Meio de pagamento, abaixo as possibilidades.
transactionType String Tipo da transação, abaixo as possibilidades.
offerId String Identificação da oferta (Localizador em caso de voo ou rodoviário; Código da reserva em caso de hospedagem ou aluguel de carro).
cancelType String Tipo de cancelamento, abaixo as possibilidades.
canceledAt Date Momento do cancelamento.
cancelFee Float Multa do cancelamento.
creditCard String Quatro últimos dígitos do cartão utilizado.
requestedAt Date Em caso de estorno, o momento que foi solicitado.
refundedValue Float Em caso de estorno, o valor estornado da transação.

Não viajados (Cancelamentos, Alterações e Créditos)

Request:

let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "{{access_token}}");

const raw = JSON.stringify({"start_month":1,"start_year":2020,"end_month":12,"end_year":2020});

const requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.smartrips.com.br/ext/analytics/cancelations", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Response (200):

[
   {
        "date": "2020-01-30T17:47:31.000Z",
        "cancelType": "Alteração",
        "type": "Voo",
        "cancelFee": 250,
        "creditValue": null,
        "traveler": "Nome do viajante",
        "travelerEmail": "email@viajante.com",
        "provider": "latam airlines",
        "costCenter": "Centro de custo teste",
        "travelToken": "{{travel_token}}",
        "consumerTravelToken": null,
        "canceledAt": "2020-01-30T19:03:16.000Z",
        "consumedAt": null,
        "offerId": "USANDQ",
        "consumerOfferId": null,
        "bookedAt": "2020-01-30T17:47:31.000Z"
    },
    {
        "date": "2020-01-31T17:21:47.000Z",
        "cancelType": "Reembolso cancelamento",
        "type": "Voo",
        "cancelFee": 0,
        "creditValue": 24.47,
        "traveler": "Nome do viajante",
        "travelerEmail": "email@viajante.com",
        "provider": "azul",
        "costCenter": "Centro de custo teste",
        "travelToken": "{{travel_token}}",
        "consumerTravelToken": null,
        "canceledAt": "2020-01-31T17:29:21.000Z",
        "consumedAt": null,
        "offerId": "WI41WG",
        "consumerOfferId": null,
        "bookedAt": "2020-01-31T17:21:47.000Z"
    },
  ...
]

Neste endpoint você recebe uma lista com informações dos cancelamentos, alterações e créditos disponíveis.

Request URL

POST https://api.smartrips.com.br/ext/analytics/cancelations

Request Body

Campo Obrigatório Descrição
start_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve começar.
start_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve começar.
end_month Sim Númerico de 1 a 12 representando o mês onde o filtro da resposta deve terminar.
end_year Sim Númerico no formato YYYY representando o ano onde o filtro da resposta deve terminar.

Descrição da resposta

Campo Tipo Descrição
date Date Momento que o cancelamento foi processado pelo sistema.
cancelType String Tipo de cancelamento, abaixo as possibilidades.
type String Tipo da oferta, abaixo as possibilidades.
cancelFee Float Valor da multa.
creditValue Float Valor de crédito em caso de cancelamento do tipo crédito, valor do reembolso em caso de cancelamento do tipo reembolso, valor reaproveitado na remarcação em caso de alteração.
traveler String Nome do viajante.
travelerEmail String E-mail do viajante.
provider String Nome do fornecedor.
costCenter String Nome do centro de custo.
travelToken String ID da viagem.
consumerTravelToken String Em caso de crédito já utilizado, ID da viagem que utilizou o crédito.
canceledAt Date Momento do cancelamento.
consumedAt Date Em caso de crédito já utilizado, momento da utilização.
offerId String Identificação da oferta.
consumerOfferId String Em caso de crédito já utilizado, identificação da oferta que utilizou o crédito.
bookedAt Date Momento que a oferta foi comprada.