Tratamiento de Errores
Los errores de DeCA API siguen el formato estándar ProblemDetails.
Notas sobre el formato:
titlees un texto fijo según el tipo de error ("Solicitud no válida"en400,"Recurso no encontrado"en404,"Eliminación no permitida"en409,"Servicio no disponible"en503).errorses un array de objetos{ "field": "...", "message": "..." }, uno por cada error de validación encontrado.errorssolo aparece en los errores400 Bad Requestgenerados por las reglas de validación de negocio.
Códigos HTTP más comunes:
400 Bad Request: campo obligatorio ausente, identificador fiscal inválido (NIF/CIF/NIE español encontractualCharger, o NIF/NIE/CIF español/identificador extranjero tipo VIES enactualCarrier), vehículo articulado incompleto, peso no válido o dirección de notificación inválida.401 Unauthorized: cabeceraAuthorizationausente o credenciales incorrectas.404 Not Found: no existe un DeCA con elidindicado.409 Conflict: solo enDELETE; han pasado más de 7 días desde la creación del DeCA y ya no puede eliminarse.503 Service Unavailable: error al subir el PDF a Azure Blob Storage (la operación se aborta).
Reglas de validación relevantes:
contractualCharger,actualCarrier,shipments,vehicleytransportDateson obligatorios y no vacíos.contractualCharger.taxIdentificationNumberdebe ser NIF/NIE/CIF español válido.actualCarrier.taxIdentificationNumberadmite NIF/NIE/CIF español válido o un identificador fiscal extranjero tipo VIES (código de país ISO 3166-1 alfa-2 ≠ES+ hasta 12 caracteres alfanuméricos con al menos un dígito), ya que el transportista efectivo puede ser una empresa extranjera realizando transporte nacional.shipments[].weightKgdebe ser positivo si se informa.shipments[].packageCountes opcional, pero debe ser positivo si se informa.- En cada envío debe informarse al menos uno entre
weightKgyalternativeMagnitude. vehicle.tractorLicensePlateyvehicle.semitrailerLicensePlatedeben estar ambos presentes o ambos ausentes.vehicle.licensePlatees obligatoria salvo que se informenvehicle.tractorLicensePlateyvehicle.semitrailerLicensePlate(conjunto articulado completo), en cuyo caso es opcional y no se imprime en el PDF si no se informa.recipient.addressdebe ser email válido para canal Email o formato E.164 para SMS/WhatsApp.logoes opcional; el formato se detecta por cabecera de bytes durante la generación de PDF/email.
Problemas de conexión:
-
En caso de problemas de conexión con SDH se pueden recibir errores como No se puede resolver el nombre remoto: 'deca.solmicrosdh.com'.
Se puede probar introduciendo la URL https://deca.solmicrosdh.com/api en un navegador.
Debería mostrar algo como:
-
Logos cuyo base64 sea muy grande pueden provocar errores en la conexión o retornar 403-Forbidden.