NAV Navbar
csharp javascript

Introdução

Bem-vindo ao manual da API de Integração do Cartão de TODOS!

O objetivo desta documentação é orientar o desenvolvedor sobre como integrar com a API de Integração Cartão de TODOS, descrevendo as funcionalidades, os métodos a serem utilizados, listando informações a serem enviadas e recebidas, e provendo exemplos.

O mecanismo de integração com o Cartão de TODOS é simples, de modo que apenas conhecimentos intermediários em linguagem de programação para Web, requisições HTTP/HTTPS e manipulação de arquivos JSON, são necessários para implantar a solução Cartão de TODOS com sucesso.

Nesse manual você encontrará a referência sobre todas as operações disponíveis na API REST de integração Cartão de TODOS. Estas operações devem ser executadas utilizando seu token especificio nos respectivos endpoints dos ambientes:

SANDBOX PRODUÇÃO
http://sandbox.sistematodos.com.br:81/integracao https://api.cartaodetodos.com.br/

Autenticação

Para autorização, use este código:

var client = new RestClient("http://sandbox.sistematodos.com.br:81/api/filiado/10669447684/ctn");

var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891AC5CC59E0CC7A006888DF");

IRestResponse response = client.Execute(request);

var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://sandbox.sistematodos.com.br:81/api/filiado/10669447684/ctn");
xhr.setRequestHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891AC5CC59E0CC7A006888DF");

xhr.send(data);

Para realizar a autenticação você sempre deverá enviar seu token no cabeçalho em todas as suas requisições, conforme abaixo.

Authorization: B4C7AB108191735504990B41D18F1EDBEC14891AC5CC59E0CC7A006888DF

Consultas

Veremos abaixo os métodos de consultas a API de integração, seus parâmetros e rotas para os três sistemas do Cartão de TODOS: CartãoNet, Clube de Vantagens da família e IPS colômbia.

Matrícula/CPF

var client = new RestClient("http://sandbox.sistematodos.com.br:81/integracao/api/filiado/60362238626/ctn");

var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891AC5CC59E0CC7A006888DF");

IRestResponse response = client.Execute(request);
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://sandbox.sistematodos.com.br:81/integracao/api/filiado/60362238626/ctn");
xhr.setRequestHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891DC5CC59E0CC7D106888DF");

xhr.send(data);

A requisição irá retornar o seguinte JSON:

{
  "mensagem": "string",
  "dados": [
    {
      "idFiliado": 0,
      "idPessoa": 0,
      "matricula": "string",
      "nomeFiliado": "string",
      "dataNascimento": "2018-10-17T18:26:46.865Z",
      "cpf": "string",
      "idTipoSituacaoFinanceira": 0,
      "idStatusFiliado": 0,
      "nomeFranquia": "string",
      "endereco": "string",
      "numero": "string",
      "bairro": "string",
      "cidade": "string",
      "uf": "string",
      "telefone": "string",
      "celular": "string",      
      "sistema": 0,
      "idFranquia": 0,
      "idFiliadoPai": 0,
      "tipoSituacaoFinanceira": "string",
      "statusFiliado": "string",
      "tipoFiliado": "string",
      "permiteDesconto": true
    }
  ],
  "quantidade": 0
}

A rota da pesquisa por matrícula ou CPF é

Requisição HTTP

GET /api/filiado/{matriculaCpf}/{sistema}

Exemplo Matrícula: GET /api/filiado/MG046049495/ctn

Exemplo CPF: GET /api/filiado/60362238626/ctn

• MatriculaCPF: Número da matrícula ou CPF do filiado.

Retorno

PROPRIEDADE TIPO TAMANHO DESCRIÇÃO
Mensagem String - Mensagem de retorno.
idFiliado Int - Número de identificação do filiado.
idPessoa Int - Número de identificação da pessoa.
matricula String 12 Matrícula ou CPF do filiado.
nomeFiliado String - Nome do filiado. Deve conter no mínimo 3 caracteres. A pesquisa por nome sempre irá retornar os primeiros 20 resultados.
dataNascimento Datetime yyyy-mm-dd Data de nascimento do filiado.
cpf String 11 Número do CPF do filiado.
idTipoSituacaoFinanceira Int - Qual a situação financeira do filiado.
idStatusFiliado Int - Identificação do status do filiado.
nomeFranquia String - Nome da franquia em que o filiado esta cadastrado.
endereco String - Nome da rua do filiado.
numero String - Número do endereço do filiado.
bairro String - Nome do bairro do filiado.
cidade String - Nome da cidade do filiado.
uf String 2 Nome do estado do filiado.
telefone String 10 Número de telefone do filiado.
celular String 11 Número de celular do filiado.
sistema Int 3 Sigla do sistema.
idFranquia Int - Número de identificação da franquia.
idFiliadoPai Int - Identificação do titular do contrato.
tipoSituacaoFinanceira String - Status da situação financeira do filiado (Adimplente, inadimplente etc).
statusFiliado String - Status do filiado (Ativo, desfiliado etc).
tipoFiliado String - Informa se é o titular ou dependente do contrato.
permiteDesconto Boolean - Se o desconto é permitido (true/false).
quantidade Int - Quantidade de itens dentro do array dados.

Nome

var client = new RestClient("http://sandbox.sistematodos.com.br:81/integracao/api/filiado/pesquisa/lorenna/ctn");

var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891BC5CC59E0CC7A106888DF");

IRestResponse response = client.Execute(request);
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://sandbox.sistematodos.com.br:81/integracao/api/filiado/pesquisa/lorenna/ctn");
xhr.setRequestHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891DC5CC59F0CC7D106888DF");

