/
Web Service Guarani ERP

Web Service Guarani ERP


O WebService Guarani é uma ferramenta de integração entre o Guarani ERP e sistemas de Terceiros.


Ele deve ser instalado e configurado no servidor local para que um login e senha para autenticação básica sejam gerados e distribuídos aos usuários.

As APIs com todos os métodos respondem no endereço do tipo: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/<nome-do-método> e retornam os campos em aquivos de formato JSon.

Cada método será tratado abaixo:


GetFabricantes

Retorna os fabricantes de produtos cadastrados no sistema.

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetFabrifcantes


CampoDescriçãoTipo
codigoCódigo interno do fabricanteNumérico
fabricanteNome fantasia do fabricanteTexto


Onde encontrar


GetTransportadores

Retorna listagem dos transportadores registrados no Guarani. Pode aceitar um código como parâmetro para trazer dados específicos de um transportador.

  • Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetTransportadores


CampoDescriçãoTipo
codigoCódigo do transportador no Guarani.Numérico
fantasiaNome fantasia do transportador.Texto
razaoRazão social do transportador.Texto
cnpjCNPJ do transportador.Texto


GetRepresentantes

Retorna a listagem de representantes cadastrados no sistema.

  • Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetRepresentantes

Pode ser passado na URL o código do representante, o que traz apenas o representante em questão. Ex:

  • Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetRepresentantes/100


CampoDescriçãoTipoExemplo
codigoCódigo interno único do representanteNumérico
razaoRazão SocialTexto
fantasiaNome FantasiaTexto
pessoaTipo de Pessoa. ('F') Física ou ('J') JurídicaTexto
enderecoEndereçoTexto
bairroBairroTexto
cidadeCidadeTexto
ufUFTexto
cepCEPTexto
telefoneTelefoneTexto
faxFaxTexto
celularCelularTexto
emailE-mailTexto
siteWebsiteTexto
rg_ieRG ou Inscrição EstadualTexto
cpf_cnpjCPF ou CNPJTexto
bloquedoInforma se o representante está marcado como bloqueado. S = Sim / N = NãoTexto

inativoInforma se o representante está marcado como inativo. S = Sim / N = NãoTexto


Onde encontrar

GetRepresentantesContatos

Retorna a relação de contatos dos representantes

  • Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetRepresentantesContatos

Pode ser passado na URL o código do representante, o que traz apenas os contatos do representante em questão. Ex:

  • Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetRepresentantesContatos/100


CampoDescriçãoTipo
codigoCódigo único do ContatoNumérico
fornecedorCódigo do representante o qual o contato esta atreladoNumérico
contatoNome do ContatosTexto
ramalRamalTexto
celularNúmero do CelularTexto
telefoneNúmero do TelefoneTexto
faxNúmero do FaxTexto
emailE-mail do representanteTexto
tipo

Tipo, podendo ser:

G = Geral

C = Compras

V = Vendas

F = Fiscal

A = Administrativo

S = Financeito

Texto


GetClientesRepresentantes

Retorna a relação Clientes X Representantes

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetClientesRepresentantes

Este método aceita 2 tipos de filtros:

  • clientes: dados o código do cliente retorna toda sua relação de representantes;
    • Ex: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetClientesRepresentantes/cliente/100.
  • representantes: dado o código do representante retorna toda a relação dos seus clientes;
    • Ex: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetClientesRepresentantes/representante/100


CampoDescriçãoTipo
clienteCódigo do ClienteNumérico
representanteCódigo do RepresentanteNumérico
padrao

Indica se o representante é padrão para o cliente.

0 = Não padrão | 1 = Padrão

Numérico

Onde encontrar

GetCategorias

Retorna as categorias de produtos cadastrados no sistema.

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/Getcategorias

CampoDescriçãoTipo
codigoCódigo Interno da categoriaNumérico
cod_paiCódigo interno da categoria "pai" da categoriaNumérico
nomeNome da categoriaTexto
referenciaReferência ou código externo editável (não obrigatório)Texto
descricaoDecriçãoda categoriaTexto
ativoInforma se categoria está ativa (Valor 'S' ou 'N')Caractere


Onde encontrar



