Exemplo de Utilização
Endpoint: | Stage: https://motorfiscal.raas.varejo.totvs.com.br/api/v1/ciot |
Método: | POST |
Descrição: | Utilize este recurso para realizar o cálculo do CIOT |
Modelo JSON (envio): | { "idTransporte": "ASW12V3T9", "idAtor": "A0006", "valorFrete": 15000.0, "servicoTransporte": true, "tipoAcao": "GERACAO", "localizador":"localizador01", "territorioOrigem": { "cidade": "JOINVILLE", "uf": "SC", "pais": "Brasil" }, "territorioDestino": { "cidade": "JOINVILLE", "uf": "SC", "pais": "Brasil" }, "dataTransporte": "2023-01-29", "urlRetorno": "http://seu-webhook" } |
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 Retorno: | { "identificador": "ASW12V3T90", "impostos": [ { "imposto": "INSS", "base": 3000.0, "aliquota": 11.0, "valor": 330.0, "reducao": 80.0, "acumulado": 660.0, "reterImposto": true }, { "imposto": "IRRF", "base": 4500.0, "aliquota": 22.5, "valor": 0.0, "reducao": 90.0, "acumulado": 30000.0, "reterImposto": true }, { "imposto": "ISS", "base": 15000.0, "aliquota": 5.0, "valor": 750.0, "reducao": 0.2, "acumulado": 0.0, "reterImposto": false } ], "valorReceber": 13920.0, "tipoAcao": "GERACAO", "origemIbge": 4209102, "destinoIbge": 4209102, "urlRetorno": "http://localhost:8083/fiscal-motor-configurador/webhook", "retornoValidacao": null, "localizador": null } |
Observação | - O Json de retorno do calculo está sendo salvo no banco de dados(mongoDB) na collection "retornoCalculando"
- A execução do cálculo é assíncrona
|
Observações
Atributo | Exemplo |
---|
tipoAcao | - GERAÇÃO: Efetua cálculo dos tributos e vincula a movimentação na retenção de tributos;
- SIMULACAO: Efetua cálculo dos tributos e retorna apuração dos tributos;
- CANCELAMENTO: Efetua cancelamento de movimentações de retenção de tributos do ator indicado;
|
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" }
|
Retorno do Cancelamento | { "identificador":"XPTO123", "tipoAcao":"CANCELAMENTO", "urlRetorno":"http://retorno.com", "retornoValidacao":null } |