NAV
javascript

Introdução

Bem vindo ao Winn API!

Você consegue utilizar os nossos serviços através da sua chave que nós vamos te disponibilizar, sendo esses serviços colocar uma Nota Fiscal para ser processada e consultada para retornar os dados da dela.

Nós usamos JavaScript para rodar o nosso código. Você consegue ver exemplos de códigos na área da direita.

Nota Fiscal

POST Nota Fiscal

Coloca a Nota Fiscal para processamento e leitura.

No primeiro exemplo passa-se apenas a chave de acesso da nota (accessKey) para realizar o processamento dela.

const axios = require("axios");

axios.post(
  "https://api.winn.global/api/create/",
  {
    accessKey: ":accessKey",
  },
  {
    headers: {
      "Content-Type": "application/json",
      "x-api-key": ":key",
    },
  }
);

Nesse outro caso passa-se uma url com a imagem da Nota Fiscal e a será extraida a Chave de acesso da mesma.

const axios = require("axios");

axios.post(
  "https://api.winn.global/api/create/",
  {
    url: ":url",
  },
  {
    headers: {
      "Content-Type": "application/json",
      "x-api-key": ":key",
    },
  }
);

Nesse outro exemplo passa-se a chave de acesso (accessKey) e também uma URL para callback, enviaremos os dados da Nota Fiscal para essa URL. (Opcional)

const axios = require("axios");

axios.post(
  "https://api.winn.global/api/create/",
  {
    accessKey: ":accessKey",
    callbackUrl: "https://www.example.com/",
  },
  {
    headers: {
      "Content-Type": "application/json",
      "x-api-key": ":key",
    },
  }
);

E por último além das propriedades anteriores pode ser adicionar dados extras que irão retornar junto com os dados da Nota Fiscal. (Opcional)

const axios = require("axios");

axios.post(
  "https://api.winn.global/api/create/",
  {
    accessKey: ":accessKey",
    callbackUrl: "https://www.example.com/",
    extraOptions: {
      cpf: "12345678901",
    },
  },
  {
    headers: {
      "Content-Type": "application/json",
      "x-api-key": ":key",
    },
  }
);

Com um dos comandos acima vai trazer um JSON parecido com o exemplo abaixo.

{
  "message": "Processando a nota fiscal :accessKey"
}

HTTP Request

POST https://api.winn.global/api/create/

Body Properties

Propriedade Descrição
accessKey Chave de acesso da Nota Fiscal da nota a ser lida
url Quando passada a URL ele faz o OCR da imagem e pega a chave de acesso da Nota Fiscal
callbackUrl URL de callback para receber os dados da Nota Fiscal
extraOptions Um JSON com dados extras que você deseja passar para receber na resposta

Headers

Propriedade Descrição
x-api-key Propriedade que garante a segurança e autentica o processo.

GET Nota Fiscal

Após o processamento, faz a consulta dos dados da Nota Fiscal.

(Essa requisição funciona apenas quando passada a accessKey no POST Nota Fiscal)

Após o POST da Nota Fiscal e colocar ela na fila, pode realizar a consulta dessa Nota Fiscal com o exemplo abaixo:

const axios = require("axios");

axios.get("https://api.winn.global/api/read/:accessKey", {
  headers: {
    "x-api-key": ":key", //chave gerada por nós para utilizar os nossos serviços
  },
});

Com comando acima vai trazer um JSON parecido com o exemplo abaixo:

