Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Endpoint:Ambiente Stage: https://stg.motorfiscal.raas.varejo.totvs.com.br/starting/api/v1/operacao-nfe
Método:POST
Descrição:Utilize este recurso para inserir um novo registro
Modelo JSON (envio):
{
    "naturezaOperacao""8089",
    
Bloco de código
languagejava
titleJson_entrada_nfe400
{
    "tipoAcao":
 
 "EMISSAO",

    "emitente""E001",
    "destinatario""A001",
    "expedidor""A002",
    "recebedor""A003",
    "remetente""A004",
    "tomador""A005",
    "territorioOrigem": {
        "pais""Brasil",
        "uf""PR",
        "cidade""Arapoti"
    },
    "territorioDestino": {
        "pais""Brasil",
        "uf""SP",
        "cidade""Osasco"
    },
    "produtos": [
        {
            "valor"5.99,
            "quantidade"170,
            "codigo""P001"
        }
    ],
    "componentesFretes": [
        {
            "nome""SEGURO",
            "codigo""SEGURO",
            "valor"130.0
        },
        {
            "nome""EMBALAGEM",
            "codigo""EMBALAGEM",
            "valor"5.0
        }
    ],
    "operacao""TRANSPORTE",
    "modal""RODOVIARIO",
    "tipoServico""NORMAL",
    "tipoCte""NORMAL",
    "outrasCaracteristicas""amarelo",
    "urlRetorno""https://XXXXXX.com",
    "infCTeNorm": {
        "infCarga": {
            "vCarga"10475.10,
            "proPred""P001",
            "xOutCat""Fardos",
            "vCargaAverb"10475.10,
            "infQ": [
                {
                    "cUnid""01",
                    "tpMed""PESO REAL",
                    "qCarga"10.000
                },
                {
                    "cUnid""01",
                    "tpMed""QUANTIDADE",
                    "qCarga"30.000
                },
                {
                    "cUnid""00",
                    "tpMed""PESO COBRADO",
                    "qCarga"20.000
                },
                {
                    "cUnid""03",
                    "tpMed""CUBAGEM (M3)",
                    "qCarga": 5.000
                }
            ]
        },
        "infDoc": {
            "infNFe": [
                {
                    "chave""12312312345645645678978978914725839696385274"
                }
            ]
        },
        "infModal": {
            "rodo": {
                "RNTRC""00012345"
            }
        }
    }
}

    "modelo": 55,
    "emitente": "EMIT002",
    "transportadora": "TELEMACO001",
    "destinatario": "TELEMACO002",
    "retirada": "TELEMACO003",
    "entrega": "TELEMACO004",
    "indicadorConsumidorFinal": 0,
    "indicadorPresencaComprador": 9,
    "indicadorIntermediario": 0,
    "pessoasAutorizadasXml": [
        {
            "documento": "7619873698763418"
        }
    ],
    "produtos": [
        {
            "valor": 10.0,
            "quantidade": 2.0,
            "codigo": "servico",
            "cfop": "5101",
            "quantidadeComercial": 1015.00,
            "valorUnitario": 20.7988965517,
            "unidadeTributavel": "UN",
            "quantidadeTributavel": 35.00,
            "valorUnitarioTributavel": 603.1679971429,
            "numeroPedidoCliente": "14751/22-04",
            "numeroPedidoItemCliente": 10
        }
    ],
    "urlRetorno": "https://teste.free.beeceptor.com",
    "observacoesGerais": "A geração da Nota Fiscal de Serviços Eletrônica é feita, automaticamente, por meio de serviços informatizados, disponibilizados",
    "observacoesFisco": "Desconto de: 0,20 % sobre 21.110,88 Ate 17/05/2024Pagto: 28 DD Indice Financ.: 1,0131 Repres: 10631 - AALVES/FAP @ ONU 9999 - PRODUTO NAO CLASSIFICADO PARA TRANSPORTE N.A/N.D 1.015,00 Declaro que os produtos perigosos estao adequadamente classificados, embalados, identificados, e estivados para suportar os riscos das operacoes de transporte e que atendem as exigencias da regulamentacao em 19/04/2024.(Tel.Transp.: 043- 999244580)** ATENCAO: OS BOLETOS SAO ENVIADOS SOMENTE POR E-MAIL: [email protected], CASO NAO RECEBA O BOLETO, FAVOR ENTRAR EM CONTATO 011-2117-9020 **"
}
Status de retorno:
  • 200 - OK
  • 400 - Bad Request (Um ou mais campos estão inválidos. Faça o preenchimento correto e tente novamente)
  • 401 - Unauthorized (Falha na autenticação)
  • 500 - Internal Error (Falha de comunicação com a fila: fiscal-motor-starting-calculating-operacao-nfe-topic ou Dados mínimos precisam ser preenchidos
)Exemplo de Json assíncrono Emissão (retorno enviado para o link informado no atributo urlRetorno): 

