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