{
  "extraOptions": {},
  "accessKey": ":accessKey",
  "updatedAt": "19/09/2020 18:56",
  "status": "OK",
  "createdAt": "18/09/2020 18:56",
  "dados": {
    "chaveDeAcesso": ":accessKey",
    "dadosDosProdutosEServicos": [
      {
        "codigo": 7896679226772,
        "numero": 1,
        "codigoEanComercial": "7896679226772",
        "valor": 62.1,
        "codigoEanTributavel": "7896679226772",
        "unidadeComercial": "UN",
        "codigoCest": "1111111",
        "codigoNcm": "33043000",
        "quantidade": 9,
        "descricao": "IDEAL REMOVEDOR REMOVIN 100ML NOVO",
        "valorUnitario": 6.9
      }
    ],
    "dadosDaNfe": {
      "serie": 1,
      "dataSaidaEntrada": "14/09/2020 08:32:04-03:00",
      "numero": 14014,
      "modelo": 55,
      "dataDeEmissao": "14/09/2020 08:32:04-03:00",
      "valorTotal": 62.1
    },
    "dadosDoEmitente": {
      "cnae": "4772500",
      "telefone": "(11)1234-5678",
      "endereco": "Avenida Example, 123 ",
      "municipio": "Example",
      "bairroDistrito": "Example",
      "inscricaoMunicipal": "6.107.060-2",
      "cnpj": "12.345.678/0001-12",
      "cep": "01234-567",
      "pais": null,
      "uf": "SP",
      "nomeFantasia": "EXAMPLE",
      "codigoRegimeTributario": " 1 - Simples Nacional ",
      "inscricaoEstadual": "123175730111",
      "municipioIcms": null,
      "nomeRazaoSocial": "EXAMPLE NAME",
      "inscricaoEstadualDoSubstitutoTributario": null
    },
    "dadosDoDestinatario": {
      "cpf": "123.456.789-01",
      "cnpj": null
    },
    "formasDePagamento": [
      {
        "forma": "",
        "valor": 62.1,
        "meio": "1 - Dinheiro"
      }
    ]
  },
  "callbackUrl": ""
}

HTTP Request

GET https://api.winn.global/api/read/:accessKey

URL Parameters

Parâmetros Descrição
accessKey Chave de acesso da Nota Fiscal da nota a ser lida

Headers

Propriedade Descrição
x-api-key Propriedade que garante a segurança e autentica o processo.

Usuário

Consulta de CPF

Realiza uma consulta nos dados públicos e traz a autencidade do cpf, retornando a situação atual do mesmo.

No exemplo passa-se o cpf, junto com o token de autorização no header.

const axios = require("axios");

axios.post(
  "https://api.winn.global/api/verifyCPF/",
  {
    cpf: ":cpf",
  },
  {
    headers: {
      "Content-Type": "application/json",
      "x-api-key": ":key",
    },
  }
);

E o retorno da resquisição esperado será o seguinte json.

{
  "error": false,
  "data": {
    "ni": "123.456.789-01",
    "nome": "Joao Silva",
    "nascimento": "12/09/1970",
    "situacao": {
      "codigo": "0",
      "descricao": "Regular"
    }
  }
}

HTTP Request

POST https://api.winn.global/api/verifyCPF

Body Properties

Parâmetros Descrição
:cpf Cpf que irá ser consultado

Headers

Propriedade Descrição
x-api-key Propriedade que garante a segurança e autentica o processo.

Relátorio

Preficação

Informa o GTIN/EAN do produto e retorna os preços minimo, médio e maximo desse produto por estado.

No exemplo passa-se o gtin, junto com o token de autorização no header.

const axios = require("axios");

axios.post(
  "https://api.winn.global/api/gtinPricing/",
  {
    gtin: ":gtin",
  },
  {
    headers: {
      "Content-Type": "application/json",
      "x-api-key": ":key",
    },
  }
);

E o retorno da resquisição esperado será o seguinte json.

{
  "count": 10,
  "error": false,
  "data": [
    {
      "max": "4,49",
      "min": "4,49",
      "media": "4,49",
      "state": "RJ"
    },
    {
      "max": "7,50",
      "min": "3,89",
      "media": "4,59",
      "state": "SP"
    }
  ]
}

HTTP Request

POST https://api.winn.global/api/gtinPerson

Body Properties

Parâmetros Descrição
:gtin Gtin do produto que irá ser consultado

Headers

Propriedade Descrição
x-api-key Propriedade que garante a segurança e autentica o processo.

Relátorio de perfil

Retorna os dados do consumidores baseado no GTIN/EAN do produto

No exemplo passa-se o gtin, junto com o token de autorização no header.

const axios = require("axios");

axios.post(
  "https://api.winn.global/api/gtinPerson/",
  {
    gtin: ":gtin",
  },
  {
    headers: {
      "Content-Type": "application/json",
      "x-api-key": ":key",
    },
  }
);

E o retorno da resquisição esperado será o seguinte json.

