Documentación › Ayuda
Problemas comunes
Qué hacer al recibir 401, 403, 404, 409, 412, 422, 429, un webhook que no llega y una nota fiscal detenida.
Cada problema termina con el siguiente paso. Si ninguno lo resuelve, envía a
soporte el X-Request-Id de la llamada.
Recibí 401
La clave no llegó o no es válida. Revisa:
- el encabezado es
Authorization: Bearer sdr_..., con el espacio después deBearer; - la clave no fue revocada (panel, Integrações › Chaves de API (Integraciones › Claves de API));
- la dirección tiene el
/api:https://api.sudrel.com.br/api/v1/....
Recibí 403
La clave no puede hacer esto. Dos causas:
- Clave de prueba (
sdr_test_) en una operación solo de producción: crear o modificar una empresa, enviar el certificado, leer documentos recibidos. Usa unasdr_live_. - Clave restringida a una empresa accediendo a otra (
acesso_negado) o administrando webhooks (chave_restrita). Usa una clave sin restricción.
Recibí 404 en una nota o empresa que existe
Existe en el otro entorno. La clave de prueba solo ve notas de prueba, y la de producción solo las de producción. Revisa el prefijo de la clave.
Recibí 412
La empresa no puede emitir: la preparación tiene un elemento en bloqueio. El cuerpo trae
la lista en itens, con correcao en cada uno. Corrige y emite de nuevo. Ver
Preparación.
Recibí 202
No es un error. La nota está en transmitindo y Sudrel sigue encargándose. Espera el
webhook o consulta GET /v1/nfse/{id}. No emitas de nuevo.
Recibí 409
Lee codigo:
referencia_duplicada: la nota ya existe. Consúltala por elnfse_iddel error.idempotencia_conflito: la mismaIdempotency-Keyse usó para otro cuerpo. Genera una clave por nota.conflito: la mismaIdempotency-Keytodavía está en curso. Espera unos segundos y repite.referencia_ambigua: la referencia existe en dos empresas. Repite con?empresa_id=.
Ver Idempotencia.
Recibí 422
Lee codigo, y después erros (cada uno con campo, mensagem y
correcao):
validacao: el JSON tiene un error y no se creó nada. Corrige los elementos deerros.nfse_rejeitada: el Sistema Nacional la rechazó. Leecodigo_oficialynfse.rejeicao.explicacao, corrige y emite una nota nueva.tipo_invalidoen/valoro en una alícuota: envíalo como texto,"1500.00".
Recibí 429
Más de 120 solicitudes por minuto en esta clave. Espera al cambio de minuto y repite. Si pasa siempre, cambia las consultas repetidas por webhook y las notas sueltas por lote.
El webhook no llegó
- Verifica que el webhook esté suscrito al tipo de evento (
GET /v1/webhooks/{id}) y que estéativo. - Verifica el entorno: un webhook creado con la clave de prueba solo recibe eventos de prueba.
- Mira los intentos en
GET /v1/webhooks/{id}/entregas: el estado HTTP que devolvió tu servidor, onullcuando ni siquiera se conectó. - Tu servidor tiene que responder 2xx en hasta 10 segundos. La redirección (3xx) no se sigue y cuenta como falla. Una dirección de red interna se rechaza.
- Envía una prueba:
POST /v1/webhooks/{id}/teste. - Recupera lo que perdiste:
POST /v1/webhooks/{id}/reenvio, o leeGET /v1/eventos.
La firma del webhook no coincide
- Calcula el HMAC sobre el cuerpo crudo, los bytes exactos, antes de cualquier
JSON.parse. Volver a serializar el JSON cambia los bytes. - La clave del HMAC es el secreto como texto, tal como vino en la creación.
- Usa el
X-Sudrel-Signature-V2: el HMAC es de"<t>.<corpo>", no solo del cuerpo. - Durante el cambio de secreto vienen dos
v1=: basta con que uno coincida. - Revisa el reloj del servidor: la tolerancia recomendada es de 5 minutos.
La nota parece trabada
GET /v1/nfse/{id}: mirastatusy la línea de tiempo eneventos.transmitindoconaviso.codigo = "processamento_prolongado": Sudrel todavía se está encargando. No emitas de nuevo.aguardando_confirmacao: te está esperando enPOST /v1/nfse/{id}/confirmacao.falha_transmissao: leefalha.dps_enviadaantes que nada.- Mira la situación del servicio en la página de estado.
No encuentro una llamada que hice
Busca por el X-Request-Id (o requisicao_id) en Integrações › Log da
API (Integraciones › Registro de la API), en el panel. Ahí quedan la solicitud y la respuesta, por 30 días.