Com nossa api seu produto sempre tera as informações mais atualizadas, nossa equipe esta sempre fazendo verificação e correção das informações quando necessário.
O GTIN, sigla de “Global Trade Item Number” é um identificador para itens comerciais desenvolvido e controlado pela GS1, antiga EAN/UCC. Os GTINs, anteriormente chamados de códigos EAN, são atribuídos para qualquer item (produto ou serviço) que pode ser precificado, pedido ou faturado em qualquer ponto da cadeia de suprimentos. O GTIN é utilizado para recuperar informação pré-definida e abrange desde as matérias primas até produtos acabados. GTIN é um termo “guarda-chuva” para descrever toda a família de identificação das estruturas de dados GS1 para itens comerciais (produtos e serviços). Os GTINs podem ter o tamanho de 8, 12, 13 ou 14 dígitos e podem ser construídos utilizando qualquer uma das quatro estruturas de numeração dependendo da aplicação. O GTIN-8 é codificado no código de barras EAN-8. O GTIN-12 é mais utilizado no código de barras UPC-A, o GTIN-13 é codificado no EAN-13 e o GTIN-14 no ITF-14.
A seguir você encontra o passo a passo para utilizar nossa API GTIN.
Os endpoints da API GTIN utilizam a URL base: https://gtin.rscsistemas.com.br
Para utilizar a API GTIN, é necessário possuir um usuário e senha. Caso ainda não tenha, faça seu cadastro em: https://gtin.rscsistemas.com.br/cadastro
O token gerado será necessário para consumir os endpoints protegidos da API GTIN.
Endpoint de solicitação do token Bearer de acesso.
URL: https://gtin.rscsistemas.com.br/oauth/token
Método: POST
As credenciais username:password devem ser codificadas em Base64 e enviadas no header Authorization.
curl -X POST "https://gtin.rscsistemas.com.br/oauth/token" \
-H "Authorization: Basic <base64_encoded_credentials>" \
-H "Accept: application/json"
async function obterToken() {
const res = await fetch("https://gtin.rscsistemas.com.br/oauth/token", {
method: "POST",
headers: {
"Authorization": "Basic <base64_encoded_credentials>",
"Accept": "application/json"
}
});
if (!res.ok) {
const txt = await res.text();
throw new Error(`Falha ao obter token (${res.status}): ${txt}`);
}
const data = await res.json();
return data.token;
}
uses IdHTTP, System.SysUtils;
function ObterToken: string;
var
HTTP: TIdHTTP;
Resp: string;
begin
HTTP := TIdHTTP.Create(nil);
try
HTTP.Request.CustomHeaders.Values['Authorization'] := 'Basic <base64_encoded_credentials>';
HTTP.Request.Accept := 'application/json';
Resp := HTTP.Post('https://gtin.rscsistemas.com.br/oauth/token', nil);
Result := Resp;
finally
HTTP.Free;
end;
end;
A requisição foi processada com sucesso.
Media type: application/json
{ "token": "eyJhbGciOiAiQUVTMjU2IiwgInR5cCI6ICJKV1QifQ==..." }
Não autenticado. Verifique suas credenciais.
Media type: application/json
{ "erro": "Não autenticado. Verifique suas credenciais." }
Com o token gerado anteriormente, você pode consultar os dados do produto enviando o header Authorization: Bearer <SEU_TOKEN>.
Endpoint para obter as informações de um produto a partir do seu EAN/GTIN.
URL: https://gtin.rscsistemas.com.br/api/gtin/infor/:gtin
Método: GET
GTIN="7896116900029"
TOKEN="SEU_TOKEN_AQUI"
curl -X GET "https://gtin.rscsistemas.com.br/api/gtin/infor/$GTIN" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
async function obterInfoProduto(gtin, token) {
const url = `https://gtin.rscsistemas.com.br/api/gtin/infor/${encodeURIComponent(gtin)}`;
const res = await fetch(url, {
headers: {
"Authorization": `Bearer ${token}`,
"Accept": "application/json"
}
});
if (res.status === 404) {
const err = await res.json();
throw new Error(err.mensagem || "Produto não encontrado");
}
if (!res.ok) {
const txt = await res.text();
throw new Error(`Erro ${res.status}: ${txt}`);
}
return res.json();
}
function ObterInfoProduto(const GTIN, Token: string): string;
var
HTTP: TIdHTTP;
URL: string;
begin
HTTP := TIdHTTP.Create(nil);
try
HTTP.Request.CustomHeaders.Values['Authorization'] := 'Bearer ' + Token;
HTTP.Request.Accept := 'application/json';
URL := Format('https://gtin.rscsistemas.com.br/api/gtin/infor/%s', [GTIN]);
Result := HTTP.Get(URL);
finally
HTTP.Free;
end;
end;
A requisição foi processada com sucesso.
Media type: application/json
{
"ean": "7896116900029",
"ean_tipo": "EAN13",
"ncm": 7133399,
"nome": "FEIJAO CARIOCA KICALDO T1 1KG",
"marca": "KICALDO",
"pais": "BRASIL",
"categoria": "Carioca",
"link_foto": "https://gtin.rscsistemas.com.br/api/gtin/img/7896116900029"
}
Produto não encontrado na base de dados.
Media type: application/json
{ "mensagem": "Produto não encontrado na base de dados" }
Com o token gerado anteriormente, você pode solicitar a imagem do produto informando o GTIN e o header Authorization: Bearer <SEU_TOKEN>.
Endpoint para solicitar a imagem do produto.
URL: https://gtin.rscsistemas.com.br/api/gtin/img/:gtin
Método: GET
GTIN="7896116900029"
TOKEN="SEU_TOKEN_AQUI"
curl -L "https://gtin.rscsistemas.com.br/api/gtin/img/$GTIN" \
-H "Authorization: Bearer $TOKEN" \
--output "${GTIN}.png"
async function baixarImagem(gtin, token) {
const url = `https://gtin.rscsistemas.com.br/api/gtin/img/${encodeURIComponent(gtin)}`;
const res = await fetch(url, {
headers: { "Authorization": `Bearer ${token}` }
});
if (res.status === 404) {
const err = await res.json();
throw new Error(err.mensagem || "Produto não encontrado na base de dados");
}
if (res.status === 204) {
throw new Error("Produto encontrado, porem sem imagem cadastrada");
}
if (!res.ok) {
const txt = await res.text();
throw new Error(`Erro ${res.status}: ${txt}`);
}
const blob = await res.blob();
const urlBlob = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = urlBlob;
a.download = `${gtin}.png`;
a.click();
URL.revokeObjectURL(urlBlob);
}
procedure BaixarImagem(const GTIN, Token, CaminhoDestino: string);
var
HTTP: TIdHTTP;
FileStream: TFileStream;
URL: string;
begin
HTTP := TIdHTTP.Create(nil);
try
HTTP.Request.CustomHeaders.Values['Authorization'] := 'Bearer ' + Token;
URL := Format('https://gtin.rscsistemas.com.br/api/gtin/img/%s', [GTIN]);
FileStream := TFileStream.Create(CaminhoDestino + GTIN + '.png', fmCreate);
try
HTTP.Get(URL, FileStream);
finally
FileStream.Free;
end;
finally
HTTP.Free;
end;
end;
A requisição foi processada com sucesso.
Media type: image/png
Exemplo de imagem retornada.
Produto não encontrado na base de dados.
Media type: application/json
{ "mensagem": "Produto não encontrado na base de dados" }
Produto encontrado, porém sem imagem cadastrada.
Imagem de exemplo para retorno 204 No Content.
Authorization: Bearer <token> nos endpoints protegidos./oauth/token.Accept: application/json para respostas estruturadas.