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": [
    {
      "id": 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",
      "codigo": 0,
      "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.
id Int - Número de identificação do filiado.
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.
codigo Int - Código 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": [
    {
      "id": 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",
      "codigo": 0,
      "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.
id Int - Número de identificação do filiado.
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.
codigo Int - Código 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.

Filiação

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

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

IRestResponse response = client.Execute(request);
var data = JSON.stringify({
  "nomeFiliado": "string",
  "dataNascimento": "2018-10-18T11:28:56.988Z",
  "cpf": "string",
  "email": "string",
  "cep": "string",
  "logradouro": "string",
  "numero": "string",
  "complemento": "string",
  "bairro": "string",
  "cidade": "string",
  "uf": "string",
  "residenciaPropria": "string",
  "telefone": "string",
  "celular": "string",
  "estadoCivil": 0,
  "sexo": "string",
  "cartaoCredito": {
    "nome": "string",
    "numero": "string",
    "cvv": "string",
    "mes": 0,
    "ano": 0,
    "bandeira": "string"
  },
  "cnpj": "string"
});

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/filiado");
xhr.setRequestHeader("authorization", "Bearer B4C7AB108191735504990B41D18F1EDBEC14891RC5CC59E0CC7B106888DF");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);

Corpo da requisição HTTP:

{
  "nomeFiliado": "string",
  "dataNascimento": "2018-10-18T11:28:56.988Z",
  "cpf": "string",
  "email": "string",
  "cep": "string",
  "logradouro": "string",
  "numero": "string",
  "complemento": "string",
  "bairro": "string",
  "cidade": "string",
  "uf": "string",
  "residenciaPropria": "string",
  "telefone": "string",
  "celular": "string",
  "estadoCivil": 0,
  "sexo": "string",
  "cartaoCredito": {
    "nome": "string",
    "numero": "string",
    "cvv": "string",
    "mes": 0,
    "ano": 0,
    "bandeira": "string"
  },
  "cnpj": "string"
}

A requisição irá retornar o seguinte JSON em caso de sucesso:

{
  "mensagem": "string",
  "dados": [
    {
      "id": 0,
      "matricula": "string",
      "nomeFiliado": "string",
      "dataNascimento": "2018-10-31T18:32:29.712Z",
      "cpf": "string",
      "idTipoSituacaoFinanceira": 0,
      "idStatusFiliado": 0,
      "nomeFranquia": "string",
      "cep": "string",
      "endereco": "string",
      "complemento": "string",
      "numero": "string",
      "bairro": "string",
      "cidade": "string",
      "uf": "string",
      "telefone": "string",
      "celular": "string",
      "codigo": 0,
      "sistema": 0,
      "idFranquia": 0,
      "idFiliadoPai": 0,
      "tipoSituacaoFinanceira": "string",
      "statusFiliado": "string",
      "tipoFiliado": "string",
      "permiteDesconto": true
    }
  ],
  "quantidade": 0
}

A rota de filiação é

Requisição HTTP

POST /api/Filiado

Requisição

PROPRIEDADE TIPO TAMANHO OBRIGATÓRIO DESCRIÇÃO
nomeFiliado String - Sim 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 Sim Data de nascimento do filiado.
cpf String 11 Sim Número do CPF do filiado.
email String - Sim Endereço de e-mail do filiado.
cep String 8 Sim Número CEP da rua.
logradouro String - Sim Nome da rua do filiado.
numero String - Sim Número do endereço do filiado.
complemento String - Sim Complemento do endereço.
bairro String - Sim Nome do bairro do filiado.
cidade String - Sim Nome da cidade do filiado.
uf String 2 Sim Nome do estado do filiado.
residenciaPropria String - Sim Se possue residência.
telefone String 10 Sim Número de telefone do filiado.
celular String 11 Sim Número de celular do filiado.
estadoCivil Int - Sim Estado civil do filiado.
sexo String - Sim Sexo do filiado.
nome String - Sim Nome que consta no cartão de crédito.
numero String - Sim Número do cartão de crédito.
cvv String 4 Sim Código de segurança do cartão de crédito.
mes Int - Sim Mês de vencimento do cartão de crédito.
ano Int - Sim Ano de vencimento do cartão de crédito.
bandeira String - Sim Bandeira do cartão de crédito.
cnpj String 14 Sim CNPJ da empresa que esta enviando a requisição.

Retorno

PROPRIEDADE TIPO TAMANHO DESCRIÇÃO
Mensagem String - Mensagem de retorno.
id Int - Número de identificação do filiado.
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.
codigo Int - Código 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.

Erros

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

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.
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