Modos de Envio (Síncrono/Assíncrono)
A API de Integração da NDD oferece aos usuários duas opções de envio de requisições: o modo síncrono e o modo assíncrono. Cada método possui suas particularidades e é definido pelo valor da tag "TipoEnvio", na chamada realizada para a API.
A tag "TipoEnvio", na estrutura da chamada é opcional, porém vem com o seu valor por default como 0, fazendo com que, o envio seja feito de forma síncrona, ou seja, aguarda o retorno do processo feito para a API.
A tag “ReturnModel”, na estrutura da chamada é opcional, porém vem com o seu valor por default como 0, caso seja 1 faz com que no retorno em caso de rejeição de documentos, seja gerado um objeto de erro, identificando a origem da rejeição. Caso “ReturnModel” seja 0, as rejeições do tipo Sefaz serão identificadas apenas na tag de “cStat”.
Exemplo:
{
"Header": {
"CNPJEmpresa": "99999999999999",
"TipoEnvio": 0,
"ReturnModel": 0
},
"Body": {
"Conteudo": "string",
"InscricaoMunicipal": "string"
}
}
Modo Síncrono
Ao utilizar esse modo, a requisição será processada de forma síncrona, o que significa que a API aguardará o retorno do processo, antes de enviar a resposta ao usuário. Caso a resposta demore mais que um minuto, o processo síncrono será finalizado e o usuário receberá o protocolo da requisição para consulta posterior, assim como ocorre no processo assíncrono.
Exemplo de Retorno:
{
"tipoRetorno": 1,
"envio": {
"numeroProtocolo": "2680900b-123a-4d0e-a623-307cc57236b9",
"documento": "string do conteúdo do documento",
"chaveDocumento": "35230499999999999999551000000000161440586453",
"numero": 16,
"serie": "100",
"dataEmissao": "2023-08-10T11:15:33.527-03:00",
"protocoloSefaz": "2680900b-123a-4d0e-a623-307cc57236b9",
"cStat": "100",
"motivo": "Autorizado Uso da NF-e."
},
"processamento": {
"message": "Sucesso",
"protocolo": "2680900b-123a-4d0e-a623-307cc57236b9"
}
}
Modo Assíncrono
Para o modo assíncrono, a tag “TipoEnvio” precisa conter o valor 1.
Exemplo:
{
"Header": {
"CNPJEmpresa": "99999999999999",
"TipoEnvio": 1
},
"Body": {
"Conteudo": "string",
"InscricaoMunicipal": "string"
}
}
Ao realizar o envio do documento, será obtido um retorno semelhante ao abaixo:
Exemplo:
{
"tipoRetorno": 11,
"processamento": {
"message": "Documento enviado para processamento",
"protocolo": "c5c5517d-46da-4fd2-915a-88790a8f3e64"
}
}
Como boas práticas sugerimos utilizar o fluxo assíncrono, ou seja, realizar o envio de todos os documentos em um primeiro momento e a consulta posteriormente em outro método. A cada envio será retornado de forma imediata, um protocolo indicando que o documento foi inserido em nossa API corretamente.
No modo síncrono, caso a resposta demore mais que um minuto, o processo síncrono será finalizado retornando o protocolo da requisição feita para o usuário consultar depois, assim como ocorre no processo assíncrono.
{{component-feedback-article}}