Faturamento de Pedidos

Regras de negócio

Para finalizar uma venda, o pedido de vendas precisa ser faturado, ou seja, transformado em nota fiscal ou Ordem de Entrega.
O conceito prático de faturamento, consiste em transformar um pedido de venda em uma nota fiscal de Venda; porém, na passagem de um orçamento para um pedido de venda, pode-se entender que também houve um faturamento, mas não com as mesmas validações mencionadas acima.
Vale ressaltar que, os comportamentos citados, poderão variar de acordo com o processo de cada empresa.
OBS: Caso tenha alguma necessidade de configuração do ERP procure “Consultor” ou acesso o link de apoio:
https://ajuda.sankhya.com.br/hc/pt-br/articles/360044612654-Portal-de-Vendas#faturamento-comofazer

Dependências

Para realizar o faturamento do pedido, os seguintes itens são obrigatórios:
1) Logar no sistema utilizando o Serviço de Login descrito nesta documentação em Login;
2) O pedido deve estar confirmado no ERP Sankhya-Om;
3) É obrigatório informar o número único do pedido.
4) É obrigatório configurar o tipo de operação(TOP) para atender a requisição de faturamento vindo do json
5) É obrigatório informar o tipo de operação(TOP) de faturamento para a nota fiscal.
OBS: O faturamento pelo json passa pelas mesmas regras definidas e configuradas nas TOPs do ERP.

Detalhes Técnicos

O serviço utilizado para o faturamento de pedidos é o SelecaoDocumentoSP.faturar que utiliza a entidade CabecalhoNota que por sua vez instancia a tabela TGFCAB.
Para realizar o faturamento do pedido o campo abaixo é obrigatório:

• NUNOTA – Numero Único da nota;

Ao realizar o faturamento deve-se passar no campo NUNOTA o número do pedido que deseja faturar.
Após o serviço executar o faturamento no ERP ele retorna o NUNOTA da nota fiscal gerada. ( Lembrando que o NUNOTA não é o número da nota e sim apenas a chave (PK) interna que identifica o documento na tabela TGFCAB ).
Para obter os dados da nota fiscal gerada, deve-se fazer chamada ao serviço de consulta de pedidos/notas passando como parâmetro o NUNOTA da nota fiscal que foi retornado durante a chamada do serviço de faturamento.
Assim conseguirá obter todas as informações da nota fiscal que foi gerada no faturamento.
Importante: A nota faturada fica ligada com o pedido pela tabela TGFVAR ( ver serviço de consulta de "Ligação Nota x Pedido" )

Filtros de para opções de Faturamento:
Faturamento normal:
Faturamento da nota independente dos itens, ao utilizar esta opção o faturamento é realizado juntamente com a quantidade total de itens na nota.
           "notas":{
           "codTipOper":167,
           "dtFaturamento":"04/02/2021",
           "tipoFaturamento":"FaturamentoNormal",
           "dataValidada":true,
           "notasComMoeda":{
              
           },         
           "nota":[
            {
               "$":7434
            }
         ],
         "faturarTodosItens":true
        }

Faturamento por Item e por quantidade:
Faturamento por item, permite selecionar o item que será faturado e a sua quantidade, permitindo assim, faturar parcialmente um pedido ou um item.
       "nota":[
      {
         "NUNOTA":"7432",
         "itens":{
            "item":[
               {
                  "QTDFAT":2,
                  "$":1
               }
            ],
          "faturarTodosItens":false,
         }
      }
   ],

Faturamento por Estoque:
Para realizar o faturamento por estoque o parâmetro FATEST-RESERV deverá estar desligado no ERP.
   "notas":{
   "codTipOper":167,
   "dtFaturamento":"04/02/2021",
   "serie":"",
   "dtSaida":"04/02/2021",
   "hrSaida":"",
   "tipoFaturamento":"FaturamentoEstoque",
   "dataValidada":true,
   "notasComMoeda":{
   },         
    "nota":[
            {
               "$":7434
            }
         ],
         "faturarTodosItens":true
  }

Faturamento por Estoque deixando pendente:
Faturar pelo estoque deixando pendente, serve para atender os itens que possuem estoque, sendo assim, os itens que não possuem estoque ficam como pendentes para serem atendidos posteriormente em um novo faturamento.
Para realizar o faturamento por estoque o parâmetro FATEST-RESERV deverá estar desligado no ERP.
   "notas":{
   "codTipOper":167,
   "dtFaturamento":"04/02/2021",
   "serie":"",
   "dtSaida":"04/02/2021",
   "hrSaida":"",
   "tipoFaturamento":"FaturamentoEstoqueDeixandoPendente",
   "dataValidada":true,
   "notasComMoeda":{
   },         
    "nota":[
            {
               "$":7439
            }
         ],
         "faturarTodosItens":true
  }

Faturamento Direto:
   "notas":{
   "codTipOper":28600,
   "dtFaturamento":"27/07/2021",
   "tipoFaturamento":"FaturamentoDireto",
   "dataValidada":true,
   "serie":"1",
   "tipoFaturamento":"FaturamentoDireto",
   "notasComMoeda":{
   },         
    "nota":[
            {
               "$":7439
            }
         ],
         "faturarTodosItens":true
  }

OBSERVAÇÃO: Nota-se que que nas opções de por estoque a tag tipoFaturamento é alterada para "FaturamentoEstoque" ou "FaturamentoEstoqueDeixandoPendente" nos demais tag fica com a opção FaturamentoNormal.

Descritivo de campos da entidade

Acesse aqui o dicionário de dados da tabela TGFCAB

Exemplo de uso:

URL de chamada: https://api.sankhya.com.br/gateway/v1/mgecom/service.sbr?serviceName=SelecaoDocumentoSP.faturar&outputType=json
Corpo de Requisição Padrão
  {
     "serviceName":"SelecaoDocumentoSP.faturar",
     "requestBody":{
        "notas":{
           "codTipOper":167,
           "dtFaturamento":"04/02/2021",
           "tipoFaturamento":"FaturamentoNormal",
           "dataValidada":true,
           "notasComMoeda":{
              
           },
           "nota":[
              {
                 "$":7434
              }
           ],
           "codLocalDestino":"",
           "faturarTodosItens":true,
           "umaNotaParaCada":"false",
           "ehWizardFaturamento":true,
           "dtFixaVenc":"",
           "ehPedidoWeb":false,
           "nfeDevolucaoViaRecusa":false
        }
     }
  }

Retorno em json:

  {
      "serviceName": "SelecaoDocumentoSP.faturar",
      "status": "1",
      "pendingPrinting": "false",
      "transactionId": "C688DB3E5193312092DC853D04B7BBE2",
      "responseBody": {
          "codUsuLogado": {
              "$": "0"
          },
          "notas": {
              "tipMov": "V",
              "nota": {
                  "$": "7435"
              }
          }
      }
  }
Language
Click Try It! to start a request and see the response here!