Confirm delivery via QR token
PUT/company/qr/confirm
Confirma la finalización de una entrega. Al confirmar:
- El estado del envío pasa a
delivered - Se registra la firma digital del receptor
- Se guardan fotos de prueba de entrega (si se adjuntan)
- Se registra la geolocalización de la confirmación
- Se invalida el
confirm_token - Se procesa el pago del servicio (Stripe)
- Se firma el eCMR digitalmente
- Se envían emails de confirmación a todas las partes
Este endpoint es PÚBLICO — no requiere autenticación.
Flujo de uso
- Obtener el
confirm_tokendel endpointGET /company/qr/{token} - Recoger la firma digital del receptor (canvas base64)
- Opcionalmente, tomar fotos de la entrega
- Llamar a este endpoint con todos los datos
Campo data
El campo data debe enviarse como string JSON en el formulario multipart.
Contiene los datos del firmante y su firma digital:
{
"name": "Juan",
"surname": "Pérez",
"taxid": "12345678A",
"email": "juan@example.com",
"image": "data:image/png;base64,iVBORw0KG..."
}
Notas técnicas
- Código fuente:
src/features/company/qr_delivery/controller.js→confirmDelivery - Acepta hasta 6 imágenes adjuntas (campo
images, subidas a S3) - La geolocalización es opcional pero recomendada para auditoría
- La acción es irreversible: un envío confirmado no puede revertirse a estado anterior
Request
Responses
- 200
- 400
- 401
- 404
- 500
Entrega confirmada correctamente
Datos inválidos. Ocurre cuando:
- Faltan parámetros requeridos (
service_code,token,data) - Formato incorrecto del JSON en el campo
data
Operación no permitida. Ocurre cuando:
- La entrega ya está en estado final (
delivered,canceled) - La firma (
image) no está presente en el campodata
Entrega no encontrada. Posibles causas:
- El
tokenoservice_codeson incorrectos o no coinciden - La entrega fue eliminada
Error interno del servidor al guardar la confirmación