GetClassificacoes

Retorna as possíveis classificações que um produto pode ter. O resultado é constituído da união de quatro tabelas do sistemas: Segmento, Linha, Grupo e Subgrupo.

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetClassificacoes

CampoDescriçãoTipo
tipo

Tipo da classificação, podendo assmir:

S = Segmentos / L = Linhas / G = Grupos / U = Supgrupos 

Caractere
codigoCódigo interno da classificação. O valor pode se repertir, o que define a chave é a combinação com o tipo.Numérico
nomeNome da classificaçãoTexto


Onde encontrar:


GetProdutos

Retorna o cadastro de produtos que estão incluídos em uma tabela de preços parametrizada no WebService. Esta operação pode demorar um pouco dependendo da quantidade de produtos na tabela. Um parâmetro com a referência do produto pode ser passado no método, trazendo assim apenas o cadastro do produto em questão, caso ele exista.

Exemplo: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetProdutos/GX0021

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetProdutos

GetProdutosFull

Este método é uma variação do método Getprodutos, eles devolve os mesmos campos com adicional do nome e descrição do produto.

Por devolver mais informações ele é mais "pesado" que o GetProdutos, por isso, utilize-o em ocasiões onde essas informações adicionais são requeridas.


CampoDescriçãoExemploTipo
refReferência do produto no sistema, identificador único.

Texto
nomeNome do produto.  (Disponível apenas no método GetProdutosFull)Texto
descricaoDescrição Complementar do produto.  (Disponível apenas no método GetProdutosFull)

Texto

legenda

Legenda que identifica o estado de um produt no sistema. Podendo assumir:

L = Lançamento / F = Fora de Linha / N = Em Linha /

P = Ponta de Estoque / T =Transição / C = Controle Interno

R = Promoção

Caractere
ean13Código de barras EAN 13 do produto.

Texto
dun14Código de barras DUN14 da embalagem do produto.Texto
fabricanteCódigo interno do fabricante. (mesmo que foi importado em GetFabricantes)
Numérico
segmentoCódigo interno do Segmento do produto. (GetClassificacoes)
Numérico
linhaCódigo interno da Linha do produto. (GetClassificacoes)
Numérico
grupoCódigo interno do Grupo do produto. (GetClassificacoes)
Numérico
subgrupoCódigo interno do Subgrupo do produto. (GetClassificacoes)
Numérico
cubagemCubagem do produto em M3.

Decimal
comprimentoComprimento em Cm.Decimal
larguraLargura em Cm.Decimal
alturaAltura em Cm.Decimal
pesoliq_unPeso líquido da unidade em Kg.Decimal
pesobru_unPeo bruto da unidade em Kg.Decimal
pesoliq_emPeso líquido da embalagem em Kg.Decimal
pesobru_emPeso bruto da embalagem em Kg.Decimal
un_vendaUnidade de venda do produto. (Ex. Cx/Un/Mt ... etc).Texto
em_vendaEmbalagem de venda do produto. (Ex. CX/12, PC/24 ... etc)Texto
em_fatorFator da embalagem de venda. (Ex: em_venda = CX/12, em_fator = 12)Numérico
apenas_unVende somente Unidade. (S = Sim | N = Não)
apenas_emVende somente Embalagem. (S = Sim | N = Não)
preco_unPreço da unidade em reais.

Decimal
preco_emPreço da embalagem em reais.Decimal
qtd_logicoQtd do estoque lógico. (= Estoque físico - Estoque vendio)

Decimal
qtd_fisicoQtd física do produto em estoque.Decimal


Onde encontrar:


ListProdutos

Este método retorna apenas a referência dos produtos nas mesmas condições do método GetProdutos.

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/ListProdutos

GetProImagens

Este método retorna uma lisa de imagens do produto  referenciado.

Exemplo: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetProImagens/GX0021

Pode ser utilizado os parâmetros:

  • /A - para exibir apenas imagens de alta qualidade
    • Exemplo: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetProImagens/GX0021/A
  • /B - apenas imagens de baixa qualidade
    • Exemplo: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetProImagens/GX0021/B