{
    "tipo""EMISSAO",
    "retornoEmissao ":
    {
        "Aprovado"true,
        "Situacao""Autorizado",
        "cStat""100",
        "Descricao""Autorizado o uso do CT-e",
        "chaveacesso""35221153113791000122570220022986891339483933"
    },
    "tributos": [
        {
            "nome""ICMS_TRANSP_0000_S_PED",
            "cst""00",
            "vbc"153.41,
            "picms"12.0,
            "predbc"0.0,
            "vicms"18.41
        }
    ],
    "totais": {
        "vprest"153.41,
        "vrec"153.41,
        "vtotTrib"18.41
    },
    "componentes": [
        {
            "nome""ICMS_TRANSP_0000_S_PED",
            "tipo""ICMS",
            "codigo""EMBALAGEM",
            "descricao""EMBALAGEM",
            "cst""00",
            "vbc"5.68,
            "picms"12.0,
            "vicms"0.68
        },
        {
            "nome""ICMS_TRANSP_0000_S_PED",
            "tipo""ICMS",
            "codigo""SEGURO",
            "descricao""SEGURO",
            "cst""00",
            "vbc"147.73,
            "picms"12.0,
            "vicms"17.73
        }
    ],

    "idOperacao": "1fc7c9a0-d3e1-11ed-afa1-0242ac151234"
}

Exemplo de Json assíncrono Simulação (retorno enviado para o link informado no atributo urlRetorno
  • )
:

{
    "tipo""SIMULACAO",
    "tributos": [
        {
            "nome""ICMS_TRANSP_0000_S_PED",
            "cst""00",
            "vbc"153.41,
            "picms"12.0,
            "predbc"0.0,
            "vicms"18.41
        }
    ],
    "totais": {
        "vprest"153.41,
        "vrec"153.41,
        "vtotTrib"18.41
    },
    "componentes": [
        {
            "nome""ICMS_TRANSP_0000_S_PED",
            "tipo""ICMS",
            "codigo""EMBALAGEM",
            "descricao""EMBALAGEM",
            "cst""00",
            "vbc"5.68,
            "picms"12.0,
            "vicms"0.68
        },
        {
            "nome""ICMS_TRANSP_0000_S_PED",
            "tipo""ICMS",
            "codigo""SEGURO",
            "descricao""SEGURO",
            "cst""00",
            "vbc"147.73,
            "picms"12.0,
            "vicms"17.73
        }
    ],

    "idOperacao": "1fc7c9a0-d3e1-11ed-afa1-0242ac151234"
}

ObservaçãoO Json de retorno do calculo está sendo salvo no banco de dados(mongoDB) na collection "retornoCalculando"


Observações

Atributo

Exemplo

tipoAcao
  • EMISSAO: Efetua cálculo dos tributos e gera o documento fiscal;
  • SIMULACAO: Efetua cálculo dos tributos e retorna apuração dos tributos;
territorioOrigem

Caso não informe este campo, o território utilizado na escolha do melhor cenário será o endereço principal do Expedidor ou Remetente.

