NS CTe

  1. Inicio
  2. Documentos
  3. NS CTe
  4. Emissão de CTe
  5. Emissão

Emissão

O serviço de emissão de CT-e é responsável por realizar a validação dos dados do CT-e enviados de acordo com os tipos de dados definidos pelos schemas XMLs da Sefaz e realizar o envio do documento para processamento no WebService do Portal da Secretaria da Fazenda.

O retorno deste serviço contém as informações de recebimento do CT-e pela Sefaz ou a lista de erros em caso de erros durante o processamento.

Devido ao processo de autorização de um CT-e na Sefaz ser realizado através da requisição de diversos serviços assíncronos e ao tempo mínimo exigido pela Sefaz de 15 segundos de aguardo entre o envio do CT-e e a Consulta de Situação, este método retorna apenas a confirmação de recebimento do CT-e pela Sefaz ou as mensagens de erro caso alguma informação não passe pela validação contra o schema XML. Para saber se o CT-e foi Autorizado com sucesso ou não, é necessário realizar a consulta através do método de Status de Processamento do CT-e.

Campos preenchidos automaticamente pela API 

A lista abaixo apresenta os campos e atributos do layout de emissão que serão preenchidos automaticamente pela API caso não sejam enviados:

  • Id (atributo da tag infNFe)
  • cDV
  • dhCont
  • xJust
URL

Produção CT-e 3.00: POST https://cte.ns.eti.br/cte/issue

Produção CT-e OS: POST https://cte.ns.eti.br/cte/issueos

Dados de entrada

Os dados do CT-e para o método de emissão podem ser enviados em JSON ou em TXT.

Envio de dados em formato JSON

Para envio dos dados em JSON do Content-Type da requisição deverá ser definido como application/json.

X-AUTH-TOKENToken de acesso do usuário
CTeDados genéricos do CT-e (conforme Manual de Orientações do Contribuinte da Sefaz)
infModalDados específicos do modal do CT-e (conforme Manual de Orientações do Contribuinte da Sefaz)

Clicando no arquivo abaixo é possível fazer o download de um exemplo completo de CT-e no formato JSON:

Envio de dados em formato XML

Para envio dos dados em XML o Content-Type da requisição deverá ser definido como application/xml e o X-AUTH-TOKEN deverá ser enviado no cabeçalho HTTP.

No envio em formato XML o corpo da requisição deverá conter o conteúdo do XML com as informações do CT-e. Esse conteúdo deverá ser gerado a partir do layout do Manual de Orientações do Contribuinte da Sefaz.

Clicando no arquivo abaixo é possível fazer o download de um exemplo completo de CT-e no formato XML:

Envio de dados em formato TXT

Para envio dos dados em TXT do Content-Type da requisição deverá ser definido como text/plain;charset=utf-8.

No envio em formato TXT o corpo da requisição deverá conter o conteúdo do TXT com as informações do CT-e. Esse conteúdo deverá ser gerado a partir do layout do TXT de emissão do integrador local da News Systems.

Clicando no arquivo abaixo é possível fazer o download de um exemplo completo de CT-e no formato TXT:

Exemplo de requisição
Requisição de emissão de CT-e em JSON
curl -X POST \
    -H "Content-Type: application/json" \
    -d '{
      "X-AUTH-TOKEN":"...",
      "CTe":{...}, 
      "infModal":{...}
     }' \
    https://cte.ns.eti.br/cte/issue
Requisição de emissão de CT-e em TXT
curl -X POST \
    -H "Content-Type: text/plain" \
    -d 'CONHECIMENTO|1| \
        A|3.00|CTe|' \
     https://cte.ns.eti.br/cte/issue
Dados retornados
CampoDescriçãoTipoOcorrênciaGrupo-PaiObservação
statusCódigo de status do processamentoN1-1
motivoDescrição literal do status de processamentoA1-1
chCTeChave de acesso do CT-eN0-1Somente em status = 200
nsNRecNúmero do recibo pela API NS CT-eN0-1Somente em status = 200, -6 e -7
errosArray contendo a lista de erros durante a validação das informações do CT-e de acordo com o tipo de dadosArray0-1Somente em status = -4
erroObjeto contendo informações sobre o erro de processamentoO0-1Somente em status = -9
cStatCódigo do erroN1-1erro
xMotivoDescrição literal do erroA1-1erro
Exemplos de retorno

Retorno com sucesso

{
  "status": 200,
  "motivo": "CT-e enviado para Sefaz",
  "chCTe": "43151212936129000195570000000009451000009454",
  "nsNRec": "631034008736114"
}

Retorno com erro de dados

{
  "status": -4,
  "motivo": "Modal invalido de acordo com a validacao contra schema",
  erros": [
        "O campo 'dhEmi' foi preenchido incorretamente com o valor '2020-04-10T11:30:04'. Este campo deve ser preenchido com data no seguinte formato: 'AAAA-MM-DDThh:mm:ss TZD (Ex.: 2010-            08-19T13:00:15-03:00)'. (cvc-pattern-valid: Value '2017-11-10T11:30:04' is not facet-valid with respect to pattern '(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d([\\-,\\+](0[0-9]|10|11):00|([\\+](12):00))' for type '#AnonType_dhEmiideinfCteTCTe'.)"
    ]
}
Códigos de retorno
CódigoDescrição
200CT-e enviado com sucesso
-2CT-e não informado ou vazio ( ex: {} )
-3infModal não informado ou vazio ( ex: {} )
-4Erro de informações de acordo com o tipo de dados
-5Schema de validação inexistente para a versão do CT-e informada em CTe/infCTe/versao
-6Documento já recebido, porém ainda sem status de processamento; Por favor, consulte o status de processamento do nsNRec informado
-7Documento já recebido e autorizado. Por favor consulte o status de processamento do nsNRec informado
-8Não foi possível carregar os dados enviados
-9Erro ao enviar os dados para a Sefaz.
Verifique o objeto erro para maiores informações
-10Erro ao obter url de qrcode
-11Emissão com xml assinado deve conter as informações de qrcode
-12Emissão com xml assinado deve ter o valor do verProc terminado em NS+API

Como podemos ajudar?