Campo DescriçãoTipo
imgImagem do produto em formato Base64.Texto Base64

GetEspecificacoes

Este método retorna as especificações de um produto. Por ser um campo livre seu tamanho pode ser muito grande, inviabilizando seu retorno junto ao método GetProdutos.

Deve ser utilizado sempre identificando o código do produto ao qual deseja-se obter a especificação.

Exemplo: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetEspecificacoes/GX0021


Campo DescriçãoTipo
refReferência do produto. (Identificador único)Texto
especificacaoEspecificação do produto no cadastro.Texto Livre


Onde encontrar:


GetProCategorias

Este método retorna a relação categorias X produtos, lembrando que um produto pode ter várias categorias.


CampoDescriçãoTipo
refReferência do produto. (Identificador único)Texto
categoriaCódigo interno da categoria. (GetCategorias)Numérico


GetProSimilares

Dado uma referência de produto este método retorna todos os produtos similares do seu cadastro.

Exemplo: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/oSimilares/<código do produto>


CampoDescriçãoTipoExemplo
-Lista com referência dos produtos similares.Array de texto


ListEtapas

Este método retorna uma lista de todas as possíveis etapas cadastradas no sistema que um pedido de venda pode ter.

CampoDescriçãoTipo
idCódigo único da etapa.Numérico
etapaDescrição da etapa.Texto
obsObservações da etapaTexto


GetDetalhesPedido

Dado o número do pedido, devolve alguns detalhes importantes a respeito do pedido;

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetDetalhesPedido/CODIGO_DO_PEDIDO


CampoDescriçãoTipo
origemOrigem do pedido no Guarani. (Parte da ID interna)Numérico
pedidoCódigo do pedido no Guarani. (Parte da ID interna)Numérico
vr_freteValor do frete em reais.Decimal
vr_totalValor do pedido em reais;Decimal
vq_liquidoValor líquido do pedido em reais.Decimal
nf_serieNúmero de série da Nota fiscal. (Depende da nota estar gerada)Numérico
nf_numeroNúmero da nota fiscal. (Depende da nota estar gerada)Numérico
nf_chaveChave da Nota fiscal. (Depende da nota estar gerada)texto



GetEtapaPedido

Dado o número externo do pedido, este método retorna sua etapa atual.

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetEtapaPedido/CODIGO_DO_PEDIDO


CampoDescriçãoTipo
codeRetorno da API (0 = Retorno com sucesso | 1, 2, 3 = Erro no retorno)Numérico
msg

1 = Pedido não encontrado. (O pedido não foi localizado na base do ERP)

2 = Pedido recebido mas não importado. (O pedido foi recebido pelo ERP mas ainda não processado pelo usuário)

3 = Etapa vazia. (O pedido não contém uma  etapa válida no ERP)

Texto
id_etapaCódigo único da etapa (Retornadas em ListEtapas)Numérico
etapaDescrição da etapa.Texto
userUsuário que registrou a etapa.Texto
dataData em que a etapa foi registrada.Data/Hora
id_internoId interno do pedido no sistema (Origem - Pedido). Se 0, o pedido ainda não foi processado.Texto


GetFormasPagamento

Devolve as formas de pagamento disponíveis no sistema. 

Exemplo de uso: http://<endereço-do-cliente>:8089/datasnap/rest/tapi/GetFormasPagamento

CampoDescriçãoTipo
idId numérico da forma de pagamentoNumérico
descricaoDescrição da forma de pagamentoTexto
finalidade

Tipo da finalidade de pagamento

'DIN' = 'DINHEIRO'
'CHP' = 'CHEQUE PROPRIO'
'CH3' = 'CHEQUE TERCEIRO'
'DEP' = 'DEPOSITO'
'SDO' = 'SALDO DO CLIENTE'
'REP' = 'DEBITO AO REPRESENTANTE'
'PER' = 'PERDA'
'CRT' = 'CARTAO'
'FCH' = 'FICHA'
'PGM' = 'PAGAMENTO PELO MOTORISTA AO CLIENTE'
'MOT' = 'DEBITO AO MOTORISTA'
'DNI' = 'DEPOSITO NAO IDENTIFICADO'
'SAN' = 'SANGRIA'
'SUP' = 'SUPRIMENTO'
'BOL' = 'BOLETO'
'DUP' = 'DUPLICATA MERCANTIL'