Regras:

  • Caso informe a tag territorioOrigem, independente de apresentar os atores: Expedidor e/ou Remetente, para a escolha do melhor cenário é utilizado o endereço preenchido no territorioOrigem;
  • Caso informe os atores de Origem: Expedidor e Remetente e não informe o territorioOrigem para a escolha do melhor cenário é utilizado o endereço principal do ator Expedidor;
  • Caso não informe o territorioOrigem, Expedidor e Remetente
    modelo

    Modelo do documento.


    • código: (01) descrição: "Nota avulsa" 
    • código: (04) descrição: "Nota produtor"
    • código: (55) descrição: "Nota produtor"
    • código: (04) descrição: "Nota produtor"
    • código: (04) descrição: "Nota produtor"
    • código: (04) descrição: "Nota produtor"
    • código: (04) descrição: "Nota produtor"
    ocorre o erro: 
    {    "status"400,
        "timestamp""2022-12-01T14:44:47.969961",
        "title""Erro em regra de negocio.",
        "detail""Não foi possível encontrar Território de Origem. Informe os dados de Território Origem, Expedidor ou Remetente"
    }
    territorioDestino

    Caso não informe este campo, o território utilizado na escolha do melhor cenário será o endereço principal do Recebedor ou Destinatário

    Regras:

    • Caso informe a tag territorioDestino, independente de apresentar os atores: Recebedor e/ou Destino, para a escolha do melhor cenário é utilizado o endereço preenchido no territorioDestino;
    • Caso informe os atores de Destino: Recebedor e Destinatário e não informe o territórioDestino, para a escolha do melhor cenário é utilizado o endereço principal do ator Recebedor;
    • Caso não informe o territorioDestino Recebedor e Destinatário ocorre o erro:
      {

          "status"400,
          "timestamp""2022-12-01T14:44:47.969961",
          "title""Erro em regra de negocio.",
          "detail""Não foi possível encontrar Território de Destino. Informe os dados de Território Destino, Recebedor ou Destinatario"
      }

    tomador

    O tomador (indTomador) está sendo incluído de acordo com as regras abaixo:

    • Se o código do tomador for igual ao Remetente então será incluído no xml toma3 = 0, sendo o tomador o remetente;
    • Se o código do tomador for igual ao Expedidor então será incluído no xml toma3 = 1, sendo o tomador o expedidor;
    • Se o código do tomador for igual ao Recebedor então será incluído no xml toma3 = 2, sendo o tomador o recebedor;
    • Se o código do tomador for igual ao Destinatário então será incluído no xml toma3 = 3, sendo o tomador o destinatário;
    • Se o código do tomador não for igual a nenhum dos atores então será incluído no xml toma4;
    • Não é um campo obrigatório para o Cálculo, porém é obrigatório para ser autorizado na Sefaz;

    Retorno do Json - Calculo da Simulação do Componente de Frete

    • Tributos:

      "vbc"= Calculo da Fórmula de total dos componentes - Vinculada no cadastro do tributo (Campo: Fórmula Base de Cálculo)
      "vicms" = "vbc" - Valor do total dos Componentes

    • Totais:
      "vrec"= "vbc" (dos tributos) + "vicms" (dos tributos)
      "vprest" = vbc (dos tributos) + "vicms" (dos tributos)
      "vtotTrib"
       = "vicms" (dos tributos)
    • Componentes:

      "vbc"= Calculo da Fórmula para o componente individual - Vinculada no cadastro do tributo (Campo: Fórmula Base de Cálculo)
      "vicms" = "vbc" - Valor do Componente individual

       Exemplo:
      "componentesFretes": [
              {
                  "codigo": "CF001",
                  "nome": "seguro",
                  "valor": 1.0
              }
      Fórmula: ( COMPONENTE_FRETE[CF001] + COMPONENTE_FRETE[CF002] + COMPONENTE_FRETE[CF003] ) / ( 1 - ( ALIQUOTA_ICMS / 100 ) )
      "vbc" = (1.0)/(1-(12/100)) = 1.0/(1-0.12) = 1.0/0.88 = 1.14
      "vicms" = 1.14 - 1.0 = 0.14

    IMPORTANTE!

    Para que seja possível calcular o tributo de cada componente, a fórmula deve ser cadastrada com o início do titulo: "COMPONENTE_FRETE_". Exemplo: "COMPONENTE_FRETE_TRIBUTADO"