Á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",
    "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"
            }
        }
    }
}

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-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 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"

Page Tree
rootAPI - Application Programming Interface NFe (V1)
searchBoxtrue

...