Objetivo
Este documento tem como objetivo explicar o funcionamento da integração da API de Recepção de Vendas
Pré-Requisitos e Restrições
- Necessário a instalação do serviço winthor-venda. Para realizar a instalação desse serviço, segue link com as devidas explicações:
Comece por aqui -> Parametrizações WTA
POST /winthor/venda/v0/importar-venda?ignoraProcessamento=false
A API de Recepção de Vendas executa os seguintes passos em sua execução:
- Insere os dados do JSON de request na tabela PCPEDCFV
- Insere os dados do JSON de request na tabela PCPEDIFV
Caso o query param ignoraProcessamento seja passado como false, após a inserção, a API faz uma chamada a package INTEGRADORA.IMPORTARPEDIDO.
Se o query param ignoraProcessamento seja passado como true, essa etapa será ignorada e a API apenas ira fazer a inserção nas tabelas PCPEDCFV e PCPEDIFV.
Exemplos de uso da API:
-
A integração consiste em Importar dados de venda
Os dados integrados são os presentes nesse anexo, onde temos o nome dos campos bem como tipo do dado, tamanho e se o dado é ou não obrigatório.
Doc campos de request API de Importação de Vendas B2B.xlsxExemplo do envio da requisição:
Body Requestmethod: 'POST' url: '/winthor/venda/v0/importar-venda?ignoraProcessamento=false' Exemplo de JSON de request: { "numPedRca": "123456789", "codUsur": "987654321", "cgcCli": "123456789", "codFilial": "12", "codCob": "1234", "condVenda": "1234", "origemPed": "1", "codPlPag": "1234", "dtAberturaPedPalm": "2024-01-01T00:00:00", "dtfechamentopedpalm": "2024-01-01T00:00:00", "numPedVanXml": "12345678901234567890", "numPedCli": "123456789012345", "codCli": "123456789", "codFilialNf": "12", "obs1": "Lorem ipsum dolor sit amet", "obs2": "Lorem ipsum dolor sit amet", "obsEntrega1": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", "obsEntrega2": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", "tipoFv": "12", "codPlPagEtico": "1234", "codPlPagGenerico": "1234", "dtentrega": "2024-01-01T00:00:00", "codfilialretira": "12", "vlfrete": "1234567890123456789", "obsentrega3": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", "obsentrega4": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", "freteDespacho": "1", "freteredespacho": "1", "codfornecfrete": "123456", "prazo1": "1234", "prazo2": "1234", "prazo3": "1234", "prazo4": "1234", "prazo5": "1234", "prazo6": "1234", "prazo7": "1234", "prazo8": "1234", "prazo9": "1234", "prazo10": "1234", "prazo11": "1234", "prazo12": "1234", "numpedcomp": "1234567890", "numpedorigem": "1234567890", "codclinf": "123456789", "tipodocumento": "1", "contaordem": "1", "codclitv8": "123456789", "codmotorista": "12345678", "tipoprioridadeentrega": "1", "codmotivonaoatend": "123", "localdesembaraco": "Lorem ipsum dolor sit amet", "ufdesembaraco": "AB", "percdescabatimento": "1234567890123456789012345", "numpedtv1": "1234567890", "codrota": "123", "custobonificacao": "1", "codfornecbonific": "123456", "codbnf": "1234", "agrupamento": "1", "turnoentrega": "12345", "codendent": "123456", "vlentrada": "1234567890123456789", "orcamento": "1", "codendentcli": "123456", "tipoemissao": "1", "protocolo": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", "contingenciatv14": "1", "chavenfe": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", "numpedtv14": "1234567890", "pvendasemimposto": "1", "codclirecebedor": "123456789", "vldescabatimento": "1234567890123456789012345", "numregiaobroker": "1234", "codusur2": "9876", "codusur3": "9876", "codusur4": "9876", "vendaassistida": "1", "gerardadosnfpaulista": "1", "precocompartilha": "1", "uidregistro": "1234567890", "idparceiro": "123456789012345", "assinatura": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", "vendatriangular": "1", "pagchequemoradia": "1", "condfinanc": "123456789", "planosuppli": "12", "codbrex": "123456", "codemitente": "1234567890", "gerabrinde": "1", "aplicarperredcomiss": "1", "descintermediador": "Lorem ipsum dolor sit amet", "cnpjintermediador": "12345678901234567890", "opervendaexpindireta": "1", "precofvsemfiguraexc": "1", "geracp": "1", "idFv":"f456f78g99h8765432100123456789987654321001234567899876543210", "items": [ { "numPedRca": "123456789", "pvenda": "123456789", "codUsur": "987654321", "cgcCli": "123456789", "dtAberturaPedPalm": "2024-01-01T00:00:00", "numSeq": "123456789", "codProd": "123456789", "qt": "123456789", "codAuxiliar": "123456789", "codProdOl": "123456789", "percDescEdi": "123456789", "codAuxiliarOperLog": "123456789", "codFilialRetira": "12", "unidadeFrios": "teste", "bonific": "teste", "codCombo": "123456789", "politicaPrioritaria": "teste", "codMotivoNaoAtend": "123", "perDescBoleto": "123456789", "sugestao": "teste", "tipoEntrega": "te", "tipoTv11": "t", "usaUnidadeMaster": "t", "vlBasePartDest": "1234567890123456789012345", "aliqFcp": "1234567890123456789012345", "aliqInternaDest": "1234567890123456789012345", "vlFcpPart": "1234567890123456789012345", "vlIcmsPartDest": "1234567890123456789012345", "vlIcmsPart": "1234567890123456789012345", "percProvPart": "123456789", "vlIcmsDifAliqPart": "123456789012345678901234567890", "percBaseRedPart": "123456789", "vlIcmsPartRem": "1234567890123456789012345", "aliqInterOrigPart": "1234567890123456789012345", "codDescontoSimulador": "12345678", "devolucaoCarcaca": "t", "vlDescCarcaca": "1234567890123456789012345", "tipoCombo": "t", "movimentaContaCorrenteRca": "t", "vlBaseFcpIcms": "1234567890123456789012345", "vlBaseFcpSt": "1234567890123456789012345", "vlBcFcpStRet": "1234567890123456789012345", "perFcpStRet": "12345678901234567", "vlFcpStRet": "1234567890123456789012345", "perFcpSn": "123456789012345678", "vlCredFcpIcmsSn": "1234567890123456789012345", "vlFecp": "1234567890123456789012345", "vlAcrescimoFuncEp": "1234567890123456789012345", "perAcrescimoFuncEp": "12345678901234567", "aliqIcmsFecp": "12345678901234567", "perRedComiss": "1234567890123456789012345", "numPedCli": "1234567890", "numItemPed": "12345678", "codDesconto": "12345678", "dtEntrega": "2024-01-01T00:00:00", "respQuestFrete": "t", "usaCashback": "t", "idFv":"f456f78g99h8765432100123456789987654321001234567899876543210" } ] }
Exemplo JSON da resposta de importação feita com sucesso, contendo o feedback de cabeçalho importado, quantidade de itens importado, e se a venda foi processada através da chamada a package INTEGRADORA
Body Response{ "cabImportado": true, "ItensImportados": 1, "vendaProcessada": true }
Os campos uidregistro e idparceiro são chaves, e resultarão em erro caso sejam informado dados nesses campos que já existam na base de dados.
Exemplo JSON da resposta de erro de Importação de venda duplicada,Body Response{ "code": "UNK-ERR", "message": "Erro de Requisição", "detailedMessage": "Erro de duplicidade ao importar venda.", "details": [] }
Caso algum campo esteja fora de conformidade com relação a tipo e tamanho de dados, a API lançará um erro, conforme exemplo, para cada campo inválido
Exemplo JSON da resposta de erro de Importação de venda com campos inválidos,Body Response{ "code": "WT-PV-000000", "message": "Erro ao validar itens", "detailedMessage": "Lista de validações em details", "details": [ { "code": "WT-PV-000264", "message": "Tipo de dado informado é inválido", "detailedMessage": "O tipo de dado esperado era Numérico, porém foi informado String", "details": [] }, { "code": "WT-PV-000265", "message": "Tamanho do campo informado é maior que o permitido", "detailedMessage": "O tamanho informado no campo codFilial é maior que o permitido. O tamanho máximo é de 2", "details": [] } ] }