xhr.send(data);

A requisição irá retornar o seguinte JSON:

{
  "mensagem": "string",
  "dados": [
    {
      "idFiliado": 0,
      "idPessoa": 0,
      "matricula": "string",
      "nomeFiliado": "string",
      "dataNascimento": "2018-10-17T18:33:31.200Z",
      "cpf": "string",
      "idTipoSituacaoFinanceira": 0,
      "idStatusFiliado": 0,
      "nomeFranquia": "string",
      "endereco": "string",
      "numero": "string",
      "bairro": "string",
      "cidade": "string",
      "uf": "string",
      "telefone": "string",
      "celular": "string",      
      "sistema": 0,
      "idFranquia": 0,
      "idFiliadoPai": 0,
      "tipoSituacaoFinanceira": "string",
      "statusFiliado": "string",
      "tipoFiliado": "string",
      "permiteDesconto": true
    }
  ],
  "quantidade": 0
}

A rota da pesquisa por nome é

Requisição HTTP

GET /api/filiado/pesquisa/{nome}/{sistema}

Exemplo: GET /api/filiado/pesquisa/lorenna/ctn

• Nome: Nome do filiado.

Retorno

PROPRIEDADE TIPO TAMANHO DESCRIÇÃO
Mensagem String - Mensagem de retorno.
idFiliado Int - Número de identificação do filiado.
idPessoa Int - Número de identificação da pessoa.
matricula String 12 Matrícula ou CPF do filiado.
nomeFiliado String - Deve conter no mínimo 3 caracteres. A pesquisa por nome sempre irá retornar os primeiros 20 resultados.
dataNascimento Datetime yyyy-mm-dd Data de nascimento do filiado.
cpf String 11 Número do CPF do filiado.
idTipoSituacaoFinanceira Int - Qual a situação financeira do filiado.
idStatusFiliado Int - Identificação do status do filiado.
nomeFranquia String - Nome da franquia em que o filiado esta cadastrado.
endereco String - Nome da rua do filiado.
numero String - Número do endereço do filiado.
bairro String - Nome do bairro do filiado.
cidade String - Nome da cidade do filiado.
uf String 2 Nome do estado do filiado.
telefone String 10 Número de telefone do filiado.
celular String 11 Número de celular do filiado.
sistema Int 3 Sigla do sistema.
idFranquia Int - Número de identificação da franquia.
idFiliadoPai Int - Identificação do titular do contrato.
tipoSituacaoFinanceira String - Status da situação financeira do filiado (Adimplente, inadimplente etc).
statusFiliado String - Status do filiado (Ativo, desfiliado etc).
tipoFiliado String - Informa se é o titular ou dependente do contrato.
permiteDesconto Boolean - Se o desconto é permitido (true/false).
quantidade Int - Quantidade de itens dentro do array dados.

Serviços

Veremos abaixo os métodos para incluir e cancelar serviço da API de integração, seus parâmetros e rotas para os três sistemas do Cartão de TODOS: CartãoNet, Clube de Vantagens da família e IPS colômbia.

Inclusão

var client = new RestClient("http://sandbox.sistematodos.com.br:81/integracao/api/Contrato");

var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891BC5CC59E0CC7A106888DF");

var cadastroContratoViewModel = new CadastroContratoViewModel();
cadastroContratoViewModel.IdServico = 3;
cadastroContratoViewModel.IdFiliado = 3;
cadastroContratoViewModel.ReaproveitarDados = true;
cadastroContratoViewModel.Sistema = "ctn";

request.AddJsonBody(cadastroContratoViewModel);

IRestResponse response = client.Execute(request);
var data = JSON.stringify({
  "idServico": 3,
  "idFiliado": 111111,
  "reaproveitarDados": true,
  "sistema": "ctn"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://sandbox.sistematodos.com.br:81/integracao/api/Contrato");
xhr.setRequestHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891DC5CC59F0CC7D106888DF");

xhr.send(data);

A requisição irá retornar o seguinte JSON:

{
   "idContrato": 0
}

A rota para cadastro de contrato é:

Requisição HTTP

POST /api/Contrato

Exemplo: POST /api/Contrato

Retorno

PROPRIEDADE TIPO TAMANHO DESCRIÇÃO
idContrato Int - Número do contrato incluído.

Cancelamento

var client = new RestClient("http://sandbox.sistematodos.com.br:81/integracao/api/Contrato/4/ctn");

var request = new RestRequest(Method.DELETE);
request.AddHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891BC5CC59E0CC7A106888DF");

IRestResponse response = client.Execute(request);
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "http://sandbox.sistematodos.com.br:81/integracao/api/Contrato/4/ctn");
xhr.setRequestHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891DC5CC59F0CC7D106888DF");

xhr.send(data);

A rota para o cancelamento do contrato é:

Requisição HTTP

DELETE /api/Contrato/{IdContrato}/{Sistema}

Exemplo: DELETE /api/Contrato/4/ctn

Erros

A API de Integração utiliza os seguintes códigos de erro:

Erros

Erro Significado
200 OK -- Sucesso.
201 Created -- Registo incluido.
400 Bad Request -- Sua solicitação é inválida.
401 Unauthorized -- Sua chave de API está errada.
403 Forbidden -- Você tentou acessar um recurso não autorizado.
404 Not Found -- Não encontrado.
405 Method Not Allowed -- Você tentou acessar um método não permitido.
500 Internal Server Error -- Nós tivemos um problema com nosso servidor, tente mais tarde. Caso persista, entre em contato.
503 Service Unavailable -- Estamos temporariamente off-line para manutenção. Por favor, tente novamente mais tarde