Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

...

...

...

e
View file
nameentidade.json

...

Objetivo

Detalhar o uso de API de Vendas no Sispetro.

Uso Geral

Obter token autenticação

Introdução

Qualquer webservice do projeto SispetroWeb exigirá um token de autenticação. Este token é gerado a partir deste webservice e será válido por 24 horas. Assim, recomendamos que o sistema consumidor dos webservices aqui descritos salvem o token armazenando também a data e hora em que ele foi gerado para que, quando chegar próximo de sua validade, seja obtido novo token.

Para mais informações, ver Documentação - API Obtenção de Token

Métodos do setor de Vendas

1. Inclusão/Alteração de Pedido de Venda

Introdução

Este webservice tem por finalidade a inclusão ou alteração de UM pedido de venda na empresa conectada ao token obtido no passo anterior.

Endereço
  • Inclusão: <endereço do SispetroWeb>/pedido_venda

  • Alteração: <endereço do SispetroWeb>/pedido_venda/<ID do Pedido>

Parâmetros

Será necessário enviar um header com o token e no corpo do webservice (body) os dados relativos ao pedido que se deseja incluir.

...

Chave

Conteudo

Pai

Obrigatório

pedido_venda

fixo

-

Sim

id

id do pedido (caso alteração)

pedido_venda

Se edição, é obrigatório. Se inclusão, deixar null ou não enviar.

CodEnt

Código do Cliente

pedido_venda

Sim

CodPg

Código da Condição de Pagamento escolhida

pedido_venda

Sim

RetiraEntrega

"R" para pedidos do tipo RETIRA (cliente irá providenciar frete) ou "E" para pedidos do tipo ENTREGA (empresa irá enviar pedido por sua conta cobrando frete)

pedido_venda

Sim

CodTransp

Código da Transportadora escolhida 

pedido_venda

Sim

SeqFrota

Código do veículo escolhido

pedido_venda

Sim

DepositoPadrao

Código do depósito de onde o produto foi vendido

pedido_venda

Sim

DtPrevFat

Data de Entrega do Pedido no formato YYYY-MM-DD (2020-12-25 por exemplo)

pedido_venda

Sim

Segurado

Se pedido foi segurado ou não. 0 = não, 1 = sim

pedido_venda

Sim

ObsLongo

Observações genéricas no pedido

pedido_venda

Não

SeqContrato

Número do Contrato de Venda se houver

pedido_venda

Não

RefPed

Número de Referência do Pedido de uso livre.

pedido_venda

Não

CdTpCobr

Código do Tipo de Cobrança. Se não informado será usado o Tipo de Cobrança vinculado ao Cliente.

pedido_venda

Não

Vendedor

Código do Vendedor. Se não informado será usado o Código do Vendedor vinculado ao Cliente.

pedido_venda

Não

CdPrefEnt

Código do Endereço Preferencial de Entrega. Se não informado será usado o Endereço de Entrega configurado para o Cliente.

pedido_venda

Não

CdPrefFat

Código do Endereço Preferencial de Faturamento. Se não informado será usado o Endereço de faturamento configurado para o Cliente.

pedido_venda

Não

CdPrefCob

Código do Endereço Preferencial de Cobrança. Se não informado será usado o Endereço de Cobrança configurado para o Cliente.

pedido_venda

Não

itensPedido

fixo. Matriz contendo os itens do pedido

pedido_venda

Sim

id

id do item do pedido (somente edição)

itensPedido

Sim, se edição. Se inclusão, enviar null ou não enviar

CodEntFaturada

Código do cliente faturado caso seja diferente do cliente do pedido. Igualar ao cliente do pedido caso sejam iguais.

itensPedido

Sim

CodProd

Código do Produto 

itensPedido

Sim

Qtde

Quantidade movimentada

itensPedido

Sim

PrecoCIF

Valor unitário do produto considerando frete e seguro

itensPedido

Sim

FreteUnitReal

Valor unitário do frete

itensPedido

Sim

Seguro_Aliquota

Valor percentual do seguro

itensPedido

Não

PrecoFOB

Preço de Tabela. Se não informado será usado o preço de tabela configurado para o depósito/cliente/produto.

