Páginas filhas
  • API de Recepção de vendas B2B

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.xlsx



    Exemplo do envio da requisição:

    Body Request
    method: '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",
        "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"
            }
        ]
    }


    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": []
            }
        ]
    }








  • Sem rótulos