{
  "count": 10,
  "error": false,
  "data": {
    "sex": {
      "male": 10,
      "female": 0
    },
    "ages": [8, 0, 2, 0, 0, 0, 0, 0],
    "children": [
      {
        "total": 2,
        "children": "0"
      },
      {
        "total": 6,
        "children": "1"
      },
      {
        "total": 0,
        "children": "2"
      },
      {
        "total": 0,
        "children": "3"
      },
      {
        "total": 2,
        "children": "4"
      }
    ],
    "reBuy": [
      {
        "total": 6,
        "users": 1
      },
      {
        "total": 2,
        "users": 2
      }
    ],
    "topProducts": [
      {
        "gtin": "7894900010015",
        "description": "REFRIG COCA COLA LTA 350ML",
        "total": 4
      },
      {
        "gtin": "7894900701753",
        "description": "REFRIG COCA COLA ZERO PET 1,5L",
        "total": 3
      },
      {
        "gtin": "7891991002646",
        "description": "REFRIG ANTARCTICA GUARANA PET 600ML",
        "total": 3
      },
      {
        "gtin": "70847022015",
        "description": "ENERGETICO MONSTER LT 473ML ENERGY",
        "total": 3
      },
      {
        "gtin": "2107646001809",
        "description": "PRE COZ PERDI FAT",
        "total": 2
      },
      {
        "gtin": "2202429001264",
        "description": "PEITO PERU C/C SADIA",
        "total": 2
      },
      {
        "gtin": "7897123884036",
        "description": "AGUA MIN PRATA C/G PET 510ML",
        "total": 2
      },
      {
        "gtin": "7894900011517",
        "description": "REFRI COCA 2L",
        "total": 1
      },
      {
        "gtin": "7891008168877",
        "description": "CHOC GAROTO 90G",
        "total": 1
      },
      {
        "gtin": "7891089017910",
        "description": "UVA PASSA LA VIOLETE",
        "total": 1
      }
    ],
    "hours": [
      {
        "total": 0,
        "hour": 0
      },
      {
        "total": 0,
        "hour": 1
      },
      {
        "total": 0,
        "hour": 2
      },
      {
        "total": 0,
        "hour": 3
      },
      {
        "total": 0,
        "hour": 4
      },
      {
        "total": 0,
        "hour": 5
      },
      {
        "total": 0,
        "hour": 6
      },
      {
        "total": 1,
        "hour": 7
      },
      {
        "total": 0,
        "hour": 8
      },
      {
        "total": 0,
        "hour": 9
      },
      {
        "total": 0,
        "hour": 10
      },
      {
        "total": 0,
        "hour": 11
      },
      {
        "total": 0,
        "hour": 12
      },
      {
        "total": 3,
        "hour": 13
      },
      {
        "total": 1,
        "hour": 14
      },
      {
        "total": 1,
        "hour": 15
      },
      {
        "total": 3,
        "hour": 16
      },
      {
        "total": 0,
        "hour": 17
      },
      {
        "total": 1,
        "hour": 18
      },
      {
        "total": 0,
        "hour": 19
      },
      {
        "total": 0,
        "hour": 20
      },
      {
        "total": 0,
        "hour": 21
      },
      {
        "total": 0,
        "hour": 22
      },
      {
        "total": 0,
        "hour": 23
      }
    ]
  }
}

HTTP Request

POST https://api.winn.global/api/gtinPerson

Body Properties

Parâmetros Descrição
:gtin Gtin do produto que irá ser consultado

Headers

Propriedade Descrição
x-api-key Propriedade que garante a segurança e autentica o processo.

Erros

A API do Winn usa os seguintes códigos de erro:

Status de Erro Significado
400 Chave de acesso com tamanho divergente.
400 A plataforma Winn só valida cupons emitidos a partir de 2020.
400 Modelo/Estado inválido.
400 Nota em processamento ou já processada.
400 Chave de acesso inválida.
400 CNPJ deve conter 14 digitos.
401 Token inválido ou inexistente.
404 Sua chave de acesso não foi encontrada.
404 CNPJ não cadastrado.
404 Chave de acesso/Url não encontrada.
404 Url mal formatada.
404 Para url aceitamos os seguintes formatos: PNG, JPEG ou PDF.
500 Erro interno, tente novamente mais tarde.