itensPedido

Não

versao_retorno_api

0 = padrão (layout do registro), 1 = versão estendida com dados de NF, etc

pedido_venda

Não

salva_custo

0 = não salva custo (padrão), 1 = calcula e salva o custo total em cada item do pedido

pedido_venda

Não

Método
  • Inclusão: POST

  • Alteração: PUT

Exemplo de arquivo JSON em

View file
nameinclusao_pedido.json

Exemplo de chamada de WebService
Bloco de código
# alteração
curl  
-H 'Content-Type: application/json' 
-H 'Accept: application/json' 
-H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjo4NCwiY25waiI6IjAwLjAwMC4wMDAvMDAwMC0wMSIsImRlcG9zaXRvX3BhZHJhbyI6bnVsbCwiZXhwIjoxNzE3NzY3NDAyfQ.j_CChFzlGOMkfvQ1psP8gaxZiKQ8yiD1pJnyVeUWkg0' 
-X PUT http://localhost/pedido_venda/55631 -d @inclusao_pedido.json

# inclusão
curl  
-H 'Content-Type: application/json' 
-H 'Accept: application/json' 
-H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjo4NCwiY25waiI6IjAwLjAwMC4wMDAvMDAwMC0wMSIsImRlcG9zaXRvX3BhZHJhbyI6bnVsbCwiZXhwIjoxNzE3NzY3NDAyfQ.j_CChFzlGOMkfvQ1psP8gaxZiKQ8yiD1pJnyVeUWkg0' 
-X POST http://localhost/pedido_venda -d @inclusao_pedido.json
Retorno Bem Sucedido

Serão retornados todos os dados relativos ao Pedido de Venda incluído com sucesso. O status da resposta sempre será 200. 

...

Exemplo de arquivo em

View file
namepedido_retorno.json

Exemplo de retorno de WebService
Bloco de código
  {
    "pedido_venda": {
        "CodEmpresa": 1,
        "NumPed": 34613,
        "CodEnt": 1,
        "RefPed": "teste",
        "DataPed": "2023-11-27T10:14:27.000+00:00",
        "Usuario": "FUTURA",
        "StatusPedido": "R",
        "ValFrete": "0.0",
        "CodTpCobr": "46",
        "ValPedido": "20913.0",
        "DtPrevFat": "2023-11-27",
        "CodTransp": "00032",
        "Vendedor": "0001",
        "StatusFat": "T",
        "RazaoSocial": "DEMO DISTRIBUIDORA LTDA",
        "LibFinancEm": "2023-11-27T10:14:27.000+00:00",
        "QtdeSeparada": "0.0",
        "EnderecoCobranca": "Rua Carvalho",
        "BairroCobranca": "Pinheiros",
        "CEPCobranca": "05424-020",
        "MunicipioCobranca": "SAO PAULO",
        "UFCobranca": "SP",
        "EnderecoEntrega": "Rua Carvalho",
        "BairroEntrega": "Pinheiros",
        "CEPEntrega": "05424-020",
        "MunicipioEntrega": "SAO PAULO",
        "UFEntrega": "SP",
        "EnderecoFat": "Rua Carvalho",
        "BairroFat": "Pinheiros",
        "CEPFat": "05424-020",
        "MunicipioFat": "SAO PAULO",
        "UFFat": "SP",
        "CodPg": "998",
        "ObsLongo": null,
        "RetiraEntrega": "R",
        "Aprovado": 1,
        "DepositoPadrao": "1",
        "PrazoPagto": 10,
        "segurado": 0,
        "Documento": "07.452.833/0011-04",
        "SeqFrota": 4,
        "SeqContrato": null,
        "VendaDireta": 0,
        "NumeroEntrega": "64",
        "NumeroCobranca": "64",
        "NumeroFat": "64",
        "Seguro_Perfil": 2,
        "web_origem_pedido": 0,
        "id": 55561,
        "TipoOperacao": 1,
        "IDTabelaPreco": 87,
        "item_pedido": [
            {
                "CodProd": "01",
                "Qtde": "15000.0",
                "PrecoCIF": "1.3942",
                "QtdeFaturada": "15000.0",
                "PercDesconto": "0.0",
                "CodEntFaturada": 1,
                "FreteUnitPadrao": "0.0",
                "FreteUnitReal": "0.0",
                "PrecoTabela": "1.3942",
                "Custo": "27572.64",
                "Seguro_Aliquota": "0.0",
                "Seguro_ValUnitario": "0.0",
                "id": 56713,
                "entidade": {
                    "RzSocial": "DEMO DISTRIBUIDORA LTDA",
                    "CGC": "07.452.833/0011-04",
                    "SeqTipo": 1,
                    "IDRegiaoVendas": 1,
                    "DescricaoTipoCliente": "NORMAL"
                }
            }
        ],
        "nota_fiscal": [
            {
                "id_pedido": 55561,
                "NumeroNF": 33397,
                "DataNF": "2023-11-27",
                "ValNF": "26163.0",
                "CodNatOp": "V02",
                "TipoPedido": "VD",
                "ChaveAcesso": "35231103980754000305551030000333971631236090",
                "id_itemnf": 41888,
                "id_nf": 40111,
                "NumPed": 34613,
                "CodEmpresa": 1,
                "CodProd": "01",
                "Descricao": "GASOLINA C ",
                "qtde": "15000.0",
                "ValorTotal": "26163.0",
                "PrecoReal": "1.7442"
            }
        ],
        "NomeUsualEmpresa": "BASE DEMO"
    }
}
Retorno Sem Sucesso

