Captura de Evidencia
Recopilación de evidencia multimodal incluyendo escaneo QR/NFC, captura de fotos/video, lecturas de báscula, verificación de sellos y OCR para flujos de trabajo aduaneros sin papel.
Última actualización: 2025-02-18
Captura de Evidencia
El sistema de captura de evidencia de Certexi permite flujos de trabajo aduaneros sin papel al digitalizar cada punto de prueba en la cadena logística. La evidencia se recopila a través de múltiples modalidades y se ancla criptográficamente para pistas de auditoría a prueba de manipulación.
Modalidades de Captura
Escaneo QR y Código de Barras
El escáner integrado soporta todos los formatos principales de código de barras:
- Códigos QR — Identificación de unidades de transporte, mapeo de slots
- Code 128 / Code 39 — Etiquetas de envío, IDs de contenedor
- EAN-13 / UPC — Identificación de productos
- Data Matrix — Etiquetas industriales de alta densidad
El escáner utiliza la cámara del dispositivo mediante la API MediaDevices y funciona tanto en modo online como offline.
Escaneo de Etiquetas NFC
Certexi utiliza la API Web NFC para identificación sin contacto:
- Lectura/escritura de etiquetas NFC en formato NDEF
- Asociación de etiquetas con unidades de transporte, slots u operadores
- Funciona en Android Chrome 89+ con hardware NFC
- Alcance: aproximadamente 4cm para lecturas confiables
Requisitos NFC
Web NFC requiere HTTPS (o localhost para desarrollo) y actualmente es compatible con Android Chrome y Edge. El soporte de iOS aún no está disponible a través de APIs del navegador.
Captura de Fotos y Video
Evidencia visual con marca de tiempo para cada etapa del flujo de trabajo:
- Captura de fotos — Fotos de evidencia en alta resolución con metadatos EXIF
- Grabación de video — Clips cortos para inspecciones complejas
- Integración CCTV — Extracción automática de clips de cámaras de vigilancia
- Anotaciones — Marcar fotos con indicadores de daño
Todos los archivos multimedia se suben a Nextcloud vía WebDAV con organización basada en rutas:
/Certexi/whms/slots/{slot_id}/evidence/{timestamp}-{random}.jpg
Lecturas de Báscula
Integración con básculas industriales para verificación de peso:
- Comunicación por puerto serial vía Web Serial API
- Lecturas automatizadas durante etapas de pesaje
- Validación basada en tolerancia contra pesos esperados
- Seguimiento histórico de pesos para análisis de tendencias
Verificación de Sellos
Gestión de sellos de contenedores y unidades de transporte:
- Registrar números de sello en entrada y verificar en salida
- Documentación fotográfica de la condición del sello
- Registro de ruptura de sello con autorización del supervisor
- Referencia cruzada con declaraciones aduaneras
OCR (Reconocimiento Óptico de Caracteres)
Impulsado por WASM
El OCR se ejecuta localmente en el navegador usando un motor compilado a WebAssembly. Ningún dato sale del dispositivo durante el reconocimiento.
Extracción automática de texto de:
- Placas de matrícula (integración ANPR)
- Documentos de envío y declaraciones aduaneras
- Números de contenedor y marcas
- Certificados de peso e informes de inspección
Demo en Vivo: Acumulación de Evidencia
Observe cómo la evidencia se acumula mientras una unidad de transporte avanza por el flujo de trabajo aduanero. Cada pieza está vinculada criptográficamente a la anterior — modificar cualquier elemento rompe la cadena de hash.
Cadena de evidencia de 8 elementos — escaneos, fotos, documentos, lecturas de báscula, clips CCTV y verificaciones de sello.
Cadena de Evidencia
Cada pieza de evidencia se vincula a una cadena criptográfica:
- Captura — Evidencia recopilada con marca de tiempo, GPS e ID del operador
- Hash — Se computa el hash SHA-256 para el paquete de evidencia
- Anclaje — Hash anclado en un árbol de Merkle vía Flowhash Core
- Almacenamiento — Archivo subido a Nextcloud con metadatos
- Vinculación — Hash de evidencia almacenado en el libro mayor de eventos inmutable
Esto crea una cadena a prueba de manipulación donde cualquier modificación a los archivos de evidencia es detectable.
Evidencia Offline
Toda la captura de evidencia funciona sin conexión:
- Las fotos se almacenan en IndexedDB hasta la sincronización
- Las lecturas NFC se ponen en cola con los datos completos de la etiqueta
- Las lecturas de báscula se almacenan en caché localmente
- Todo se sincroniza automáticamente cuando se restablece la conexión
Componentes de UI de Evidencia
Tarjeta de Resultado de Escaneo
<Card className="w-72"> <CardHeader className="pb-2"> <div className="flex items-center gap-2"> <Badge variant="outline" className="text-green-500 border-green-500">Verificado</Badge> <CardTitle className="text-sm">Resultado de Escaneo QR</CardTitle> </div> <CardDescription>TU-2025-00042 — Slot A-04</CardDescription> </CardHeader> <CardContent className="space-y-2"> <div className="flex justify-between text-xs"> <span className="text-muted-foreground">Escaneado a las</span> <span>14:32:07 UTC</span> </div> <div className="flex justify-between text-xs"> <span className="text-muted-foreground">Hash</span> <span className="font-mono text-[10px]">sha256:a4f2...</span> </div> <Progress value={100} className="h-1" /> </CardContent> </Card>
Indicador de Lectura de Báscula
<div className="flex items-center gap-3 p-3 border rounded-lg"> <div className="flex flex-col gap-1"> <span className="text-xs text-muted-foreground">Peso Bruto</span> <span className="text-lg font-bold">24,500 kg</span> </div> <div className="flex flex-col gap-1"> <span className="text-xs text-muted-foreground">Tolerancia</span> <Badge variant="outline" className="text-green-500 border-green-500">Dentro de ±2%</Badge> </div> <div className="flex flex-col gap-1"> <span className="text-xs text-muted-foreground">Estado</span> <Badge className="bg-green-500">Aceptado</Badge> </div> </div>
Formulario de Verificación de Sello
<Card className="w-80"> <CardHeader className="pb-2"> <CardTitle className="text-sm">Verificación de Sello</CardTitle> <CardDescription>Contenedor MSKU-4821093</CardDescription> </CardHeader> <CardContent className="space-y-3"> <div className="space-y-1"> <Label htmlFor="seal-num">Número de Sello</Label> <Input id="seal-num" placeholder="Ingrese número de sello" defaultValue="CX-2025-88421" /> </div> <div className="space-y-1"> <Label htmlFor="seal-cond">Condición</Label> <Select defaultValue="intact"> <SelectTrigger> <SelectValue /> </SelectTrigger> <SelectContent> <SelectItem value="intact">Intacto</SelectItem> <SelectItem value="broken">Roto</SelectItem> <SelectItem value="tampered">Manipulado</SelectItem> <SelectItem value="missing">Faltante</SelectItem> </SelectContent> </Select> </div> <Button className="w-full" size="sm">Verificar y Capturar Foto</Button> </CardContent> </Card>
Integración con Flujos de Trabajo
La captura de evidencia se integra directamente en el flujo de trabajo aduanero de cuatro etapas:
| Etapa | Evidencia Requerida |
|---|---|
| Entrada (Aduana) | Escaneo NFC, foto de placa, número de sello |
| Pesaje (Báscula) | Lectura de báscula, foto de certificado de peso |
| Inspección (Supervisor) | Fotos de inspección, notas de observación |
| Salida | Foto de verificación de sello, confirmación NFC |