CTe API em 3 passos – Veja como é o Processo de Emissão

cte api

Olá desenvolvedor! Neste artigo você verá como funciona o CTe API em 3 passos.

Você sabe como acontece a comunicação com as APIs? Veja como funciona o CTe API.

As  APIs oferecem uma forma de comunicação que não depende de uma linguagem específica para utilizá-la, basta através de sua linguagem de programação realizar a comunicação acessando as URLs fornecidas para acesso a API. Outro fator importante é saber a regra de negócio para realizar essa comunicação, deixando mais claro o tratamento de exceções e o processo de emissão.

Sabendo disso, o processo de Autorização do CTe API possui 3 passos para facilitar a comunicação de qualquer linguagem que nossos parceiros possam utilizar, sendo eles o envio dos dados, consulta do status do processamento e download do documento.

Confira nosso fluxograma CTe API:

CTe API
API aceita json e xml

Passo 1

Neste primeiro passo, como pode ser visto no fluxograma, são enviados os dados como o token, o content-type e conteúdo do CTe, então a API retornará o código 200 que indicará se a emissão ocorreu corretamente ou outro código (diferente de 200), caso haja algum erro. Se não houver erro na emissão, retornará junto o nsNRec.

É importante guardar o nsNRec, pois ele é um registro único em nosso servidor usado para identificar o documento enviado.

Exemplo Retorno com Sucesso:

{
“status”: 200,
“motivo”: “CT-e enviado para Sefaz”,
“chCTe”: “43171007364617000135570000000000581000000584”,
“nsNRec”: “2884390”
}

 Exemplo de Retorno com Rejeição:

{
  "status": -4,
  "motivo""Modal invalido de acordo com a validacao contra schema",
  "erros": [
    "cvc-pattern-valid: Value '1111111111' is not facet-valid with respect to pattern '[0-9]{11}' for type 'TCpf'."
  ]
}
Como comentado acima, no momento que você receber o retorno é necessário realizar a leitura da tagstatus“, caso ela seja diferente de 200, pois com certeza aconteceu algum erro. Neste caso não é necessário seguir para o passo 2, porque é preciso corrigir o erro que ocorreu e reenviar as informações para obter o status de 200 e assim, poder realizar a consulta do status do processamento.
Caso o retorno tenha vindo com sucesso, é necessário ler a “nsNRec” e guardar este número em seu banco de dados, pois este é a identificação do CTe em nossa API, e serve também para consultá-la em qualquer necessidade.

Passo 2

Com o nsNRec em mãos você irá realizar a consulta do processamento do CTe. Para a consulta, será enviada na requisição o token, o cnpj do emitente e o nsNRec do CTe que deseja consultar o status para saber se o mesmo foi autorizado ou não na API.
Caso o retorno desta requisição seja o código 200, é porque a consulta foi realizada com sucesso, então agora é só ler a tag “chCTe” e “nProt” para guardar em seu banco de dados a chave e o protocolo de autorização do CTe.

Exemplo Retorno com Sucesso: 

{
“status”: 200,
“motivo”: “Consulta realizada com sucesso”,
“chCTe”: “43171007364617000135570000000000581000000584”,
“cStat”: “100”,
“xMotivo”: “Autorizado o uso do CT-e”,
“nProt”: “143170000866599”,
“dhRecbto”: “2017-11-01T16:33:40-02:00”,

  "xml""<?xml version=\"1.0\" encoding=\"utf-8\"?><nfeProc versao=\"3.10\" xmlns=\"http://www.portalfiscal.inf.br/nfe\"><NFe>...</NFe><protNFe versao=\"3.10\">...</protNFe></nfeProc>"

}
Exemplo de Retorno com Rejeição:
{
  "status": -2,
  "motivo""Nao foi possivel carregar o status da NF-e",
  "erro": {
    "cStat": 0,
    "xMotivo""Documento não localizado em nosso banco de dados"
  }
}

Se o retorno da requisição da consulta do status for diferente de 200, é porque aconteceu alguma rejeição no CTe, neste caso é necessário ler a tag “erro” e salvar as informações das tags “cStat” e “xMotivo”, para poder exibir a rejeição e ajustar o erro que retornou.

Então, o processo de emissão pode ser encerrado por aqui, pois o CTe não foi autorizado e não será possível realizar o download do pdf. Após ajustar os dados do CTe, é necessário reenviar os dados, começando do passo 1.

Passo 3

Se após a consulta for confirmada a autorização do CTe, pode-se seguir para o terceiro passo onde será possível baixar os arquivos XML, JSON e PDF . Para download é necessário enviar o token, a chave do CTe, o tipo de ambiente e o tipo de download (X para XML, P para PDF, J para JSON ou XPJ para ambos) e a API retornará o XML do arquivo e a base64 do arquivo PDF.

Exemplo Retorno com Sucesso:

{
“status”: 200,
“motivo”: “Consulta realizada com sucesso”,
“chCTe”: “43171007364617000135570000000000581000000584”,

  "xml""<?xml version=\"1.0\" encoding=\"utf-8\"?><nfeProc versao=\"3.10\" xmlns=\"http://www.portalfiscal.inf.br/nfe\"><NFe>...</NFe><protNFe versao=\"3.10\">...</protNFe></nfeProc>",
  "pdf: "JVBERi0xLjQKJeLjz..."
}

Exemplo de Retorno com Rejeição:

{
“status”: -500,
“motivo”: “javax.imageio.IIOException: Error reading PNG image data”
}

Este material foi criado com a intenção de ajudar você parceiro a integrar com nossa API de forma mais intuitiva e segura, tratando todos os possíveis erros inesperados.

Estes 3 passos podem ser realizados de maneira automatizada, onde será necessário apenas um clique no botão de enviar dados pelo seu sistema, e o documento autorizado será exibido na tela para o seu cliente, caso seja Autorizado. Em nossos exemplos temos o código pronto em diversas linguagens que poderá lhe auxiliar na integração.

Com a API o processo de emissão ficou muito mais rápido e prático, dispensando a necessidade de instalar outros programas ou utilizar recursos de hardware e software do computador, sem falar de outros recursos e benefícios que a API proporciona.

Quer saber mais sobre API? Confira os benefícios do uso de API em seus Documentos Fiscais Eletrônicos 

PS: Venha fazer parte de um time de empreendedores que tem feito diferença no mercado com a inovação e agilidade que nossos produtos trazem para junto de sua empresa.

Gostou do Post? Caso você não conheça nossa API entre em contato conosco! 

 

3 comentários em “CTe API em 3 passos – Veja como é o Processo de Emissão

  1. Pingback: Placas Mercosul: confira as alterações para os DFes

  2. Pingback: Protocolo TLS 1.2 no CTe: Passo a Passo para Resolver os Problemas

  3. Pingback: Layout de Emissão do CTe e CTe OS Apresenta Novos Campos

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *