Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo
Pré-Requisitos
Adquirir junto a Plansyst o token conforme o tipo de integração para utilização dos WebServices.
Ambiente pré-instalado com IIS > 7.0 ( Somente caso o WebService seja instalado em um servidor do Cliente )
Especificações
1. Consulta de Cliente
2. Consulta de Produtos
a. Consulta de Produto(s) específico(s)
b. Consulta de Produtos por Data/Hora de alteração de Preço/Estoque
c. Consulta de Produtos por Data de Cadastro/Alteração.
3. Consulta de Tipos de Pagamento
4. Geração de Pedido de Venda
5. Consulta de XML da NFE de Venda
Regras e Definição
Em todos os WebServices disponíveis, deverá ser utilizado a formatação JSON (JavaScript Object Notation).
Deverá ser utilizado somente os métodos POST e GET, conforme cada WebService disponível.
Todos os elementos utilizados no Body da requisição deverão estar entre aspas, por exemplo, "Codigo", "CodCliente".
Todas as atribuições de valores para campos do Body devem utilizar o caractere : (por exemplo, "Codigo" : 1.9)
Caso haja necessidade de informar no Body objetos que possuam objetos filhos (por exemplo, campo "CNPJ" do objeto ClienteInfo), o objeto
principal (pai) deverá ser informado seguindo a formatação de exemplo a seguir :
'ClienteInfo':
{
"CNPJ":"999.999.999-99"
}
No caso de uma chamada simples, o Body da chamada seguiria a formatação conforme exemplo abaixo:
{
"Codigo": 66695.5
}
Importante
Todos as chamadas dos WebServices, devem obrigatoriamente informar no header da requisição as seguintes informações:
Authorization : Será composto por uma chave pública enviada pela Plansyst mais o símbolo @ e um hash MD5
gerado a partir de uma chave privada também disponibilizada pela Plansyst mais o body da requisição.
Exemplo
Chave pública - 89284699231717553692431954424984121268964762974254892665160
Body da requisição - {"ListaProd": "1.9", "CodCliente": "1234.5"}
Chave privada - 1111111111111111111111111111111111111111111
Calcular Hash MD5 da junção de Chave Privada + Body - 11111111111111111111111111111111111111
11111{"ListaProd": "1.9", "CodCliente": "1234.5"}
Hash Calculado - FFEDA47353B98342AB35F40CAC8B2249
Authorization - 89284699231717553692431954424984121268964762974254892665160@FFEDA47353B9
8342AB35F40CAC8B2249
Content-Type : com o formato application/json
A falta de uma destas informações no header da requisição fará com que a mesma seja rejeitada.
Para testes com a geração do Hash MD5 utilizando ferramentas de RestAPI atentar-se ao conteúdo do Body pois não podem conter
espaços nem quebra de linha para cálculo correto do hash. Em muitos casos o body é formatado em padrão JSON com espaçamentos
que para o cálculo não podem existir.
Caminho http://[URL]/api/v2/CancelaVenda
Cancela Pedido
{
"EmpresaInfo":{
"CNPJ": "11.222.333/4444-55"
},
"ClienteInfo": {
"CNPJ": "11.222.333/4444-55",
"Codigo": 123686.5
},
"NumeroPedido":"V0570005"
}
Caminho http://[URL]/api/v2/Cliente
Consulta de Cliente
Nome 60
Cidade 50
Bairro 60
Endereco 50
{ {
"Codigo" : 123456.3 , "Codigo" : 0.0 ,
"CPF_CNPJ" : "123.456.789-00" , "CPF_CNPJ" : null ,
"Status" : "Cliente não cadastrado."
"Status" : "Sucesso" }
}
Caminho http://[URL]/api/v2/Produto
{
"ListaProd": "1.9;2.7",
{ "CodCliente": "1234.5",
"Codigo": "1.9", "EmpresaInfo": {
"CodCliente": "1234.5", "CNPJ": "11.111.111/0001-01"
"EmpresaInfo": { }
"CNPJ": "11.111.111/0001-01" }
}
}
Retorno Retorno
[
{
"Codigo" : 1.9 ,
"NumeroFabrica" : "R9999" ,
"Estoque" : 999 .0 ,
"Preco" : 100.88,
}
]
Caminho http://[URL]/api/v2/ProdutoFoto
{
"ListaProd": "1.9;2.7",
{ "CodCliente": "1234.5",
"Codigo": "1.9", "EmpresaInfo": {
"CodCliente": "1234.5", "CNPJ": "11.111.111/0001-01"
"EmpresaInfo": { }
"CNPJ": "11.111.111/0001-01" }
}
}
Retorno Retorno
"Fotos": [},
"Codigo":2.7 ,
"NumeroFabrica" : "R9998" ,
"Estoque": 0.0,
"Preco": 0.0,
"ModeloAno": null,
"CodBarras": null,
"Dimensoes": null,
"Titulo": null,
"Descricao": null,
"Categoria": null
}
]
Caminho http://[URL]/api/v2/ListaProdutosMovHora
{
"CodCliente": "1234.5",
"EmpresaInfo": {
"CNPJ": "11.111.111/0001-01"
},
"DtUltMovEstPco": "2020-10-14T16:00:00"
}
Na requisição acima, será consultado todas as peças que possuem data/hora de alteração de estoque/preço maior ou igual a 14/10/2020 16:00:
00. Significa que todas as peças que após esta data/hora mencionada, tiveram alguma movimentação ou alteração de preço serão retornadas
nesta API.
Retorno
"Estoque" : 0.0 ,
"Preco" : 139.21 ,
"ModeloAno" : [],
"CodBarras" : null
}
]
Caminho http://[URL]/api/v2/ProdutosDtCad
{
"CodCliente": "1234.5",
"EmpresaInfo": {
"CNPJ": "11.111.111/0001-01"
},
"DtCadastro": "2020-01-01T16:00:00",
"Pagina": 1,
"QtdReg": 10
}
Na requisição acima, serão pesquisados todos os produtos com data de cadastramento ou alteração cadastral a partir de 01/01/2020.
Retorno
"Estoque" : 100.0 ,
"Preco" : 0.0 ,
"ModeloAno" : [],
"CodBarras" : null
},
{
"Codigo" : 2.7 ,
"NumeroFabrica" : "BBBBBB" ,
"DataCadastro" : "03/01/2020" ,
"Estoque" : 106.0 ,
"Preco" : 10.7 ,
"ModeloAno" : [],
"CodBarras" : null
},
{
"Codigo" : 3.5 ,
"NumeroFabrica" : "CCCCCC" ,
"DataCadastro" : "29/01/2020" ,
"Estoque" : 0.0 ,
"Preco" : 139.21 ,
"ModeloAno" : [],
"CodBarras" : null
},
{
"Codigo" : 4.3 ,
"NumeroFabrica" : "DDDDDD" ,
"DataCadastro" : "03/03/2020" ,
"Estoque" : 0.0 ,
"Preco" : 0.0 ,
"ModeloAno" : [],
"CodBarras" : null
},
{
"Codigo" : 5.1 ,
"NumeroFabrica" : "EEEEEE" ,
"DataCadastro" : "26/02/2020" ,
"Estoque" : 5.0 ,
"Preco" : 15.0 ,
"ModeloAno" : [],
"CodBarras" : null
}
]
Caminho http://[URL]/api/v2/TipoPagamento
[
{
"Codigo": 403,
"Descricao": "E-COMMERCE CARTÃO CRÉDITO",
"UtilizaECommerce": 1
},
{
"Codigo": 404,
"Descricao": "E-COMMERCE CARTÃO DEBITO",
"UtilizaECommerce": 1
},
{
"Codigo": 405,
"Descricao": "E-COMMERCE BOLETO BANCÁRIO",
"UtilizaECommerce": 1
}
]
Caminho http://[URL]/api/v2/RetornaXML
{
"EmpresaInfo": {"CNPJ": "11.222.333/4444-55"},
"Pedido": "U1000001"
}
Caminho http://[URL]/api/v2/GeraVenda
Empresa
Informar o CNPJ da empresa onde será gerado o pedido de venda, utilizando o objeto "EmpresaInfo" e "CNPJ". Exemplo : "Em
presaInfo": {"CNPJ": "11.222.333/4444-55"}
ClienteInfo
Informar o CPF/CNPJ e Codigo do cliente e seu código já previamente cadastrado na Plansyst. Se informado um CPF ou
CNPJ não cadastrado, o processo de venda não será concluído. Neste caso será necessário enviar primeiramente o
cadastramento do cliente para posteriormente reenviar o pedido de venda.
Transp
Informar o Codigo da Transportadora já previamente cadastrado na Plansyst. Se informado um código não cadastrado, o
processo de venda não será concluído. Caso não tenha transportadora, não enviar esta TAG.
FormaPagamento
Informar a forma de pagamento utilizada na venda.
O código do tipo de pagamento obrigatoriamente deverá existir no Sistema Plansyst, sendo este carregado para o E-
Commerce pelo WebService de tipos de pagamento.
Se informado um tipo de pagamento inválido o processo de venda não será concluído.
Utilizar a estrutura conforme exemplo abaixo :
'FormaPagamento':
{
"Codigo" : 407
},
Neste elemento o mesmo deve ser informado com valor Inteiro .
NumPedCliente - Campo disponível para informar apenas 1 Número do Pedido do Cliente com até 8 dígitos que será enviado no XML
da venda, no campo XPED, podendo quando necessário vincular um número de pedido interno com o pedido gerado no Plansyst. Este
número de pedido será atribuído a todos os itens enviados na Venda.
Produtos
CodigProduto (Código do produto, por exemplo 1.9) - Utilizar . (ponto) e não , (vírgula)
Quantidade (Quantidade vendida)
PrecoVenda (Preço unitário do item conforme enviado no WebService de Produtos )
VlFinal (preço total do item na venda (PrecoVenda * Quantidade)
Este array conterá as informações dos produtos referente ao pedido de venda realizado.
Se este array não for informado, o pedido não será processado.
É obrigatório que a cada produto informado, inicie o array de Produtos da seguinte forma :
'Produtos':[
{
}]
Dentro de cada array de Produtos, deverá obrigatoriamente conter :
Totais
Informações das totalizações dos itens. Campos disponíveis :
ValorFrete (Valor total do frete na venda) - Informar 0 caso não tenha
ValorProduto (Valor total dos produtos na venda)
DescontoTotal (Valor total dos descontos na venda) - Informar 0 caso não tenha
ValorLiquido (Valor líquido da venda (Valor dos Produtos + ValorFrete - DescontoTotal)
DadosPagamento (Dependendo o formato da integração utilizada, este bloco pode não ser obrigatório)
Informações referentes ao pagamento de cartão, boleto, etc.
NSU
Autorizacao
QtdParcelas
Requisição de Venda
{
"NumeroPedido": "U3010001",
"StatusRetorno": "Pedido U3010001 gerado com sucesso."
}
{
"NumeroPedido": "",
"StatusRetorno": "ERRO: Código de Pagamento informado não cadastrado."
}
Qualquer erro retornado virá com o NumeroPedido em branco e o StatusRetorno iniciado com ERRO:
Sempre que o NumeroPedido estiver preenchido, o pedido foi gerado com sucesso.