Texto
descontoDesconto em %Decimal
ativoIndica de a forma está ativa no sistema (1 = Ativo | 0 = Inativo)Numérico



SetPedido

Este método é responsável pelo recebimento dos pedidos gerados externamente. Deve ser utilizado o POST para envio de um arquivo JSon em que nele deve estar contidas todas ai informações a respeito da venda (datas, valores, cliente, produtos, pagamento, etc).

O documento JSON deve obedecer o seguinte formato:


SeçãoCampoDescriçãoTipo

pedido

(Ocorrência 1:1)


idIdentificador do pedido no sistema de origem.Numérico
dtpedidoData de digitação do pedido.Data
dtentregaData de previsão de entrega do pedido.

Data


obsObservações gerais sobre o pedido.Texto
representanteCódigo do representante no pedido. Deve ser o mesmo código de representante do Guarani ERP. Se não informado, será utilizado o código parametrizado no Webservice.Numérico
obs_ped

Lista de observações do pedido. Suporta até 4 campos de 120 caracteres em formato array.

  • Sobrescreve o campo obs
  • Exemplo: "obs_ped":["OBS1","OBS2","OBS3","OBS4"]
  • Disponível a partir da versão Guarani 1489.184
Array de Texto

obs_nf

Lista de observações da Nota Fiscal. Suporta até 3 campos de 70caracteres em formato array.

  • Exemplo: "obs_nf":["NF1","NF2","NF3"]
  • Disponível a partir da versão Guarani 1489.184
Array de Texto

prazos

Lista de prazos em dias. Suporta até 12 campos de números inteiros em formato array.

  • Exemplo: "prazos":[12,60,90,120],
  • Disponível a partir da versão Guarani 1489.184
Array numérico

vrpedidoValor total do pedido.Decimal
vrfreteValor de frete do pedido.Decimal
vrdescontoValor em percentual do desconto do pedido.Decimal(15,2)

*Considerar duas casas decimais depois à direita.

tpfreteTipo do frete a ser utilizado ([C] CIF - [F] FOB - [S] CIF/FOB)Texto(1)
pagformaId da forma de pagamento. As formas são adquiridas no método GetFormasPagamentoNumérico
transpCódigo do transportador. Pode ser obtido no método GetTrasnportadoresNumérico

cliente

(Ocorrência 1:1)

idIdentificador do cliente no sistema de origem.Numérico
pessoaTipo de pessoa do cliente ([F] Física - [J] Jurídica).Texto(1)
razaoRazão social do cliente.Texto
fantasiaNome fantasia do cliente.Texto
cpfcnpjCPF ou CNPJ do cliente.Texto
rgieRG ou Inscrição Estadual do cliente.Texto
telefoneTelefone para contato.Texto
faxFax.Texto
emailE-mail para contato.Texto
emailnfE-mail para envio de notas Fiscais.Texto
enderecoEndereço do cliente.Texto
bairroBairro.Texto
cidadeCidade.Texto
ufUFTexto(2)
compComplemento do endereço.Texto
cepCEP do endereço.Texto
numeroNúmero do endereço.Texto

itens

(Ocorrência N:1)

IdIdentificado do item no sistema Guarani, utiliza-se a referência do produtoTexto
descricaoDescrição do ItemTexto
qtdQuantidade vendida no pedido. (Atenção em mandar o valor da embalagem, se a venda foi em embalagem ou em unidade caso contrário)Decimal
vrunitValor unitário do produto no pedidoDecimal
vtotalValor total dos produtos no pedido.Decimal
emb

Embalagem de venda, tipo retornado no método GetProdutos/GetprodutosFull nos campos em_venda ou un_venda. De forma simplificada, se o item foi vendido em embalagem deve ser informado o mesmo valor do campo em_venda, se unidade, informar o valor do campo un_venda.

*Se o valor for omitido será considerado 'UN';

Texto


  • Campos decimais devem obedecer o formato: 0.##;
  • Campos data devem obedecer o formato dd/mm/yyyy;

