...
...
...
...
e
View file | ||
---|---|---|
|
...
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 | ||
---|---|---|
|
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 | ||
---|---|---|
|
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 | ||
---|---|---|
|
View file | ||
---|---|---|
|
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
|
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.
...