Será retornado um objeto JSON com o motivo da não inclusão (poderá ser um erro de autenticação caso o token tenha expirado ou seja inválido ou alguma regra de negócio não atendida. O status da resposta sempre será diferente de 200.

Bloco de código
{"error":"Frota deve ser preenchido e valido","status":422}

2. Dados de venda de cliente

Introdução

Este webservice tem por finalidade obter os dados para venda a UM determinado cliente/produto.

Endereço

<endereço do SispetroWeb>/entidade/get_dados_venda_api

Parâmetros

Será necessário enviar um header com o token e no corpo do webservice (body) os dados relativos à venda para busca de preços.

...

Item

Chave

Conteúdo

Obrigatório

1

codEnt

Código da Entidade que se deseja os dados

Sim

2

codEmpresa

Código da Empresa onde ocorrerá a venda

Sim

3

dtPrevFat

Data prevista para Faturamento (devido vigência de preços). Formato: dd/mm/yyyy

Não. Se não informada será considerada a data atual.

4

retiraEntrega

E ou R para indicar se é retira ou entrega

Não. Se não informado será considerado como Retira.

5

codDep

Código do Depósito onde ocorrerá a venda.

Não. Se não informado será considerado o depósito padrão de vendas da empresa.

6

codTransp

Código do Motorista

Não. Se não informado será considerado o Motorista vinculado ao cliente.

7

seqFrota

Sequencial do frota principal

Não. Se não informado será considerado o Frota vinculado ao cliente.

8

codProd

Código do produto

Opcional, se passar, calcula somente para o produto. Caso contrário, calcula para todos os produtos de venda do cliente.

9

codPg

Código das condições de pagamento.

Opcional, se passar, calcula para essa condição de pagamento, caso contrário, calcula para a condição de pagamento padrão do cliente.

Método

GET

Exemplo de envio:

View file
namedados_preco.json
. Exemplo de retorno:
View file
nameretorno_dados_venda.json

Exemplo de chamada de WebService
Bloco de código
curl --location 'http://localhost/entidade/get_dados_venda_api
-d @dados_preco.json
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjo4NCwiY25waiI6IjAwLjAwMC4wMDAvMDAwMC0wMSIsImRlcG9zaXRvX3BhZHJhbyI6bnVsbCwiZXhwIjoxNzE3NzY3NDAyfQ.j_CChFzlGOMkfvQ1psP8gaxZiKQ8yiD1pJnyVeUWkg0'
Retorno Bem Sucedido

Serão retornados todos os dados necessários para fazer uma venda para o cliente e produto informados. O status da resposta sempre será 200.

Chave

Conteudo

Pai

CodEnt

Código do Cliente

CodEmpresa

Código da empresa

CodDep

Código do depósito considerado

DtPrevFat

Data prevista do faturamento considerada

RetiraEntrega

Indica se foi considerado Retira ou Entrega

CodTransp

Motorista para o qual foi considerado o frete

SeqFrota

Frota para o qual foi considerado o frete

CodPgCli

Código da Condição de Pagamento do Cliente

PrazoCli

Prazo da Condição de Pagamento do Cliente

precos

list

CodProd

Código do Produto

precos

CodPgProd

Código da Condição de Pagamento considerada para o produto

precos

Preco

Preço sugestão (já somado com Custo Financeiro)

precos

PrecoMinimo

Preço mínimo (já somado com Custo Financeiro)

precos

PrecoMaximo

Preço mínimo (já somado com Custo Financeiro)

precos

PrecoMinimoAvista

Preço mínimo a vista (conforme tabela de preços)

precos

CustoFinancReal

Custo Financeiro calculado a partir da Condições de Pagamento ou do cliente

precos

Seguro_Aliquota

Alíquota do Seguro (será sempre calculado independente do Pedido ser segurado)

precos

Seguro_ValUnitario

Valor unitário do Seguro (será sempre calculado independente do Pedido ser segurado)

precos

FreteUnitPadrao

Frete unitário padrão

precos

Custo

Custo de Vendas total desse item.

precos

endereco_entrega

grupo

Endereco

Endereço de Entrega 

endereco_entrega

Numero

Número do Endereço de Entrega 

endereco_entrega

Complemento

Complemento do Endereço de Entrega

endereco_entrega

Bairro

Bairro da Entrega

endereco_entrega

CodigoDNC

Código IBGE do Município de Entrega 

endereco_entrega

Municipio

Descrição do Município de Entrega 

endereco_entrega

UF

UF de Entrega

endereco_entrega

CEP

CEP da Entrega 

endereco_entrega

CodPais

Código do País

endereco_entrega

Latitude

Latitude

endereco_entrega

Longitude

Longitude

endereco_entrega

Fone

Telefone

endereco_entrega

CNPJ

CNPJ do Endereço

endereco_entrega

IE

IE do Endereço

endereco_entrega

RzSocial

Razão Social do Endereço

endereco_entrega

Exemplo de retorno de WebService
Bloco de código
 {
    "dadosVenda": [
        {
            "CodPgProd": "998",
            "CodProd": "01",
            "Custo": 1.843334,
            "CustoFinancReal": 0.2,
            "EnderecoEntrega": "fgdfgfd,  -  - / - ",
            "FreteUnitReal": 0,
            "Preco": 1.91,
            "PrecoMaximo": -1,
            "PrecoMinimo": -1,
            "Produto": "GASOLINA C",
            "Seguro_Aliquota": 10,
            "Seguro_ValorUnitario": 0.191
        }
    ],
    "CodEnt": 1,
    "CodEmpresa": 1,
    "CodDep": "1",
    "DtPrevFat": "2024-08-21",
    "RetiraEntrega": "R",
    "CodTransp": "00032",
    "SeqFrota": 772,
    "CodPgCli": "998",
    "PrazoCli": 10,
    "endereco_entrega": {
        "Endereco": "fgdfgfd",
        "Numero": null,
        "Complemento": null,
        "Bairro": null,
        "CodigoDNC": null,
        "Municipio": null,
        "UF": null,
        "CEP": null,
        "CodPais": null,
        "Latitude": null,
        "Longitude": null,
        "Fone": null,
        "CNPJ": "12764122000133",
        "IE": null,
        "RzSocial": "DEMO DISTRIBUIDORA LTDA"
    }
}
Retorno Sem Sucesso

Será retornado um objeto JSON com o motivo da falha (normalmente  um erro de autenticação caso o token tenha expirado ou seja inválido ou alguma regra de negócio não atendida. O status da resposta sempre será diferente de 200.

Bloco de código
{
    "error": "Unauthorized",
    "status": 401
}

3. Pedidos de Venda alterados

Introdução

Este webservice tem por finalidade obter os pedidos a partir de uma Data e hora.

Endereço

<endereço do SispetroWeb>/pedido_venda/pedidos_alterados

Parâmetros

Será necessário enviar um header com o token. Como parâmetros enviar:

...

Nome

Descritivo

Exemplo

Observações

Authorization

Conteúdo do token obtido no passo de autenticação do usuário

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjozMiwiY25waiI6IjAxLjgwNC4zNDUvMDAwMS02MCIsImV4cCI6MTUwMDA1MzYxN30.-ZvhWFYI8fyx66b3kZY1UVUrfaWUTioV3_M6K2wiPGM


Content-Type

tipo do formato de envio

application/json


Accept

tipo do formato de envio

application/json


Método

GET

Exemplo de chamada de WebService
Bloco de código
curl -X GET -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjo4NCwiY25waiI6IjAwLjAwMC4wMDAvMDAwMC0wMSIsImRlcG9zaXRvX3BhZHJhbyI6bnVsbCwiZXhwIjoxNzE3NzY3NDAyfQ.j_CChFzlGOMkfvQ1psP8gaxZiKQ8yiD1pJnyVeUWkg0'
http://localhost/pedidos_alterados\?data_hora_inicial\=2024-01-01%2010:00
Retorno Bem Sucedido

Serão retornados todos os dados relativos aos pedidos alterados a partir da data/hora informada. O status da resposta sempre será 200. 

...

Item

Chave

Conteudo

Pai

1

IDPedido

Código da entidade alterada ou excluída

2

FlagOperacao

I = inclusão, U = alteração ou E = exclusão

3

pedido_venda

mesmo layout de retorno de um pedido https://futura.atlassian.net/wiki/spaces/ESP/pages/4691329025/API+para+Vendas#1.-Inclus%C3%A3o-Pedido-de-Venda

Nota

Se o flagOperação for igual a 'E' (exclusão), não retorna a estrutura pedido_venda.

Retorno Sem Sucesso

Será retornado um objeto JSON com o motivo da falha (normalmente  um erro de autenticação caso o token tenha expirado ou seja inválido ou alguma regra de negócio não atendida. O status da resposta sempre será diferente de 200.

Bloco de código
{
    "error": "Unauthorized",
    "status": 401
}

4. Cancelamento do Pedido de Venda

Introdução

Este webservice tem por finalidade executar o cancelamento de um pedido de venda.

Endereço

<endereço do SispetroWeb>/pedido_venda/<ID do pedido>

Parâmetros

Será necessário enviar um header com o token. Como parâmetros enviar:

...

Nome

Descritivo

Exemplo

Observações

Authorization

Conteúdo do token obtido no passo de autenticação do usuário

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjozMiwiY25waiI6IjAxLjgwNC4zNDUvMDAwMS02MCIsImV4cCI6MTUwMDA1MzYxN30.-ZvhWFYI8fyx66b3kZY1UVUrfaWUTioV3_M6K2wiPGM

Content-Type

tipo do formato de envio

application/json

Accept

tipo do formato de envio

application/json

Método

DELETE

Exemplo de chamada de WebService
Bloco de código
 curl  
-H 'Content-Type: application/json' 
-H 'Accept: application/json' 
-H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjo4NCwiY25waiI6IjAwLjAwMC4wMDAvMDAwMC0wMSIsImRlcG9zaXRvX3BhZHJhbyI6bnVsbCwiZXhwIjoxNzE3NzY3NDAyfQ.j_CChFzlGOMkfvQ1psP8gaxZiKQ8yiD1pJnyVeUWkg0' 
-X DELETE http://localhost:3000/pedido_venda/55631?versao_retorno_api=1
Retorno Bem Sucedido

Será retornada todos os dados relativos ao Pedido de Venda cancelado com sucesso conforme layout do retorno de https://futura.atlassian.net/wiki/spaces/ESP/pages/4691329025/API+para+Vendas#1.-Inclus%C3%A3o-Pedido-de-Venda . O status da resposta sempre será 200. 

Retorno Sem Sucesso

Será retornado um objeto JSON com o motivo da não alteração (poderá ser um erro de autenticação caso o token tenha expirado ou seja inválido ou alguma regra de negócio não atendida. O status da resposta sempre será diferente de 200.

...