Exemplo de uma venda válida

{  
   "id":"16570",
   "dtpedido":"03/04/2018",
   "dtentrega":"",
   "obs":"",

   "obs_ped":["PD1","PD2","PD3","PD4"],
   "obs_nf":["NF1","NF2","NF3"],
   "prazos":[12,60,90,120],
   "vrpedido":213.29,
   "vrfrete":0.00,
   "vrdesconto":0.00,
   "cliente":{  
      "id":"540",
      "pessoa":"F",
      "razao":"CLIENTE TESTE DE COMPRA",
      "fantasia":"540",
      "cpfcnpj":"00000000000",
      "rgie":"",
      "telefone":"0000000000",
      "fax":" ",
      "email":"teste@outlook.com",
      "emailnf":"teste.nf@outlook.com",
      "endereco":"RUA AFONSO BOTELHO",
      "bairro":"CENTRO",
      "cidade":"SÃO CARLOS",
      "uf":"SP",
      "comp":"apto 82 torre3",
      "cep":"19997340",
      "numero":"313"
   },
   "itens":[  
      {  
         "id":"1676",
         "descricao":"Garfo Mesa Solin - 06 Unidades",
         "qtd":1,

         "emb":"PC/6",
         "vrunit":10.98,
         "vtotal":10.98,
      },
      {  
         "id":"1622",
         "descricao":"Faca Mesa Serrilhada Solin - 06 Unidades",
         "qtd":1,

         "emb":"UN",
         "vrunit":10.98,
         "vtotal":10.98
      },
      {  
         "id":"1355",
         "descricao":"Caneca Beer 360ML",
         "qtd":5,
         "vrunit":9.51,
         "vtotal":47.55
      },
      {  
         "id":"1784",
         "descricao":"Kit de Aventais - Bordô ",
         "qtd":1,
         "vrunit":75.73,
         "vtotal":75.73
      },
      {  
         "id":"1568",
         "descricao":"Espátula Curva 60MM Profissional ",
         "qtd":1,
         "vrunit":12.46,
         "vtotal":12.46
      },
      {  
         "id":"2042",
         "descricao":"Ralador 6 Faces Inox ",
         "qtd":1,
         "vrunit":17.62,
         "vtotal":17.62
      },
      {  
         "id":"2040",
         "descricao":"Ralador 1 Face Multifuncional",
         "qtd":1,
         "vrunit":8.77,
         "vtotal":8.77
      },
      {  
         "id":"2062",
         "descricao":"Saladeira Empilhavel 12CM",
         "qtd":4,
         "vrunit":7.30,
         "vtotal":29.20
      }
   ]
}


Exemplos de Códigos

Delphi

procedure GetProduto;
const
  API     = 'http://127.0.0.1:8089/datasnap/rest/Tapi/getprodutos/';
  USER = 'integration';
  PASS  = '123456';
var
  server: TIdHttp;
  str:       TStringStream;
  sku:     string;
begin
  sku := '36265';

  server := TIdHttp.Create(nil);
  try
    server.Request.Accept              := 'application/json';
    server.Request.ContentType     := 'application/json; charset=utf-8';
    server.Request.CharSet            := 'utf-8';
    server.Request.UserAgent        := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';

    server.Request.Authentication                   := TIdBasicAuthentication.Create;
    server.Request.BasicAuthentication          := True;
    server.Request.Authentication.Username := USER;
    server.Request.Authentication.Password  := PASS;
    server.HTTPOptions := [hoForceEncodeParams] + [hoInProcessAuth];

    str := TStringStream.Create('', TEncoding.UTF8);
    try
      try
        server.Get(API + sku, str);
        ShowMessage(str.DataString);
      except
        on E: Exception do
          raise Exception.Create('Erro no GET do objeto.' + #13 + E.Message);
      end;
    finally
      str.Free;
    end;
  finally
    server.Disconnect;
    server.Free;
  end;
end;











Related content

Web Service 2 Guarani
Web Service 2 Guarani
Read with this
Manuais Power B2B
Manuais Power B2B
Read with this

Guarani Sistemas - Todos os direitos reservados